I’ve noticed this too. If you need another workaround I’ve discovered that by layering or vertically/horizontally joining altair charts together you can get it to correctly set the height.
For example if you have
chart = alt.Chart(df)…
you can use
st.altair_chart(chart + chart)
to get it to set the height correctly. However, it will slow down any interactions you have in your chart since it’s now doubled what is being displayed.