Fix #463: pill spacing #473

Merged
crueber merged 1 commit from fix/issue-463 into main 2026-09-13 18:00:42 +00:00
Owner

Preferred fix from the issue: TasksOverlay renders nothing when idle — the guard Show moved above the wrapper div (web/src/pages/Repo.jsx), so the Star/Watch/Fork/Clone row holds only real pills and its gap-2 owns every gap. The relative wrapper exists only with the pill and still anchors the tasks-drop popover when tasks run; Clone details-metrics unchanged; no backend change, no new deps. Extends the #447 contract comment to spacing (law-12 note in code). Sibling audit: Star/Watch return button straight out of Show, Fork is a bare A, Clone details IS the pill — no other empty flex items. Tests: new web/test/unit/header-gap-463.test.js (5 tests: idle-renders-nothing, gap ownership, pill+overlay intact, sibling audit, 390px arithmetic); targeted suites 55/55 green; full web suite 980/982 with the 2 smoke failures pre-existing on baseline (sandbox server answers 401); vite build clean. No browser drive (shared daemon blocks loopback per task note) — reasoning + headless + build only. Fixes #463.

Preferred fix from the issue: TasksOverlay renders nothing when idle — the guard Show moved above the wrapper div (web/src/pages/Repo.jsx), so the Star/Watch/Fork/Clone row holds only real pills and its gap-2 owns every gap. The relative wrapper exists only with the pill and still anchors the tasks-drop popover when tasks run; Clone details-metrics unchanged; no backend change, no new deps. Extends the #447 contract comment to spacing (law-12 note in code). Sibling audit: Star/Watch return button straight out of Show, Fork is a bare A, Clone details IS the pill — no other empty flex items. Tests: new web/test/unit/header-gap-463.test.js (5 tests: idle-renders-nothing, gap ownership, pill+overlay intact, sibling audit, 390px arithmetic); targeted suites 55/55 green; full web suite 980/982 with the 2 smoke failures pre-existing on baseline (sandbox server answers 401); vite build clean. No browser drive (shared daemon blocks loopback per task note) — reasoning + headless + build only. Fixes #463.
TasksOverlay returned an unconditional wrapper div whose inner Show guarded
only the pill, leaving an empty 0-width flex item in the Star/Watch/Fork/
Clone row when idle and doubling one gap to 2x gap-2. The guard Show now
sits above the wrapper div (preferred fix from the issue); the relative
wrapper exists only with the pill and still anchors the tasks-drop popover.
Extends the #447 contract comment to spacing; Clone details-metrics
unchanged. New headless test web/test/unit/header-gap-463.test.js.
Sign in to join this conversation.
No description provided.