From 3870f1f9a2e5c7ea4b2b70b860d3dfd7d7e2ae8f Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 25 Aug 2026 17:23:00 +0000 Subject: [PATCH 1/2] Record three loose ends from the answer-page redesign MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Follow-up to PR #2370, which merged as fbe5a81c while these were being written. None is a defect and none was fixed; all three would otherwise be lost with that session's context. Queued as immutable inbox requests — the canonical ledger is untouched, and a later serialized reconcile allocates the IDs. - Overflow menus split three ways on the ARIA menu pattern. search-pins-menu declares role=menu/menuitem with no keyboard model, mode-action-popup implements one properly, and the answer drawer became a disclosure in #2370. No gate covers the choice, so it will keep diverging. - The source-rail card's three hardcoded pixel measurements, with the reasons the reviewer's token suggestion was declined and the one part worth doing (the duplicated 158px clamp, as a local constant, not a theme token). - The 62.5% docstring-coverage warning, recorded as read and judged rather than missed. Advisory only; it never blocked. The snapshot is regenerated because check:outstanding-issues compares the committed snapshot against the ledger and the pending count moved. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01AP3MXGx1bGeEBmFKYkeLA8 --- data/outstanding-issues-snapshot.json | 22 +++++++++++++++++-- .../485bdac6-7f79-4539-9d90-347866604b35.json | 14 ++++++++++++ .../8b2a3f89-9bdb-4fb1-8fd0-35165d050263.json | 14 ++++++++++++ .../d2a6122a-4fcd-4429-92a7-6004fa19eb24.json | 14 ++++++++++++ 4 files changed, 62 insertions(+), 2 deletions(-) create mode 100644 docs/outstanding-issues-inbox/485bdac6-7f79-4539-9d90-347866604b35.json create mode 100644 docs/outstanding-issues-inbox/8b2a3f89-9bdb-4fb1-8fd0-35165d050263.json create mode 100644 docs/outstanding-issues-inbox/d2a6122a-4fcd-4429-92a7-6004fa19eb24.json diff --git a/data/outstanding-issues-snapshot.json b/data/outstanding-issues-snapshot.json index 4c52c170fe..1120535a9a 100644 --- a/data/outstanding-issues-snapshot.json +++ b/data/outstanding-issues-snapshot.json @@ -2,7 +2,7 @@ "version": "outstanding-issues-snapshot-v1", "ledger_revision": { "sha": "6085a0a59aca4c1bb9e19fb4d490fd34dec950cd", - "committed_at": "2026-08-22T20:52:39Z" + "committed_at": "2026-08-22T20:52:39+00:00" }, "counts": { "open": 73, @@ -10,7 +10,7 @@ "p2": 40, "p3": 33, "queued": 10, - "pending": 149, + "pending": 152, "resolved": 376 }, "queue": [ @@ -1043,6 +1043,12 @@ "summary": "Cancel request 7dc2d09a-b05c-4d10-b198-263af3c0f45e: Superseded by done request c4b1de28-7e91-46d6-9129-aa8b4d58f685 resolving #RSD9EJ on feature branch.", "created_at": "2026-08-23" }, + { + "request_id": "485bdac6-7f79-4539-9d90-347866604b35", + "action": "add", + "summary": "Overflow menus split between a real ARIA menu and menu roles with no keyboard model", + "created_at": "2026-08-25" + }, { "request_id": "48b805df-a419-4204-85bf-9ba2cbf8d250", "action": "done", @@ -1253,6 +1259,12 @@ "summary": "prettierignore lists one generated data snapshot but not its sibling", "created_at": "2026-08-25" }, + { + "request_id": "8b2a3f89-9bdb-4fb1-8fd0-35165d050263", + "action": "add", + "summary": "The answer source-rail card carries three hardcoded pixel measurements, one of them duplicated", + "created_at": "2026-08-25" + }, { "request_id": "8f2c28e6-aeef-4648-bb23-c1bd2222226b", "action": "done", @@ -1517,6 +1529,12 @@ "summary": "Developer hub pages repeat a labelled-section block 17 times; extract a PanelSection component", "created_at": "2026-08-25" }, + { + "request_id": "d2a6122a-4fcd-4429-92a7-6004fa19eb24", + "action": "add", + "summary": "Docstring coverage on the answer-source changes sits at 62.5% against CodeRabbit's 80% advisory threshold", + "created_at": "2026-08-25" + }, { "request_id": "d4452409-69bf-4bb6-9ad7-dab654822940", "action": "add", diff --git a/docs/outstanding-issues-inbox/485bdac6-7f79-4539-9d90-347866604b35.json b/docs/outstanding-issues-inbox/485bdac6-7f79-4539-9d90-347866604b35.json new file mode 100644 index 0000000000..b321d3a330 --- /dev/null +++ b/docs/outstanding-issues-inbox/485bdac6-7f79-4539-9d90-347866604b35.json @@ -0,0 +1,14 @@ +{ + "version": 2, + "id": "485bdac6-7f79-4539-9d90-347866604b35", + "createdOn": "2026-08-25", + "action": "add", + "payload": { + "pri": "P3", + "type": "rec", + "summary": "Overflow menus split between a real ARIA menu and menu roles with no keyboard model", + "detail": "search-pins-menu.tsx declares role=menu/menuitem but implements no arrow-key, Home/End or roving-focus handling, so it promises the ARIA menu keyboard model and delivers Tab. mode-action-popup.tsx implements the model properly. answer-source-drawer.tsx was the third shape and was changed on 2026-08-25 (PR #2370) to role=group with plain buttons — a disclosure, which is what it actually is. Next action: pick one rule for the repo and apply it to search-pins-menu.tsx — either implement the keyboard model or drop the menu roles as the drawer did. No gate covers this, so it will keep diverging. Not urgent: every one of these menus is operable by Tab today; the defect is the mismatch between what is announced and what works.", + "source": "PR #2370 review (CodeRabbit), verified in source 2026-08-25", + "issueUlid": "01M0WYC9VR76GGRGJ31X3V41CP" + } +} diff --git a/docs/outstanding-issues-inbox/8b2a3f89-9bdb-4fb1-8fd0-35165d050263.json b/docs/outstanding-issues-inbox/8b2a3f89-9bdb-4fb1-8fd0-35165d050263.json new file mode 100644 index 0000000000..bb550ec84a --- /dev/null +++ b/docs/outstanding-issues-inbox/8b2a3f89-9bdb-4fb1-8fd0-35165d050263.json @@ -0,0 +1,14 @@ +{ + "version": 2, + "id": "8b2a3f89-9bdb-4fb1-8fd0-35165d050263", + "createdOn": "2026-08-25", + "action": "add", + "payload": { + "pri": "P3", + "type": "rec", + "summary": "The answer source-rail card carries three hardcoded pixel measurements, one of them duplicated", + "detail": "answer-source-rail.tsx uses h-[22px] min-w-[22px] on the number badge and max-w-[158px] twice on the title and meta clamp. A reviewer asked for @theme tokens; that was declined on 2026-08-25 and the reasoning is worth keeping: no gate flags these (check:design-system-contract passes, and its raw-literal ratchets do not cover width/height), and naming one card's measurements as scale steps misrepresents them as a design vocabulary other surfaces should reach for. Next action, if anything: extract the duplicated 158px into one local constant in that file so the two clamps cannot drift apart. That is the only part with real value — the badge pair is used once. Do NOT convert these to @theme tokens without a second consumer.", + "source": "PR #2370 review (CodeRabbit nitpick), declined with reasons 2026-08-25", + "issueUlid": "01M0WYCQMZVVA5M289CJVFXCTJ" + } +} diff --git a/docs/outstanding-issues-inbox/d2a6122a-4fcd-4429-92a7-6004fa19eb24.json b/docs/outstanding-issues-inbox/d2a6122a-4fcd-4429-92a7-6004fa19eb24.json new file mode 100644 index 0000000000..6e605231e4 --- /dev/null +++ b/docs/outstanding-issues-inbox/d2a6122a-4fcd-4429-92a7-6004fa19eb24.json @@ -0,0 +1,14 @@ +{ + "version": 2, + "id": "d2a6122a-4fcd-4429-92a7-6004fa19eb24", + "createdOn": "2026-08-25", + "action": "add", + "payload": { + "pri": "P3", + "type": "task", + "summary": "Docstring coverage on the answer-source changes sits at 62.5% against CodeRabbit's 80% advisory threshold", + "detail": "CodeRabbit's pre-merge Docstring Coverage check warned on every head of PR #2370, measuring 56 functions across 17 files. It is advisory only — not a required GitHub check, and it never blocked the merge. Recorded so the next person who sees the warning knows it was read rather than missed. Next action: none required. If someone wants the number up, the gap is in small helpers and test harness functions rather than in the exported surfaces, which are documented; decide whether the threshold is measuring something this repo actually wants before writing comments to satisfy it.", + "source": "PR #2370 pre-merge checks, 2026-08-25", + "issueUlid": "01M0WYCQTP2X46NY2E10SPCE0H" + } +} From aad92724b43b7868917e896794ace72dfb287a79 Mon Sep 17 00:00:00 2001 From: BigSimmo <87357024+BigSimmo@users.noreply.github.com> Date: Wed, 26 Aug 2026 02:51:00 +0800 Subject: [PATCH 2/2] fix(answer): own source rail follow-up --- data/outstanding-issues-snapshot.json | 12 +++++++++--- .../3a4868e6-281a-48c1-895b-82d6aade2bc7.json | 10 ++++++++++ .../clinical-dashboard/answer-source-rail.tsx | 10 ++++++++-- 3 files changed, 27 insertions(+), 5 deletions(-) create mode 100644 docs/outstanding-issues-inbox/3a4868e6-281a-48c1-895b-82d6aade2bc7.json diff --git a/data/outstanding-issues-snapshot.json b/data/outstanding-issues-snapshot.json index f1a7e208f7..bac6314625 100644 --- a/data/outstanding-issues-snapshot.json +++ b/data/outstanding-issues-snapshot.json @@ -1,8 +1,8 @@ { "version": "outstanding-issues-snapshot-v1", "ledger_revision": { - "sha": "6085a0a59aca4c1bb9e19fb4d490fd34dec950cd", - "committed_at": "2026-08-22T20:52:39+00:00" + "sha": "707b965965a9b843c13deb6b5c9ddd158fe2631d", + "committed_at": "2026-08-25T17:45:01Z" }, "counts": { "open": 91, @@ -10,7 +10,7 @@ "p2": 57, "p3": 33, "queued": 9, - "pending": 3, + "pending": 4, "resolved": 412 }, "queue": [ @@ -936,6 +936,12 @@ } ], "pending": [ + { + "request_id": "3a4868e6-281a-48c1-895b-82d6aade2bc7", + "action": "cancel", + "summary": "Cancel request 8b2a3f89-9bdb-4fb1-8fd0-35165d050263: Implemented the requested local source-card width constant in this owning answer-page change.", + "created_at": "2026-08-25" + }, { "request_id": "485bdac6-7f79-4539-9d90-347866604b35", "action": "add", diff --git a/docs/outstanding-issues-inbox/3a4868e6-281a-48c1-895b-82d6aade2bc7.json b/docs/outstanding-issues-inbox/3a4868e6-281a-48c1-895b-82d6aade2bc7.json new file mode 100644 index 0000000000..b7fe64a647 --- /dev/null +++ b/docs/outstanding-issues-inbox/3a4868e6-281a-48c1-895b-82d6aade2bc7.json @@ -0,0 +1,10 @@ +{ + "version": 2, + "id": "3a4868e6-281a-48c1-895b-82d6aade2bc7", + "createdOn": "2026-08-25", + "action": "cancel", + "payload": { + "requestId": "8b2a3f89-9bdb-4fb1-8fd0-35165d050263", + "reason": "Implemented the requested local source-card width constant in this owning answer-page change." + } +} diff --git a/src/components/clinical-dashboard/answer-source-rail.tsx b/src/components/clinical-dashboard/answer-source-rail.tsx index 41579ad994..4542ad315a 100644 --- a/src/components/clinical-dashboard/answer-source-rail.tsx +++ b/src/components/clinical-dashboard/answer-source-rail.tsx @@ -188,10 +188,15 @@ function AnswerSourceCard({ {sourceBadgeDisplay(source, index)} - + {cleanDisplayTitle(source.title)} - + {/* Tabular figures keep page numbers aligned between cards; the mono face the old list row used opened a visible gap after "p." at this size. */} @@ -265,3 +270,4 @@ function cardLabel(source: AnswerSourceRow, index: number) { const cardClass = "inline-flex min-h-12 min-w-0 items-center gap-2.5 rounded-[var(--radius-lg)] border bg-[color:var(--surface-raised)] px-3 py-1.5 text-left shadow-[var(--shadow-inset)] transition-[border-color,box-shadow] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[color:var(--focus)]"; +const cardTextWidth = "max-w-[158px]";