Skip to content

fix(detail): display:contents on SSE wrapper to restore ticket-page scroll (0.22.2)#52

Merged
FelipeCarillo merged 2 commits into
mainfrom
claude/fix-detail-vertical-scroll-022-2
Jun 16, 2026
Merged

fix(detail): display:contents on SSE wrapper to restore ticket-page scroll (0.22.2)#52
FelipeCarillo merged 2 commits into
mainfrom
claude/fix-detail-vertical-scroll-022-2

Conversation

@FelipeCarillo

Copy link
Copy Markdown
Owner

Problem

The 0.22.1 release was meant to restore vertical scroll on the focused ticket page, but it regressed: vertical scroll still didn't work, and a spurious horizontal scrollbar appeared.

Root cause

The live-spec-authoring change (659ec5d) inserted a #detail-content wrapper between [data-detail-page] and .detail-grid so the SSE live-update code (detail-sse.js) can swap its innerHTML. The detail CSS, however, was written assuming .detail-header and .detail-grid are direct flex children of the [data-detail-page] flex column (that's how it shipped before the wrapper existed).

0.22.1 (#51) tried to patch around the wrapper by making #detail-content a nested flex column (flex: 1; min-height: 0; display: flex). But that still left .detail-grid one level removed from [data-detail-page], so the height chain never bounded the grid (no vertical scroll), and the extra flex formatting context let wide content force a horizontal scrollbar.

Fix

Use display: contents on #detail-content. The wrapper's box disappears, so .detail-header and .detail-grid lay out as direct flex children of [data-detail-page] — byte-for-byte the layout from before the wrapper was introduced:

  • .detail-grid (flex: 1; min-height: 0) reclaims the remaining height → .detail-main/.detail-rail overflow-y: auto engage → vertical scroll works, columns scroll independently.
  • No extra flex nesting → no spurious horizontal scrollbar.
  • Spacing comes from [data-detail-page]'s own gap: 14px (same value the wrapper used).

The element stays in the DOM (id, data-* attributes, innerHTML), so the SSE swap in detail-sse.js is unaffected — it only uses the element for innerHTML, attributes, and DOM contains(), none of which need a layout box.

Release

Bumps version to 0.22.2 + CHANGELOG entry. Merging to main triggers the release workflow (PyPI + GitHub release), as with prior releases.

Note: the dashboard CSS has no automated visual test and no browser was available in this environment to render it, so this fix is reasoned from the layout/height chain and the known-good pre-wrapper layout rather than visually confirmed. Worth a quick manual look at a ticket with a long description before/after merge.


Generated by Claude Code

claude added 2 commits June 16, 2026 14:57
The 0.22.1 fix made #detail-content a nested flex column, but that still
left .detail-header/.detail-grid one level below the [data-detail-page]
flex column — vertical scroll stayed broken and the extra flex nesting
let wide content force a horizontal scrollbar.

display:contents removes the wrapper's box so its children lay out as
direct flex children of [data-detail-page], exactly as before the wrapper
was introduced: the grid reclaims height, the columns scroll vertically
and independently, and no horizontal scrollbar appears. The element stays
in the DOM so the SSE innerHTML swap (detail-sse.js) is unaffected.
@FelipeCarillo FelipeCarillo merged commit e00ff05 into main Jun 16, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants