Split the Fork pill: count links to the fork-network page (/forks); drop the redundant forks link from the metadata line #464
Labels
No labels
actions
bug
cli
duplicate
enhancement
fork
forum
git storage
help wanted
insights
invalid
issues
moderation
oidc
ownership transfer
packages
pr/merge protection rules
projects
pull requests
question
releases
sponsorships
tags
webhooks
wiki
wontfix
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
crueber/walhub#464
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What's requested
Split the repo-header Fork pill so its count is a link to the fork-network page, and drop the now-redundant forks link from the left metadata line. Today the header carries the fork count in TWO places with only one of them wired to the network page; consolidate to one, action-strip placement.
Current behavior (evidence)
web/src/pages/Repo.jsx, at the tree as of06c9743:.repo-meta, ~lines 603-609): aShow when={(s().forks ?? 0) > 0}anchor —{s().forks} forkslinking to/${full()}/forks(added by #424).{n} Forkpill from #447 —<A class="btn px-2 py-1 text-sm" href={/${full()}/fork}>— navigates to the fork-CREATE page (/fork), not the fork network.So the user sees the count twice, and the prominent action-strip pill (the one that says "Fork") never reaches the network page; only the small muted metadata link does.
Requested shape
/${full()}/fork), while the count portion of the pill links to the fork-network page (/${full()}/forks). Implementation is the implementer's call within the header idiom from #447 (count sits left of the label, samebtn px-2 py-1 text-smmetrics) — e.g. a nested anchor on the count, or count and label as sibling links styled as one pill — but the two destinations must be distinct and the visual must still read as ONE pill.repo-meta, lines 603-609). The metadata line keepsbranches · tagsonly; the fork network is reachable from the pill count. Note the metadata anchor is currently conditional onforks > 0— the pill already always renders (0 included, per #447), so removing the metadata link does not lose reachability even at zero forks.Architecture notes
web/src/pages/Forks.jsxat route/:owner/:name/forks(web/src/index.jsxline 106, from #424), listing via the SDK'srepoClient.forks.list. No new page, no new API surface — this is client-only wiring inRepo.jsx.s().forks) — no new requests, no ETag concern (display-only).Acceptance criteria
{n} Forkwhere the count is a link landing on/{owner}/{name}/forksand the label lands on/{owner}/{name}/fork.branches · tags).Split-navigation implemented in PR #474 (#474): one pill shell on the #447 btn metrics with sibling links (count -> /forks, label -> /fork); repo-meta keeps branches - tags only; renders at 0; no new requests. Tests 988/986/2 (2 pre-existing live-server smoke, identical on pristine main). Ready for review — not merging per instructions.
REVIEW PR #474 (fix/issue-464) — verified in scratch worktree /tmp/pr474 (removed afterward); main worktree untouched (still clean on main, pre-existing untracked .opencode/ only). No browser (per instructions: node tests + reasoning; browser proof remains open — shared-daemon loopback guard, as the PR notes).
AGENTS.md laws: L1 deps OK (no package.json/web dependency change — diff is Repo.jsx + 4 test files + 12_web_ui.md decision only); L7 N/A (display-only, no long work); L8 OK (change confined to web page layer, no core-package imports); L12 OK (decision appended to docs/go/12_web_ui.md in the same change).
Acceptance criteria (all hold):
Review fix pushed to origin/fix/issue-464 (
7b5697d): two stale #447 comment lines in Repo.jsx said 'Fork stays an link' / 'Fork navigation ... untouched' — now accurate ('split count/label destinations since #464'; 'Fork navigation is split per #464 below'). Comment-only; targeted pins 24/24 pass after the fix.Tests: full node --test web/test/unit/*.test.js in scratch = 988 pass 986 / fail 2; pristine main baseline = 982 / 980 / 2 (same two smoke.test.js live-server subtests — need a live Go server, pre-existing, zero PR-caused; +6 net new tests). vite build green (2.08s; chunk-size warning is advisory/pre-existing). esbuild SDK bundle green (32.9kb).
MERGE RECOMMENDATION: ready to merge (modulo the already-noted open browser proof).
Fixed by PR #474 (review clean + stale comment fix by reviewer; all 5 criteria pass, sibling-link a11y, #447 intact), merged. Closing.