Issues list: show milestone on each row; replace the word 'comments' with a message-bubble indicator #380
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#380
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
Two changes to the issues list rows (
web/src/pages/Issues.jsx, row markup at lines 156-176):{issue.comment_count} comments · <DateTime …/>.Evidence
web/src/pages/Issues.jsx:172-174— the right-aligned meta span renders only comment count (as the literal word "comments") and the updated datetime. No milestone.Card.Milestone *stringatinternal/issues/model.go:95(JSONmilestone), projected incardOf(internal/issues/model.go:103-111). No backend change needed.<id:06x>hex), not titles. Title resolution already exists and is the convention to reuse:milestoneDisplay(milestones, id)inweb/src/lib/milestones.js:29-36returns{pending, text, unknown?}— pending renders a placeholder (never a bare id flash on cold load), a deleted milestone renders the bare id (same self-heal stance as unknown labels).web/src/pages/Issue.jsx:65(useData("milestones:{full}", …, TTL.milestones)). The list page will need the same fetch to resolve titles.Architecture notes
milestoneDisplay's pending state (placeholder or render-nothing) rather than flashing raw hex ids. The repo set is a 30s-TTL cached key (milestones:{full}), one extra fetch per page load — acceptable.ccSWR-cached list windows; milestone display is a pure client-side projection over card data, so no ETag/cache-contract concern — the field already rides the cached payload.Card.milestoneis nullable) — no empty chip for the common unset case. A muted chip/pill styled like the existing label-chip row language (but smaller, matching the xs meta text) is the suggested treatment; exact styling is implementer's call.aria-hidden) and let the number stand alone, or keep an accessible label — implementer's call, but the literal word "comments" goes away.Acceptance criteria
/issues?milestone=<id>), matching the issue-detail sidebar link behavior (web/src/pages/Issue.jsx:556).PR #386 (fix/issue-380) ready for review: milestone chip on rows (comments -> milestone -> time) + bubble count, no backend change. node --test 756 pass / 0 fail, vite+esbuild green. Browser proof open (shared-daemon loopback guard).
REVIEW — PR #386 (fix/issue-380,
3b3229c): 3 files, +125/-2 (Issues.jsx, issues-row-milestone.test.js, 12_web_ui.md decision). No backend change, no new deps, no Go touched (fmt/vet n/a).Acceptance criteria, all verified against the diff:
VERIFICATION (scratch worktree /tmp/pr386, removed afterward; main untouched, still clean):
MERGE RECOMMENDATION: ready to merge (browser proof may follow the shared-daemon loopback-guard convention noted in the doc entry).
Fixed by PR #386 (review clean — all 7 criteria pass, shared href helper, no backend change; 756 pass), merged. Closing.