Repo description field: shown right of org/repo in the header, editable via a new 'General' tab in repo settings #235
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#235
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
Every repo should support a short description, rendered to the right of the
owner / repotitle in the repo header, and editable through a new General settings tab in repo settings.Currently there is no description anywhere: the repo summary (
internal/api/summary.go:12summaryBody) carries owner/name/head/branches/tags/health/clone URLs but no description field, and the repo header (web/src/pages/Repo.jsx:511-527) renders title + branch/tag counts with no description slot.Desired behavior
owner / repotitle inrepo-header(Repo.jsx:511), muted styling, omitted entirely when unset (no empty placeholder).web/src/lib/settingsNav.js:11SETTINGS_GROUP— add{ id: "general", label: "General" }first and make itDEFAULT_SETTINGS_TAB), containing the description editor.Architecture notes (for whoever implements)
internal/api/settings.go(GET = AuthRead, PUT = AuthAdmin, body ≤ 16 KiB,revision/author/updated_atwire fields). Adescriptionkey in that TOML gets persistence, revisioning, authorship, and admin-only writes for free. The SPA already round-trips TOML text (web/src/pages/Settings.jsx—e.tomlread/edit/diff around lines 285-316), so the General tab can present a single description input and serialize it into the doc rather than exposing raw TOML.descriptiontosummaryBody(summary.go:12) so the header, the repos listing, and future consumers get it in the request they already make — the header reads the shared summary signal viaRepoCtx(Repo.jsx:502-505), so no new fetch is needed. Requires the summary implementation (RepoView.Summary) to read the settings/meta document; watch the ETag/SWR story — a description change with the same head sha will 304 unless the ETag covers the new field (same trap as the~degradedsuffix, summary.go:83-88).<h1>, wrapping below on narrow widths (the header is alreadyflex-wrap, :511).Acceptance criteria
…/api/summaryand all exposed twins) includesdescription(empty string when unset); the ETag/cache story doesn't serve stale summaries after a description-only change.owner / repotitle, hidden when unset.SETTINGS_GROUP, default tab on bare/settings), containing a description input that writes through the SDK and reflects the change without a full reload.web/src/pages/Repos.jsx<RepoRow>) or is explicitly descoped — pick one and note it.Fixed by PR #242 (#242) — per-repo description via the settings TOML + summary field + General tab. Notes: 512-char single-line limit (decision, documented in 11_config_cli.md); owner-list rows explicitly descoped (names-only listing, noted in code + 07_api.md). Browser verification is open: the hub chrome-cdp daemon blocks all local addresses so the UI flow (header show/omit, General save, both themes) still needs a real-browser pass.
Review of PR #242 (fix/issue-235, commit
52074e3) — verified in scratch worktree /tmp/pr242.PASS
TESTS (scratch worktree, after symlinking main web/node_modules which worktrees lack)
No fixes pushed — nothing blocking found. RECOMMENDATION: ready to merge once a real-browser pass (/, repo header with/without description, /setup, settings#general both themes, console clean) is recorded.
Fixed by PR #242 (review clean; +0 trips verified, ETag both directions, 403 surfaces; 95.4/95.6% + 455 node tests), merged. Closing.