gabriel / musehub public
fix BREAKING #139 fix/two-column-app-shell #10 / 12
AI Agent gabriel · 13 days ago · Jul 9, 2026 · Diff

fix(#139): app-shell for issue detail; fix zoom clipping the last ~20% of every app-shell page

Converts issue_detail.html (isd-*) to the viewport-locked flex shell, same pattern as the issues list. isd-main has no flex-shrink pitfall (display:block, not flex), but isd-sidebar's stacked metadata cards get the same flex-shrink:0 treatment as isl-main's .card.

Also fixes a third, more fundamental bug affecting the whole app-shell approach: zoom scales an element's own rendered box, not just its descendants. body.app-shell { height: 100dvh } zoomed 1.25x paints ~125dvh tall -- the 25% below the real viewport was silently clipped by overflow:hidden, no matter how far any descendant scrolled internally. This is what was actually causing 'can't reach pagination' from the start; the align-items/flex-shrink bugs fixed on the issues list page were real but separate, and had been masking this one.

Fixed by introducing a shared --zoom-factor custom property (used by both body's zoom and body.app-shell's height compensation via calc(100dvh / var(--zoom-factor))), plus overriding a competing body { min-height: 100dvh } from _components.scss that was clamping the compensated height back up (min-height wins over a smaller height).

Verified both pages via headless Chromium with real mouse.wheel() events (not just DOM scrollTo, which bypasses hit-testing and masked the min-height clamp bug) confirming: body's rendered height now matches the real viewport exactly, both columns scroll independently via genuine wheel input, isl-main's pagination control is reachable with 41 real issues, isd-main scrolls to its last comment, mobile breakpoint stacks to normal scroll with footer restored on both pages. Manually confirmed working by gabriel on the issues list page.

sha256:c1d980625041d62afc5242a6ac466323937217d63fb8e601afd7b3be22a85876 sha
+2 ~8 symbols
sha256:524b76ed96ce22ab6b99e5aa675bc0082caefd812b4eedcbf1d725bd98e92c00 snapshot
+2
symbols added
~8
symbols modified
0
dead code introduced
Semantic Changes 10 symbols
~ src/scss/_layout.scss .scss 2 symbols modified
~ src/scss/pages/_issues.scss .scss 2 symbols added, 6 symbols modified
+ * rule * L307–309
+ isd-hero rule .isd-hero L222–224

0 comments

No comments yet. Be the first to start the discussion.

To add a comment, use the Muse CLI: muse hub commit comment sha256:c1d980625041d62afc5242a6ac466323937217d63fb8e601afd7b3be22a85876 --body "your comment"