Fix #112: sidebar section consistency #118

Merged
crueber merged 1 commit from fix/issue-112 into main 2026-09-05 05:15:28 +00:00
Owner

Nit-pick consistency in the issue metadata sidebar (#107 container), per #112 and the BEFORE screenshot in /tmp/opencode/shot-c3e2df83-be17-468d-bdae-8671d8110fe8.png.

Change (web/src/pages/Issue.jsx, +5/-1, no behavior change, no new deps):

  • Milestone section now matches Assignees exactly: same block (grid gap-1 p-3), same label typography, value wrapped in the same flex flex-wrap gap-1 div with a plain span.
  • All three none fallbacks share one treatment: span.muted.text-xs (milestone was a bare unstyled span).

Verification:

  • node --test web/test/unit/*.test.js: 252/252 pass.
  • Real-browser CDP drive (worktree build on :18082, seeded demo/seed#1 empty + #2 populated with label/assignee/milestone): dark + light render, all empty nones carry muted text-xs, populated values share the same wrapper; pageErrors [] (zero JS exceptions).
  • A/B vs pristine origin/main: base shows the bug (milestone none unstyled, empty class); fixed build unifies it. The 24 Chrome Failed to load resource 404 lines (api/api-social/api-tasks probes, tolerated by design per Repo.jsx) and the repo: summary 404 toast reproduce identically on the base build - pre-existing, out of scope.
  • AFTER screenshots: /tmp/opencode/wt112-dark-1.png, wt112-light-2.png (+ dark-2/light-1).

Laws: 1 (no new deps), 7 (no task/long-work change), 8 (no new routes/registries; sidebar-only), 12 (no doc behavior to update - pure class unification; stating here instead).

Nit-pick consistency in the issue metadata sidebar (#107 container), per #112 and the BEFORE screenshot in /tmp/opencode/shot-c3e2df83-be17-468d-bdae-8671d8110fe8.png. Change (web/src/pages/Issue.jsx, +5/-1, no behavior change, no new deps): - Milestone section now matches Assignees exactly: same block (grid gap-1 p-3), same label typography, value wrapped in the same flex flex-wrap gap-1 div with a plain span. - All three none fallbacks share one treatment: span.muted.text-xs (milestone was a bare unstyled span). Verification: - node --test web/test/unit/*.test.js: 252/252 pass. - Real-browser CDP drive (worktree build on :18082, seeded demo/seed#1 empty + #2 populated with label/assignee/milestone): dark + light render, all empty nones carry muted text-xs, populated values share the same wrapper; pageErrors [] (zero JS exceptions). - A/B vs pristine origin/main: base shows the bug (milestone none unstyled, empty class); fixed build unifies it. The 24 Chrome Failed to load resource 404 lines (api/api-social/api-tasks probes, tolerated by design per Repo.jsx) and the repo: summary 404 toast reproduce identically on the base build - pre-existing, out of scope. - AFTER screenshots: /tmp/opencode/wt112-dark-1.png, wt112-light-2.png (+ dark-2/light-1). Laws: 1 (no new deps), 7 (no task/long-work change), 8 (no new routes/registries; sidebar-only), 12 (no doc behavior to update - pure class unification; stating here instead).
Issue sidebar (#107 container): the milestone value was a bare
<span>{t().milestone ?? "none"}>, so its empty state rendered in
default text-sm body color while labels/assignees use
<span class="muted text-xs">none</span>, and its value lacked the
flex flex-wrap gap-1 wrapper the other sections use. Wrap the
milestone value identically and share the muted text-xs fallback.
No behavior change; no new deps.
Sign in to join this conversation.
No description provided.