fix(projects): clamp Sessions tab height so it doesn't push the window

The new Sessions tab's outer VStack had no maxHeight constraint.
Its inner `List(sessions) { … }` uses intrinsic content size — which
grows with the row count — and with enough sessions the enclosing
VStack would push the project window past the bottom of the screen.

Fixed by adding `.frame(maxWidth: .infinity, maxHeight: .infinity)`
to the outer VStack in `ProjectSessionsView.body`, matching the
pattern `siteTab` uses for its webview. Now the List fills the
available tab area and scrolls internally as expected.

Other v2.3 tabs already self-constrain (`widgetsTab` via ScrollView,
`siteTab` via explicit maxHeight). This brings Sessions in line.

80/80 Swift tests still pass. Visual-only fix; no test change.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Alan Wizemann
2026-04-23 23:55:10 +02:00
parent 799cdb19e1
commit 4baa3d4d28
@@ -20,6 +20,13 @@ struct ProjectSessionsView: View {
Divider()
content
}
// Without this clamp the inner List's intrinsic height grows
// with its row count and the enclosing VStack pushes the
// window itself past the screen. Other tabs handle this via
// their own container (widgetsTab = ScrollView, siteTab =
// explicit maxHeight) match the siteTab pattern here so
// the List scrolls internally.
.frame(maxWidth: .infinity, maxHeight: .infinity)
.task(id: project.id) {
// Rebuild the VM when the project changes so stale state
// from a previously-selected project doesn't bleed