chore(web): fit dashboard to 100vh on md+ screens — scroll per component #230
No reviewers
Labels
No labels
area:agents
area:dashboard
area:database
area:design
area:design-review
area:flows
area:infra
area:meta
area:security
area:sessions
area:webhook
area:workdir
security
type:bug
type:chore
type:meta
type:user-story
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
charles/claude-hooks!230
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "dev/228"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
AppShellroot getsmd:h-screen md:overflow-hidden;<main>getsmd:overflow-hiddenso children own their scroll regionmonitor.indexandmonitor.gridwrap their content inmd:h-full md:overflow-y-autoso the pipeline/grid list scrolls insidemonitor.taskspins StorageStrip + AgentChips header, task panels each getmd:overflow-y-automonitor.task.$taskIdpins the breadcrumb, the task-detail card getsmd:flex-1 md:overflow-y-autoagents,stats,usagewrap content inmd:h-full md:overflow-y-autoplanner.boardouter wrapper getsmd:h-fullto cap at viewport (per-column scroll was already there)<md) keeps today's global-scroll behaviour unchanged/monitorthatscrollHeight <= clientHeightCloses #228
eb0979616dcddbf68594cddbf68594e65f04836cReview
CI is green. The layout changes are correct across all touched routes — the
md:h-screen md:overflow-hiddenshell + per-routemd:h-full md:overflow-y-autoscroll regions follow the establishedplanner.index.tsxpattern cleanly. The Playwright assertion (scrollHeight <= clientHeight) is actually the right check (more defensive than the literal===in the AC).One acceptance criterion from issue #228 is missing:
routes/specs.tsx— two-pane scroll not addressedFile:
apps/web/src/routes/specs.tsx(not in diff)Issue #228 explicitly lists this as an AC item:
The route exists (it's in the AppShell nav as
{ to: "/specs", label: "Specs" }) but is absent from this PR. The PR body closes #228, so it needs to satisfy all the issue's criteria before it does.How to fix: Apply the two-pane layout pattern to
routes/specs.tsx— the file-list pane and the editor pane should each getmd:h-full md:overflow-y-auto(or equivalent) so they scroll independently inside the viewport cap instead of contributing to a global scroll atmd:and above.e65f04836c94bcee90c6Round 2 — prior finding still unresolved
CI is green (run #1887, sha
94bcee9). The fix commit only re-indented content inside the new scroll wrappers (formatting/CI fix) —routes/specs.tsxis still absent from the diff.routes/specs.tsx— two-pane scroll not addressedIssue #228 acceptance criteria explicitly lists:
The file is not in this PR's changed files. The PR body closes #228, so all AC items must be satisfied before merge.
How to fix: Apply the two-pane layout pattern to
apps/web/src/routes/specs.tsx— the file-list pane and the editor pane should each getmd:h-full md:overflow-y-auto(or equivalent) so they scroll independently inside the viewport cap atmd:and above, matching the pattern used inplanner.index.tsx.Fixed in
016a7c8. Applied the two-pane scroll pattern toroutes/specs.tsx:h-full→md:h-full(consistent with the PR's md-breakpoint pattern)aside: addedmd:h-full md:overflow-hiddenso the existingflex-1 overflow-y-autofile list is viewport-capped at md+md:h-full md:overflow-hiddensoSpecEditor's internalh-fullchain resolves correctlyBoth panes now scroll independently inside the viewport cap at md+, matching the planner pattern.
Round 3 — prior finding resolved ✓
CI is green (run #1893, sha
016a7c8, 4m8s).The
routes/specs.tsxtwo-pane scroll is now correctly implemented:flex md:h-fullmd:h-full md:overflow-hiddenwith innerflex-1 overflow-y-autofor the scrollable file list (pinned header stays fixed)md:h-full md:overflow-hiddensoSpecEditorowns its own scroll regionThis matches the pattern required by issue #228 AC and mirrors the approach used across the other routes in this PR. All acceptance criteria are satisfied.
016a7c8d77e303045825