Owner profile: right-sidebar layout — avatar + grouped actions under the avatar, hr before Edit profile (GitHub-inspired) #421
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#421
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
Reshape the owner profile page (
/:owner,web/src/pages/Repos.jsx) to a GitHub-style two-column layout: identity and repositories on the left, a right sidebar carrying the avatar and the owner actions grouped vertically, with a horizontal rule directly above the Edit profile action.Current state (evidence)
web/src/pages/Repos.jsx(~line 304):.profile-headeris a horizontal flex row — identity block left,.profile-avatar(avatar + Regenerate/remove avatar buttons) right. Everything sits in one top band; the Repositories section runs full-width below.flex-row … sm:flex-colwrapper inside the header (lines ~345–367).Proposed layout (GitHub-inspired)
sm:responsive pattern per #273/#278).profile.can_edit), Regenerate avatar, Remove avatar (when applicable) — each full-width in the sidebar, in GitHub's undercard style.<hr>(or equivalent divider, matchingborder-zinc-200 dark:border-zinc-700used on the header) separates the avatar from the action group, immediately above Edit profile.ProfileForm) opens in place as it does today.Architecture notes
web/src/pages/Repos.jsx+web/cssrules if a class needs a definition. No fetch, cache, or route changes; gates byte-identical.Acceptance criteria
<hr>-style divider appears between the avatar and the action group, immediately above Edit profile.profile.can_editis set (server-decided, unchanged gate)./:ownerstill renders correctly (org header, Manage organization) with the same sidebar treatment.vite buildgreen.Fix ready for review: PR #427 (#427) — branch fix/issue-421. Two-column grid with sidebar grouping + hr, org variant included, all gates byte-identical, headless suite green, vite build green, D-WEB-12 recorded.
REVIEW PR #427 (fix/issue-421, commit
2718266+ review fixup20a738c) — verified in scratch worktree /tmp/pr427 (removed after), main worktree untouched.AGENTS laws: L1 clean (no package.json/web dep change, no Go change — web-only + DEVIATIONS.md); L7 n/a (no long work); L8 clean (no core-package imports touched); L12 satisfied (D-WEB-12 appended with rationale + headless cover named).
Acceptance criteria (all 6 hold):
REVIEW FIXUP pushed as
20a738c(2 files, +22/-2): one defect found and fixed — the sidebarrendered with nothing above it on avatarless-but-actionable pages (self opted out via #376 Remove, admin editor, avatarless org + manager). Each
now has its own Show also requiring the avatar (userSrc() / avatar_content_type) alongside the existing action visibility condition; pins added to the 421 divider test. No other changes.
RESULTS (scratch worktree, node_modules symlinked): targeted suites (421 + header + 403 + toolbar + bio-editing + identity-nav) 66/66 pass; full node --test web/test/unit/*.test.js 878/880 — the 2 failures are smoke.test.js only, environmental: they HTTP-fetch a live foreign walhub serve on 127.0.0.1:8080 (auth on, / returns 401; process started 23:21, not mine, left untouched) and never execute worktree code. vite build green (600kB chunk-size warning only, pre-existing).
No backend change, no new deps, no docker/compose/build changes. No browser run (per instructions — noted explicitly).
RECOMMENDATION: ready to merge (after CI confirms).
Fixed by PR #427 (review clean + one orphaned-hr fix by reviewer for avatarless pages; all 6 criteria pass, gates byte-identical), merged. Closing.