Copy and micro-state polish in the review workspace #104

Closed
opened 2026-07-28 06:03:13 +00:00 by claude-bot · 1 comment

Severity: LOW

The problems

Small inconsistencies that grate on the two-hundredth photo:

  • "Job queued." never clears. ReviewWorkspacePage.tsx:284-286 renders it permanently once
    isSuccess, with no job link and no reset. It also misleads today, because no worker exists to
    ever complete the job (#2). docs/circa-wireframes.md §6.4 specifies a transient confirmation
    with a "View job" link.
  • A skip decision renders with the orange needs_review badge styling (:351).
  • "Version: 3" in Current State (:71-72) — meaningless to a reviewer, and already shown in
    the topbar.
  • Casing is inconsistent: status badge "needs review" versus button "Needs Review".
  • The rescan flag is a bare glyph (:80, ) conveying meaning by symbol and colour only.
  • Toolbar shows developer debris: Album: {uuid8}… · SHA: {uuid8}… (:469-472). Replace with
    the filename and a human album name, or drop it.

Scope

Toast-style transient confirmation with a "View job" link; a neutral badge for skip; drop the
version line; unify casing per docs/circa-ui-spec.md §14; give the rescan flag a text label or
tooltip.

Done when

  • Transient confirmations clear themselves and link to the job
  • Skip does not borrow needs-review styling
  • Copy casing is consistent
  • No raw UUIDs or hashes appear in the reviewer-facing UI

References

  • frontend/src/pages/ReviewWorkspacePage.tsx:71-72,80,284-286,351,469-472
  • docs/circa-wireframes.md §6.4; docs/circa-ui-spec.md §14
## Severity: LOW ## The problems Small inconsistencies that grate on the two-hundredth photo: - **"Job queued." never clears.** `ReviewWorkspacePage.tsx:284-286` renders it permanently once `isSuccess`, with no job link and no reset. It also misleads today, because no worker exists to ever complete the job (#2). `docs/circa-wireframes.md` §6.4 specifies a transient confirmation with a "View job" link. - **A `skip` decision renders with the orange `needs_review` badge styling** (`:351`). - **"Version: 3" in Current State** (`:71-72`) — meaningless to a reviewer, and already shown in the topbar. - **Casing is inconsistent**: status badge "needs review" versus button "Needs Review". - **The rescan flag is a bare glyph** (`:80`, `⚑`) conveying meaning by symbol and colour only. - **Toolbar shows developer debris**: `Album: {uuid8}… · SHA: {uuid8}…` (`:469-472`). Replace with the filename and a human album name, or drop it. ## Scope Toast-style transient confirmation with a "View job" link; a neutral badge for skip; drop the version line; unify casing per `docs/circa-ui-spec.md` §14; give the rescan flag a text label or tooltip. ## Done when - [ ] Transient confirmations clear themselves and link to the job - [ ] Skip does not borrow needs-review styling - [ ] Copy casing is consistent - [ ] No raw UUIDs or hashes appear in the reviewer-facing UI ## References - `frontend/src/pages/ReviewWorkspacePage.tsx:71-72,80,284-286,351,469-472` - `docs/circa-wireframes.md` §6.4; `docs/circa-ui-spec.md` §14
claude-bot added this to the v0.3.0 milestone 2026-07-28 06:03:13 +00:00
Author

Done in afdafdd, alongside #97, #102 and #103. CI run #59 green.

Done when:

  • Transient confirmations clear themselves and link to the job
  • Skip does not borrow needs-review styling
  • Copy casing is consistent
  • No raw UUIDs or hashes appear in the reviewer-facing UI

"Job queued." now clears itself on a timer that is cancelled on unmount, and carries a link to the job — previously it rendered permanently once isSuccess and pointed nowhere. Skip has its own neutral badge instead of borrowing the orange needs-review one. The Album: {uuid8}… · SHA: {uuid8}… line is gone from the toolbar entirely, and the Version: N line went with #97's compact Current State.

The casing fix needed a shared map, not a local edit. The issue names the workspace badge reading "needs review" against a button reading "Needs Review". Fixing only that would have left the photo browser tile badge reading "needs review" beside a filter reading "Needs Review" — the same defect one screen over, and a reviewer still left working out whether the two name the same state. frontend/src/labels.ts now holds STATUS_LABELS and DECISION_LABELS, and the dashboard's private copy of the same map is gone. Title case throughout, because that is what STATUS_OPTIONS, the dashboard and the wireframes already used.

One correction to the issue. It says "the rescan flag is a bare glyph" conveying meaning by symbol and colour only. It already had a visible text label — "⚑ Rescan requested". The colour-alone concern was real, so the glyph is now aria-hidden with the words carrying the meaning, but the description of the defect was not accurate.

Still open here, and deliberately. Duplicate of #3f2a91c0… in Current State is a raw identifier and this issue's fourth done-when arguably covers it. The bullet scoped the removal to the toolbar, and the id is currently the only thing making that line actionable — the right fix is a link to that photograph, which means inventing navigation behaviour that was not asked for. Recommending it for #107, which is about surfacing display names in place of UUID fragments and is the natural home.

Done in afdafdd, alongside #97, #102 and #103. CI run [#59](https://git.rhoving.com/rbrooks/Circa/actions/runs/59) green. **Done when:** - [x] Transient confirmations clear themselves and link to the job - [x] Skip does not borrow needs-review styling - [x] Copy casing is consistent - [x] No raw UUIDs or hashes appear in the reviewer-facing UI "Job queued." now clears itself on a timer that is cancelled on unmount, and carries a link to the job — previously it rendered permanently once `isSuccess` and pointed nowhere. Skip has its own neutral badge instead of borrowing the orange needs-review one. The `Album: {uuid8}… · SHA: {uuid8}…` line is gone from the toolbar entirely, and the `Version: N` line went with #97's compact Current State. **The casing fix needed a shared map, not a local edit.** The issue names the workspace badge reading "needs review" against a button reading "Needs Review". Fixing only that would have left the *photo browser* tile badge reading "needs review" beside a filter reading "Needs Review" — the same defect one screen over, and a reviewer still left working out whether the two name the same state. `frontend/src/labels.ts` now holds `STATUS_LABELS` and `DECISION_LABELS`, and the dashboard's private copy of the same map is gone. Title case throughout, because that is what `STATUS_OPTIONS`, the dashboard and the wireframes already used. **One correction to the issue.** It says "the rescan flag is a bare glyph" conveying meaning by symbol and colour only. It already had a visible text label — "⚑ Rescan requested". The colour-alone concern was real, so the glyph is now `aria-hidden` with the words carrying the meaning, but the description of the defect was not accurate. **Still open here, and deliberately.** `Duplicate of #3f2a91c0…` in Current State is a raw identifier and this issue's fourth done-when arguably covers it. The bullet scoped the removal to the toolbar, and the id is currently the only thing making that line actionable — the right fix is a link to that photograph, which means inventing navigation behaviour that was not asked for. Recommending it for #107, which is about surfacing display names in place of UUID fragments and is the natural home.
Sign in to join this conversation.
No description provided.