Fix #435: tab strip top, no profile on sub-tabs #436

Merged
crueber merged 1 commit from fix/issue-435 into main 2026-09-13 04:14:17 +00:00
Owner

Follow-up to #422/#430 (tab strip) and #421 (sidebar layout). Two defects in OwnerPage (web/src/pages/Repos.jsx): (1) OwnerTabs rendered mid-page inside .profile-main below the identity header — it now leads the page flow (below the navbar, above identity) on all three owner routes, same anatomy/underline/aria-current; (2) the identity header (gated only on !isOrg) and both sidebars rendered on every view — the two-column layout now renders ONLY on view()==='profile', so /repositories and /organizations render strip + own content only. /:owner renders as today (header + sidebar + teaser) minus the relocation; org variant keeps Profile | Repositories; gates/fetches/cache keys byte-identical; routes unchanged. Layout/markup only — no backend change, no new deps.\n\nHeadless cover: new web/test/unit/owner-tabs-top-435.test.js (9 tests: strip-first, view-gating per route, profile-as-today, org variant, active-tab derivation, routes, gates/keys, 390px) + #435-scoped pin updates in 4 files. node --test: 912 total / 910 pass / 2 fail (pre-existing live-server smoke tests, identical before/after); vite build green. Law-12 decision appended to docs/go/12_web_ui.md. Browser proof open (shared-daemon loopback guard).

Follow-up to #422/#430 (tab strip) and #421 (sidebar layout). Two defects in OwnerPage (web/src/pages/Repos.jsx): (1) OwnerTabs rendered mid-page inside .profile-main below the identity header — it now leads the page flow (below the navbar, above identity) on all three owner routes, same anatomy/underline/aria-current; (2) the identity header (gated only on !isOrg) and both sidebars rendered on every view — the two-column layout now renders ONLY on view()==='profile', so /repositories and /organizations render strip + own content only. /:owner renders as today (header + sidebar + teaser) minus the relocation; org variant keeps Profile | Repositories; gates/fetches/cache keys byte-identical; routes unchanged. Layout/markup only — no backend change, no new deps.\n\nHeadless cover: new web/test/unit/owner-tabs-top-435.test.js (9 tests: strip-first, view-gating per route, profile-as-today, org variant, active-tab derivation, routes, gates/keys, 390px) + #435-scoped pin updates in 4 files. node --test: 912 total / 910 pass / 2 fail (pre-existing live-server smoke tests, identical before/after); vite build green. Law-12 decision appended to docs/go/12_web_ui.md. Browser proof open (shared-daemon loopback guard).
OwnerPage (web/src/pages/Repos.jsx, docs/go/12_web_ui.md section 12):
OwnerTabs leads the page flow below the navbar on all three owner
routes; the two-column identity layout (header + sidebars) renders
only on view()==='profile'. Repos/orgs branches moved byte-identical.
Gates, fetches, cache keys, routes unchanged.
Sign in to join this conversation.
No description provided.