Fix #447: unify header pills #454

Merged
crueber merged 2 commits from fix/issue-447 into main 2026-09-13 14:11:26 +00:00
Owner

Unifies the repo header Star/Watch/Fork/Clone controls on the Star/Watch btn idiom (btn px-2 py-1 text-sm), counts left of label ({n} Star, {n} Watch, {n} Fork; Clone label-only), one aligned row. Client presentation only in web/src/pages/Repo.jsx; toggle behavior, Fork nav, and Clone popover untouched. Fork zero-count decision: always renders incl. 0, like Star/Watch (noted in code + 12_web_ui §Decisions). Absorbs/supersedes #446 (tab-badge circle rejected: second count idiom). Builds on #438 text-only pair without regressing it. No backend/SDK/API change; no new deps. Tests: new web/test/unit/header-pills-447.test.js (7 tests); #447-scoped updates to repo-social-toggles + fork-page-438 pins. Full node suite 837 total / 822 pass / 15 fail, identical 15 pre-existing on pristine origin/main (830/815/15, +7 net new, zero PR-caused). vite build + esbuild green. Browser proof open (shared-daemon loopback guard; no private daemon per workspace rules). Closes #447; #446 closed separately with cross-reference.

Unifies the repo header Star/Watch/Fork/Clone controls on the Star/Watch btn idiom (btn px-2 py-1 text-sm), counts left of label ({n} Star, {n} Watch, {n} Fork; Clone label-only), one aligned row. Client presentation only in web/src/pages/Repo.jsx; toggle behavior, Fork nav, and Clone popover untouched. Fork zero-count decision: always renders incl. 0, like Star/Watch (noted in code + 12_web_ui §Decisions). Absorbs/supersedes #446 (tab-badge circle rejected: second count idiom). Builds on #438 text-only pair without regressing it. No backend/SDK/API change; no new deps. Tests: new web/test/unit/header-pills-447.test.js (7 tests); #447-scoped updates to repo-social-toggles + fork-page-438 pins. Full node suite 837 total / 822 pass / 15 fail, identical 15 pre-existing on pristine origin/main (830/815/15, +7 net new, zero PR-caused). vite build + esbuild green. Browser proof open (shared-daemon loopback guard; no private daemon per workspace rules). Closes #447; #446 closed separately with cross-reference.
957/955/2 on branch vs 950/948/2 on pristine origin/main (+7 net new,
same 2 live-server smoke subtests, zero PR-caused) — the 837/822/15
claim does not reproduce in-scratch.
Sign in to join this conversation.
No description provided.