Repo header owner link should go to /:owner/repositories (repos list), not the profile — sweep other owner-link surfaces #445
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#445
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?
Owner links in the repo header should go to /:owner/repositories, not the profile
What's requested
The owner name in the repo page header (the
<owner> / <repo>breadcrumb inrepo-header) currently links to/${params.owner}— the owner profile page. Forgejo links the owner segment of the repo-page breadcrumb to the owner's repositories list (/:owner/repositories). Change the header owner link target accordingly, and sweep the other owner-name-link surfaces for consistency.Evidence (current tree)
web/src/pages/Repo.jsx:549:<A class="hover:underline" href={/${params.owner}}>{params.owner}</A>links to the profile, not/${params.owner}/repositories.The
/:owner/repositoriesroute and the owner tabs (Profile / Repositories / Organizations) already exist —web/src/index.jsx:79(<Route path="/:owner/repositories" component={OwnerRepositories} />) andOwnerTabsinweb/src/pages/Repos.jsx:107-159. So this is pure link-target wiring; no backend change, no new route.Consistency sweep — other surfaces that link an owner name (static read, current tree)
Repo.jsx:549/${owner}/${owner}/repositories(the ask)Owners.jsx:71/${owner}/${owner}/repositories— the heading is a repository group, the repos tab is the natural destinationOwners.jsx:105/${owner}/${owner}/repositories— "more" of what the section shows (repos)<owner>" in repo headerRepo.jsx:573/${fork_parent}fork_parentonly. If it stays an owner link, use/:owner/repositoriesfor consistencyRepos.jsx:602/${org}/repositoriestab distinction today); leaving as-is is acceptableTeam.jsx:41/${org}Repos.jsx:126/${owner}Architecture notes
repos/<owner>/prefixes; the owner name here is a display string and the routes already exist, so nothing server-side is involved.OwnerTabsactive-tab derivation (Repos.jsx:112-117) keys off the pathname; linking the repo-header owner to/:owner/repositorieslands the viewer on the Repositories tab with correct active state — verify that in acceptance.Acceptance criteria
/:owner/repositories; repo name still links to/${owner}/${repo}./:owner/repositories./:owner/repositoriesfrom the repo header shows the Repositories tab as active (aria-current="page").Fixed by #453 (#453): breadcrumb owner + explore heading + "+N more" → /:owner/repositories. Forked-from, org-name, Team back link, and Profile tab explicitly kept (noted in PR + pinned by test). No server changes.
REVIEW PR #453 (fix/issue-445) — verified head-to-head in scratch worktrees, all 5 acceptance criteria PASS.
CRITERION RESULTS (file:line on branch):
(1) Breadcrumb owner -> /:owner/repositories (Repo.jsx:553), repo name still -> /${full()} (Repo.jsx:554). PASS.
(2) Explore heading (Owners.jsx:73) + '+N more' (Owners.jsx:109) both -> /${owner}/repositories (exactly 2 hits, zero bare /${props.owner} left in Owners.jsx). PASS.
(3) Kept-surfaces, each verified by grep + test pin: forked-from stays /${fork_parent} (Repo.jsx:577) — fork_parent is an owner/repo pointer so this IS the parent-repo page = GitHub behavior, correct to keep; Organizations-tab org links stay /${org} (Repos.jsx:613); Team back link stays /${org()} (Team.jsx:41); Profile tab stays /${props.owner} (Repos.jsx:129, the ONLY bare-owner href left in the SPA). PASS.
(4) OwnerTabs derivation (Repos.jsx:112-117) maps /${owner}/repositories -> 'repos' with aria-current='page' — no code change needed, pinned by test. PASS.
(5) No server changes (zero .go files in diff), no new routes, no dep changes (no package/lock churn). PASS. Docs: Law-12 entry present and accurate after my correction (see below). No browser run — node tests + source reasoning only, noted explicitly per review instructions.
HEAD-TO-HEAD FULL SUITE (node --test web/test/unit/*.test.js, node_modules symlinked first in both):
SMALL FIX PUSHED to origin/fix/issue-445 (commit
b0476d9): Law-12 entry test counts 830/815/15 (+14-file failure list) -> verified 950/948/2 (2 live-server smoke failures); full suite re-run after the edit confirms 950/948/2. Docs-only change; logic untouched.MERGE RECOMMENDATION: ready to merge (after CI confirms; browser proof remains open per the shared-daemon loopback guard, same as stated in the PR).
Fixed by PR #453 (review clean + test-count doc fix by reviewer; all 5 criteria pass, kept-surfaces verified), merged. Closing.