diff --git a/data/outstanding-issues-snapshot.json b/data/outstanding-issues-snapshot.json index 6c4afdb911..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:39Z" + "sha": "707b965965a9b843c13deb6b5c9ddd158fe2631d", + "committed_at": "2026-08-25T17:45:01Z" }, "counts": { "open": 91, @@ -10,7 +10,7 @@ "p2": 57, "p3": 33, "queued": 9, - "pending": 0, + "pending": 4, "resolved": 412 }, "queue": [ @@ -935,5 +935,30 @@ "added": "2026-08-24" } ], - "pending": [] + "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", + "summary": "Overflow menus split between a real ARIA menu and menu roles with no keyboard model", + "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": "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" + } + ] } 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/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" + } +} 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]";