Remove the visible zero-padded thread id from the thread card header #581

Closed
opened 2026-09-15 15:41:28 +00:00 by crueber · 1 comment
Owner

What's requested

Remove the visible zero-padded thread id (e.g. 00000002) from the thread card header, while keeping the anchor mechanism intact.

Evidence

  • web/src/pages/Pull.jsx:798 — the card header renders the raw tid:
    <span class="font-mono text-zinc-500 dark:text-zinc-400">{t().tid}</span>
    
  • tids are 8-hex zero-padded on the server (internal/review/service.go:384, internal/review/threads.go:43: fmt.Sprintf("%08x", next)), so every card leads with a visually noisy 00000002-style string that carries no meaning for the reader.
  • The header row (lines 797-815) already carries the meaningful state: outdated pill, resolved pill, resolve/unresolve, collapse/expand. The id adds clutter, not information.

Architecture notes

  • Anchor mechanism is independent of the visible span. The jump target is the card's id={thread-${t().tid}} on the card root div (Pull.jsx:792), consumed by the jump-to-comments index (onJump → scroll to thread-<tid>, per the #546/#557 index). Removing the header span does not touch that id, the flashTid flash mechanics, or the aria-label={Thread ${t().tid}} (line 794) — leave all three untouched so deep links and the comments index keep working.
  • Nothing else renders the tid visibly (the index pills render anchorLabel, not the tid), so this is a single-element removal in ThreadCard.
  • If some form of thread identification is still wanted in the header, the implementer may move the tid into the existing title/tooltip instead — implementer's call; default is plain removal.

Acceptance criteria

  • The zero-padded tid no longer appears visibly in the thread card header.
  • id="thread-<tid>" on the card root is unchanged — jump-to-comments pills still scroll to and flash the correct card.
  • Deep links to thread-<tid> anchors still resolve.
  • aria-label still identifies the thread for screen readers.
  • No test asserting the visible tid regresses (web/test/unit/* sweep for thread-<tid> / header assertions).
## What's requested Remove the visible zero-padded thread id (e.g. `00000002`) from the thread card header, while keeping the anchor mechanism intact. ## Evidence - `web/src/pages/Pull.jsx:798` — the card header renders the raw tid: ```jsx <span class="font-mono text-zinc-500 dark:text-zinc-400">{t().tid}</span> ``` - tids are 8-hex zero-padded on the server (`internal/review/service.go:384`, `internal/review/threads.go:43`: `fmt.Sprintf("%08x", next)`), so every card leads with a visually noisy `00000002`-style string that carries no meaning for the reader. - The header row (lines 797-815) already carries the meaningful state: outdated pill, resolved pill, resolve/unresolve, collapse/expand. The id adds clutter, not information. ## Architecture notes - **Anchor mechanism is independent of the visible span.** The jump target is the card's `id={`thread-${t().tid}`}` on the card root div (`Pull.jsx:792`), consumed by the jump-to-comments index (`onJump` → scroll to `thread-<tid>`, per the #546/#557 index). Removing the header span does not touch that id, the `flashTid` flash mechanics, or the `aria-label={`Thread ${t().tid}`}` (line 794) — leave all three untouched so deep links and the comments index keep working. - Nothing else renders the tid visibly (the index pills render `anchorLabel`, not the tid), so this is a single-element removal in `ThreadCard`. - If some form of thread identification is still wanted in the header, the implementer may move the tid into the existing `title`/tooltip instead — implementer's call; default is plain removal. ## Acceptance criteria - [ ] The zero-padded tid no longer appears visibly in the thread card header. - [ ] `id="thread-<tid>"` on the card root is unchanged — jump-to-comments pills still scroll to and flash the correct card. - [ ] Deep links to `thread-<tid>` anchors still resolve. - [ ] `aria-label` still identifies the thread for screen readers. - [ ] No test asserting the visible tid regresses (`web/test/unit/*` sweep for `thread-<tid>` / header assertions).
crueber added this to the v1 milestone 2026-09-15 15:42:13 +00:00
Author
Owner

Fixed by #583 (merged): visible zero-padded tid span removed from the ThreadCard header (plain removal); root thread- id, aria-label, flash mechanics, pills, and deep links byte-identical. Verified: 1446 unit tests green (smoke excluded, pre-existing), vite/esbuild green, independent review APPROVE with sweep re-verified.

Fixed by #583 (merged): visible zero-padded tid span removed from the ThreadCard header (plain removal); root thread-<tid> id, aria-label, flash mechanics, pills, and deep links byte-identical. Verified: 1446 unit tests green (smoke excluded, pre-existing), vite/esbuild green, independent review APPROVE with sweep re-verified.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
crueber/walhub#581
No description provided.