From 11bee2d17eace31c814d86989f5f726c8a14ed6f Mon Sep 17 00:00:00 2001 From: BigSimmo <87357024+BigSimmo@users.noreply.github.com> Date: Sat, 17 Oct 2026 19:49:04 +0800 Subject: [PATCH 1/2] chore(ledger): reconcile 21 pending inbox requests and record prlanded proofs --- data/outstanding-issues-snapshot.json | 149 ++++++++---------- data/repo-awareness-snapshot.json | 26 ++- docs/branch-review-index.md | 11 +- ...aaf4e7c8281586c9e87ea8f873af629a.record.md | 1 + ...7e04c6fd22d90c1d718f6cb3e7771bda.record.md | 1 + ...dcded2a8a7510ceaf7be4ac49c042211.record.md | 1 + .../1ff7b52e-5911-435e-b807-7a9ff5602747.json | 0 .../389a777d-b0c5-495b-b65b-012424818c17.json | 0 .../43a957c6-eee9-45af-b9ce-fc850ab0308b.json | 0 .../52b311f2-1e3d-4a6e-82a0-1e503dfcc99c.json | 0 .../5d7ae72b-9125-4b0c-9a0e-8d85023a1524.json | 0 .../5de9fe1e-9893-470c-b040-6537874b7b86.json | 0 .../6aec8cab-618e-4533-bf70-1d871fe03323.json | 0 .../737051c7-396c-40c0-9b0b-8e1d7c1a38fb.json | 0 .../8c549632-5423-4986-9ef0-4734ad5f8a90.json | 0 .../8d130a15-f473-49ef-8fcc-50daca539ad6.json | 0 .../8e9cd355-c5a2-4aa8-ae30-9e477e0977cb.json | 0 .../99b5370e-305b-47f4-b0b5-5c81c37f39d3.json | 0 .../aebceba4-b600-4d60-94d1-901c7112bc21.json | 0 .../b8d8175c-652e-47e6-88d0-e45b1fb11971.json | 0 .../ba9e356d-1197-4ae8-af67-19e313a89275.json | 0 .../cbd0a3f9-af52-4247-b61f-6541acf527f8.json | 0 .../d72ccad1-e17d-4928-a9c4-70a53cb9e67c.json | 0 .../da9d4a0c-94e8-40e1-ba5d-73a3b0d8dcb6.json | 0 .../ef7e6803-0600-4348-9b43-344fd4ff4b1a.json | 0 .../f3352f44-2b82-4c14-b91a-c4485c7bd738.json | 0 .../f6e8e317-6b61-4b52-9910-fa15b5dd9aa4.json | 0 docs/outstanding-issues.md | 26 +-- 28 files changed, 122 insertions(+), 93 deletions(-) create mode 100644 docs/branch-review-records/05e48734fb477ce17ef2f6b85df92af8aaf4e7c8281586c9e87ea8f873af629a.record.md create mode 100644 docs/branch-review-records/5c2377bab5fb02f7ed3bd95bba8059a37e04c6fd22d90c1d718f6cb3e7771bda.record.md create mode 100644 docs/branch-review-records/a7be2760026da4bc040fa90bf847382bdcded2a8a7510ceaf7be4ac49c042211.record.md rename docs/outstanding-issues-inbox/{ => applied}/1ff7b52e-5911-435e-b807-7a9ff5602747.json (100%) rename docs/outstanding-issues-inbox/{ => applied}/389a777d-b0c5-495b-b65b-012424818c17.json (100%) rename docs/outstanding-issues-inbox/{ => applied}/43a957c6-eee9-45af-b9ce-fc850ab0308b.json (100%) rename docs/outstanding-issues-inbox/{ => applied}/52b311f2-1e3d-4a6e-82a0-1e503dfcc99c.json (100%) rename docs/outstanding-issues-inbox/{ => applied}/5d7ae72b-9125-4b0c-9a0e-8d85023a1524.json (100%) rename docs/outstanding-issues-inbox/{ => applied}/5de9fe1e-9893-470c-b040-6537874b7b86.json (100%) rename docs/outstanding-issues-inbox/{ => applied}/6aec8cab-618e-4533-bf70-1d871fe03323.json (100%) rename docs/outstanding-issues-inbox/{ => applied}/737051c7-396c-40c0-9b0b-8e1d7c1a38fb.json (100%) rename docs/outstanding-issues-inbox/{ => applied}/8c549632-5423-4986-9ef0-4734ad5f8a90.json (100%) rename docs/outstanding-issues-inbox/{ => applied}/8d130a15-f473-49ef-8fcc-50daca539ad6.json (100%) rename docs/outstanding-issues-inbox/{ => applied}/8e9cd355-c5a2-4aa8-ae30-9e477e0977cb.json (100%) rename docs/outstanding-issues-inbox/{ => applied}/99b5370e-305b-47f4-b0b5-5c81c37f39d3.json (100%) rename docs/outstanding-issues-inbox/{ => applied}/aebceba4-b600-4d60-94d1-901c7112bc21.json (100%) rename docs/outstanding-issues-inbox/{ => applied}/b8d8175c-652e-47e6-88d0-e45b1fb11971.json (100%) rename docs/outstanding-issues-inbox/{ => applied}/ba9e356d-1197-4ae8-af67-19e313a89275.json (100%) rename docs/outstanding-issues-inbox/{ => applied}/cbd0a3f9-af52-4247-b61f-6541acf527f8.json (100%) rename docs/outstanding-issues-inbox/{ => applied}/d72ccad1-e17d-4928-a9c4-70a53cb9e67c.json (100%) rename docs/outstanding-issues-inbox/{ => applied}/da9d4a0c-94e8-40e1-ba5d-73a3b0d8dcb6.json (100%) rename docs/outstanding-issues-inbox/{ => applied}/ef7e6803-0600-4348-9b43-344fd4ff4b1a.json (100%) rename docs/outstanding-issues-inbox/{ => applied}/f3352f44-2b82-4c14-b91a-c4485c7bd738.json (100%) rename docs/outstanding-issues-inbox/{ => applied}/f6e8e317-6b61-4b52-9910-fa15b5dd9aa4.json (100%) diff --git a/data/outstanding-issues-snapshot.json b/data/outstanding-issues-snapshot.json index b9d1c155ee..50f8f9da41 100644 --- a/data/outstanding-issues-snapshot.json +++ b/data/outstanding-issues-snapshot.json @@ -4,13 +4,13 @@ "committed_at": "2026-10-16" }, "counts": { - "open": 109, - "p1": 17, - "p2": 55, - "p3": 37, + "open": 108, + "p1": 15, + "p2": 58, + "p3": 35, "queued": 6, "pending": 0, - "resolved": 787 + "resolved": 796 }, "queue": [ { @@ -846,15 +846,6 @@ "source": "Review of five Antigravity reports against main, 2026-10-12", "added": "2026-10-12" }, - { - "id": "#08216B", - "priority": "P3", - "type": "task", - "summary": "Remove PR 3538 leftovers once the 30-day dead-code window passes (after 13 Nov 2026)", - "detail": "The /api/proxy route only replies authenticated and nothing calls it. scripts/recalculate-answer-support-labels.ts and its test are run by nothing. The 11 developer tool pages under src/app/mockups/development are now unreachable duplicates of /admin/developer-hub. The safe-number editor, attendance roster, QR check-in helper and clinical note editor are unwired; wire or remove each, and the note editor needs a privacy review before use. The clinical-math calculators need ideal body weight guidance, a corrected lithium dialysis label, a consistent 1.2 mmol/L boundary and tablet-strength rounding before any use.", - "source": "PR 3538 review, 15 Oct 2026", - "added": "2026-10-15" - }, { "id": "#F3B2XC", "priority": "P2", @@ -873,21 +864,12 @@ "source": "Audit 2026-10-08, rechecked against main 2026-10-13", "added": "2026-10-13" }, - { - "id": "#NHR0MM", - "priority": "P3", - "type": "issue", - "summary": "Roster week strip shows only the first shift kind on a day; Teaching next-session ignores all-day entries; WA public holidays end at 2028", - "detail": "roster-week-strip.tsx uses kinds[0] so a morning plus night shift looks like a morning alone (de-duplicate kinds and count distinct kinds for any overflow marker, test with two shifts of the same kind). teaching-view-model.ts:138 excludes all-day sessions from nextSession (restore a date guard for all-day entries: today or later). src/lib/on-call/wa-public-holidays.ts has data for 2026-2028 only, including the fairness count call site.", - "source": "PsychSift audit review (16 audit reports) checked against main 4382217, 2026-10-13", - "added": "2026-10-13" - }, { "id": "#ZWJCK4", - "priority": "P1", + "priority": "P2", "type": "issue", "summary": "PDF extractor can turn prose beneath a table into a table row and rebuild the table markdown from it", - "detail": "worker/python/extract_pdf_assets.py recover_table_rows_from_edge_strip (~:557, caller ~:1367-1390) admits blocks by position alone (four bbox tests) and treats each line as a cell, then rebuilds the whole accessible table markdown, which reaches the vision model, document_table_facts (threshold_value/action) and page.text/search. Also appends recovered rows unsorted, drops single-baseline rows silently, has no test, and worker/python/** is outside the coverage inventory. Next action: accept a recovered block only when its line x-positions align with table.rows cell bboxes, sort by y0, drop the row on alignment failure, cover the markdown rebuild path too, and add a synthetic test (3-column table followed by a 3-line paragraph asserting no new row and unchanged accessible_table_markdown).", + "detail": "Rechecked 17 Oct 2026 against main 99507ebca. The original fault is fixed: PR #3571 made worker/python/extract_pdf_assets.py _recover_table_rows_split admit a recovered line only when each piece fits one column, keep top and bottom strips in order, and tests/pdf-table-extraction.test.ts pins full-width prose being rejected. A leftover was fixed on 17 Oct: a short note under a recovered row (for example 'See note') was glued into that row's first cell; a lone line now joins the row above only when that cell actually wrapped (_continues_wrapped_cell), with tests both ways. Still open, low risk: text laid out in the table's own columns directly under a table (an abbreviation key, or a two-column page) becomes an extra row, and only when a drawing below the table extends the crop over it. Geometry alone cannot tell such a key from a real row. Changes reach search only after a re-index.", "source": "PsychSift audit review (16 audit reports) checked against main 4382217, 2026-10-13", "added": "2026-10-13" }, @@ -900,15 +882,6 @@ "source": "Audit 2026-10-08, rechecked against main 2026-10-13", "added": "2026-10-13" }, - { - "id": "#1WAA0Z", - "priority": "P3", - "type": "task", - "summary": "Possible dead code: older calculator mockups (audit M5-2) and On Call Education, Compliance and Logistics screens said to be unreachable (audit L4D-05)", - "detail": "Recheck first: the On Call sections are still used by calendar events and tests, so L4D-05 may be wrong. Delete nothing without npm run check:dead-code-candidate (see docs/agents/dead-code-deletion.md).", - "source": "Audit 2026-10-08, rechecked against main 2026-10-13", - "added": "2026-10-13" - }, { "id": "#JVQ1HA", "priority": "P2", @@ -945,15 +918,6 @@ "source": "Review of PR #3521, 2026-10-13", "added": "2026-10-13" }, - { - "id": "#WFYDV6", - "priority": "P1", - "type": "issue", - "summary": "Unwired WA MHA Form 6A/6B print component carries unverified statutory text", - "detail": "src/components/forms/wa-mha-form-print.tsx (PR #3538) says Form 6B needs Chief Psychiatrist consent, while src/lib/form-register.ts calls the 6B attachment a report to the Chief Psychiatrist. Section lists, the 7-day pre-expiry examination and copy recipients are unverified, and it prints WA Government branding. Fabricated default patient, clinician and consent values were removed on 15 Oct. Nothing renders it. Delete it once the 30-day dead-code window passes (after 13 Nov 2026) unless legal and clinical sign-off is obtained first.", - "source": "PR 3538 review, 15 Oct 2026", - "added": "2026-10-15" - }, { "id": "#YF0XSQ", "priority": "P2", @@ -972,15 +936,6 @@ "source": "PsychSift audit review (16 audit reports) checked against main 4382217, 2026-10-13", "added": "2026-10-13" }, - { - "id": "#CFHRJY", - "priority": "P2", - "type": "issue", - "summary": "Virtualize long document and differential diagnosis result lists", - "detail": "In src/components/clinical-dashboard/document-search-results.tsx (which has a 30-result initial progressive reveal) and src/components/differentials/differential-stream-workspace.tsx, evaluate virtualization or DOM recycling for large query results exceeding initial reveal limits to prevent memory bloat and scroll stutter while preserving keyboard/screen-reader accessibility.", - "source": "session 2026-10-14 performance audit follow-up", - "added": "2026-10-14" - }, { "id": "#A33Z1X", "priority": "P2", @@ -990,15 +945,6 @@ "source": "Audit 2026-10-08, rechecked against main 2026-10-13", "added": "2026-10-13" }, - { - "id": "#3B4S3Z", - "priority": "P2", - "type": "issue", - "summary": "Safe number editor: two managers saving at almost the same moment can overwrite each other's cover needs", - "detail": "The editor (Manage, Team settings, PR #3431) re-reads the team's needs, then sends needs.set, which replaces the whole list. The read and the write are separate requests, so a dated, grade or site need, or a safe number, that another manager saves in that gap is lost. Undo has the same gap. Closing it needs a database change (owner's explicit yes required): a version check on the team's needs so needs.set only succeeds against the list it read, else re-read and ask the manager to retry. Then add a test that interleaves a second save between the read and the write. Raised by Qodo on PR #3431, left open by choice as rare. Josh asked for it to be recorded 2026-10-10.", - "source": "PR #3431 review (Qodo), modes and dead wiring review thread", - "added": "2026-10-10" - }, { "id": "#K66YES", "priority": "P3", @@ -1017,15 +963,6 @@ "source": "Audit 2026-10-08, rechecked against main 2026-10-13", "added": "2026-10-13" }, - { - "id": "#WMGPSG", - "priority": "P2", - "type": "issue", - "summary": "Doc/instruction drift left open after the doc-fix pass: encoding damage, cloud-profile worktree rule, RAG duty missing from skills, stale decision", - "detail": "(1) docs/privacy-impact-assessment.md and docs/openai-cross-border-basis.md carry double-encoded text and a BOM (a verified-lossless guarded per-run repair exists on an unpushed branch; never a naive whole-file re-encode); docs/outstanding-issues.md:15 has a corrupted arrow (canonical ledger, edit only via reconciliation). (2) .claude/cloud-profile/skills/prompt/references/coding-workflow.md:21 has the pre-hardening worktree rule and is copied into every container session (owner decision on owned versus vendored). (3) No .agents skill mentions the RAG ranking-protection duty, and the retrieval-quality and reindex runbooks have no canary-pair or approval requirement. (4) docs/decisions/2026-09-26-remove-ward-flow-and-caring-contacts.md says Caring Contacts was removed but src/lib/caring-contacts/clock.ts is live with importers; needs a dated superseding decision, do not delete the file. (5) Admin renewals page test dropped its checked-wording assertion while admin-renewed-sheet still forbids the word; record the decision. (6) min-h-[48px] remains at account-setup-dialog.tsx:246 against a 'none remain' claim in docs/redesign/07-token-adoption-audit.md.", - "source": "PsychSift audit review (16 audit reports) checked against main 4382217, 2026-10-13", - "added": "2026-10-13" - }, { "id": "#HMBEQK", "priority": "P3", @@ -1044,15 +981,6 @@ "source": "Review of five Antigravity reports against main, 2026-10-12", "added": "2026-10-12" }, - { - "id": "#3ZHFH9", - "priority": "P2", - "type": "issue", - "summary": "Test-deletion guard blind spots: each-tables count as one case, Python tests are invisible, mass skip is undetected", - "detail": "scripts/check-diff-integrity.mjs counts each it.each(table) once (100 tables with 8+ rows, largest 48), TEST_FILE_PATTERN matches only TS/JS .spec/.test files (worker/python/test_*.py and tests/roster-publication-concurrency.mjs are outside it), and skip/only are counted as declared cases. Next action: owner decision on counting each-rows, adding .py, and flagging mass .skip; do not add skip to NON_CASE_MEMBERS (that would be wrong).", - "source": "PsychSift audit review (16 audit reports) checked against main 4382217, 2026-10-13", - "added": "2026-10-13" - }, { "id": "#54XJ7D", "priority": "P2", @@ -1061,6 +989,69 @@ "detail": "Needs a database migration and an owner decision between blocking the swap and asking the manager to acknowledge. A migration merged to main reaches the live database within seconds, so schedule the merge inside an approved window.", "source": "Audit 2026-10-08, rechecked against main 2026-10-13", "added": "2026-10-13" + }, + { + "id": "#EG02B7", + "priority": "P2", + "type": "task", + "summary": "Reindex reaper: enqueue storage cleanup at generation commit time (follow-up to #RP00FZ)", + "detail": "The reaper script builds storage cleanup jobs only on its gated apply path, so ordinary generation commits still schedule no cleanup for superseded storage objects. Needs a reviewed forward migration (never an edit to an existing one) before closing. Migration merges deploy to production and need the owner's explicit permission.", + "source": "PR #3570 review; scripts/cleanup-abandoned-reindex-generations.ts; supabase/migrations/20260702000000_commit_generation_preserve_legacy_artifacts.sql", + "added": "2026-10-16" + }, + { + "id": "#54N8ZN", + "priority": "P2", + "type": "task", + "summary": "Follow-up to PR 3546: CodeRabbit items held out of the merge", + "detail": "The 14 Oct admin source pilot proof (docs/design-system/evidence/admin-source-pilot.json) ran against an earlier pilot-client digest, and its harness is not in the repo. Native labels, keyboard order and the polite announcement are now pinned against the current client by tests/admin-pilot-client-accessibility.dom.test.tsx on every change (branch claude/ingestion-review-lbw6rf, 16 Oct). Still not done: a real screen-reader run (VoiceOver or NVDA) by a person, and the dark, forced-colours, 320px and print checks against the current digest. Low value while the page is administrator-only.", + "source": "PR 3546 CodeRabbit review 5545295336, owner decision 2026-10-16", + "added": "2026-10-16" + }, + { + "id": "#GR72PF", + "priority": "P3", + "type": "task", + "summary": "CME: render the claim-pack button on a reachable CME surface (follow-up to #G20QE6)", + "detail": "CmeClaimPackButton and its unit tests exist in src/components/cme/cme-claim-pack.tsx, but nothing imports or renders it, so clinicians cannot reach the study-budget export. Wire it into a reachable CME page with a user-facing test before closing.", + "source": "PR #3570 review; src/components/cme/cme-claim-pack.tsx; tests/cme-claim-pack.test.ts", + "added": "2026-10-16" + }, + { + "id": "#7D8WZ2", + "priority": "P2", + "type": "task", + "summary": "Hostile-document ingestion: run the upload-to-answer end-to-end matrix (follow-up to #F3SGCM)", + "detail": "Seven-class helper coverage exists in tests/hostile-document-ingestion-matrix.test.ts, but it uses an extraction mock and fabricated search results, so no uploaded hostile document is checked against real ingestion, retrieval and answer paths. Close only when each class runs end to end.", + "source": "PR #3570 review; tests/hostile-document-ingestion-matrix.test.ts", + "added": "2026-10-16" + }, + { + "id": "#9E87MG", + "priority": "P2", + "type": "task", + "summary": "Clinical KB: provision PROXY_AUTH dedicated secret on the PsychSift Railway service (follow-up to #789SD7)", + "detail": "Route validation for PROXY_AUTH exists and fails closed with 503, but docs/supabase-remediation-closeout-notes.md still records PROXY_AUTH as not on Railway by name. The owner must authorise and confirm the variable on the correct PsychSift Railway service in a quiet change window; no agent sets production secrets.", + "source": "PR #3570 review; docs/supabase-remediation-closeout-notes.md; src/lib/supabase/proxy-auth-crypto.ts", + "added": "2026-10-16" + }, + { + "id": "#AD9JC6", + "priority": "P2", + "type": "task", + "summary": "Teaching Assessments: wire durable authenticated assessment storage and supervisor bookings (follow-up to #4KQGXZ)", + "detail": "The schema, RLS policies and migration for registrar assessments exist, but the dual-sign-off route still uses in-process memory and returns 503 in production, and no supervisor-booking endpoints or availability storage exist. Wire durable authenticated storage into the route and add the booking endpoints before closing.", + "source": "PR #3570 review; src/app/api/teaching/assessments/dual-sign-off/route.ts; supabase/migrations/20261013160000_teaching_assessments_and_milestones.sql", + "added": "2026-10-16" + }, + { + "id": "#XNAHY2", + "priority": "P2", + "type": "task", + "summary": "CPD: connect the Training page to registrar training milestone storage (follow-up to #T983N9)", + "detail": "The registrar_training_milestones table and RLS policies exist, but no application code reads or writes it, the Training page still hard-codes not-recorded, and its milestone reader queries a different table. Implement owner-scoped storage and sync and replace the hard-coded state before closing.", + "source": "PR #3570 review; src/app/(search-app)/cme/training/page.tsx; src/lib/cme/training-repository.ts", + "added": "2026-10-16" } ], "pending": [] diff --git a/data/repo-awareness-snapshot.json b/data/repo-awareness-snapshot.json index 6c72684ee5..df65f3c80f 100644 --- a/data/repo-awareness-snapshot.json +++ b/data/repo-awareness-snapshot.json @@ -8787,6 +8787,14 @@ "outcome": "authored — verified real Chromium binary presence check on disk; reproduced original false-OK bug live against this session's /opt/pw-browsers container (chromium-1194 present, pinned revision 1234 missing)", "checks": "verify:pr-local (runtime, lock-parity, format, lint, typecheck, test 602 files/6518 passed/4 skipped, rag:fixtures, medication-interactions PASS; medication-lexicon-report pre-existing unrelated FAIL); focused vitest check-playwright-browser-revision.test.ts 10/10, playwright-browser-preflight.test.ts 12/12" }, + { + "date": "2026-10-16", + "ref": "claude/swarm-12-remaining-20261016", + "head": "24eeea365e782c651047eebf0ecbe9db87e4fd07", + "scope": "prlanded", + "outcome": "PR #3573 squash-merged as 24eeea365e; two-dot diff and stable patch-id ba25a7b05c match branch tip 03a9d35d79 byte-for-byte with zero orphaned commits", + "checks": "gh pr view 3573 MERGED; 1-parent squash; git diff --stat 24eeea365e 03a9d35d79 empty; git patch-id --stable match" + }, { "date": "2026-07-11", "ref": "PR #481 / claude/perf-r2-auth-roundtrip", @@ -13363,6 +13371,14 @@ "outcome": "before: Production UI (3) failed on service-detail scroll endpoint (remaining 67px) at 38b3bd0c; GitHub DIRTY behind-but-clean vs #1791. after: merged origin/main + re-scroll toPass fix in ui-tools service-detail test; threads untouched; do not merge", "checks": "CI Production UI (3) logs; git merge-tree clean; prettier ui-tools; product fix in same tip commit as this row" }, + { + "date": "2026-10-16", + "ref": "claude/swarm-16-issues-20261016", + "head": "5cbe4ec63a32f841c9445380232875c9106cb170", + "scope": "prlanded", + "outcome": "PR #3567 squash-merged as 5cbe4ec63a; all 68 source/test/doc files match branch tip 10d53b7624 byte-for-byte with zero orphaned commits", + "checks": "gh pr view 3567 MERGED; 1-parent squash; per-file diff empty across all non-snapshot PR files" + }, { "date": "2026-07-30", "ref": "codex/playwright-container-alignment", @@ -16335,7 +16351,7 @@ "date": "2026-10-17", "ref": "claude/add-prlanded-skill", "head": "7e6fd2d557d53e22dfa6ea37b8921007fe4b0dfa", - "scope": "prlanded", + "scope": "Canonical prlanded skill and landed ledger records", "outcome": "PASS (0 blocking findings; added .agents/skills/prlanded canonical skill, registered cross-surface twin in list-database-skills.mjs, updated skill inventory tests, and recorded prlanded proofs for PRs #3581/#3587 and #3596)", "checks": "npm run check:skills, vitest run tests/database-skills.test.ts tests/repository-skill-inventory.test.ts (15/15), npm run docs:maintain:check, check-format-changed" }, @@ -27083,6 +27099,14 @@ "outcome": "Author handoff: offline test-only diff adding a pinned Supabase round-trip budget for POST /api/search, no production/RAG code changed", "checks": "verify:pr-local full run (lint/typecheck clean; test 602 files, 6511 passed, 4 skipped; check:rag:fixtures + check:medication-interactions passed; check:medication-lexicon-report pre-existing unrelated staleness)" }, + { + "date": "2026-10-16", + "ref": "claude/reconcile-inbox-20261016", + "head": "fa526775c6ca0751f9609e4fc5133190efa19c16", + "scope": "prlanded", + "outcome": "PR #3570 squash-merged as fa526775c6; stable patch-id 87375f76eaf matches branch tip d8eefbb91e with zero orphaned commits", + "checks": "gh pr view 3570 MERGED; 1-parent squash; git patch-id --stable match" + }, { "date": "2026-08-05", "ref": "cursor/soft-mark-ungrounded-copy-ec26", diff --git a/docs/branch-review-index.md b/docs/branch-review-index.md index d5249e8369..7f7215782d 100644 --- a/docs/branch-review-index.md +++ b/docs/branch-review-index.md @@ -15,15 +15,15 @@ Retention and rotation: [`branch-review-archival-policy.md`](branch-review-archi ## Summary -- Records: 708 -- Distinct ref cells: 454 -- Distinct reviewed heads: 690 +- Records: 711 +- Distinct ref cells: 457 +- Distinct reviewed heads: 693 - Date range: `2026-08-12` to `2026-10-17` Records per date, newest first: - `2026-10-17` — 5 records -- `2026-10-16` — 4 records +- `2026-10-16` — 7 records - `2026-10-15` — 3 records - `2026-10-14` — 1 record - `2026-10-13` — 2 records @@ -84,9 +84,12 @@ Scope and outcome are truncated; follow the record link for the full six-cell ro | 2026-10-17 | claude/rag-ingestion-hardening | RAG retrieval/summary/cache generation isolation and ingestion worker/edge hardening | resolved | [5349150e](branch-review-records/5349150e82f255e42866975fa7aa5e9fe76601433ebc427c75226677c5bef854.record.md) | | 2026-10-17 | claude/rag-ingestion-hardening | RAG and Ingestion review follow-ups | Resolved PR review findings, repaired bot-applied regressions, and res… | [94a7d790](branch-review-records/94a7d7908ea7ff58edaecb6ebd9fd41f72d422ad6d345190046cfd5ed2d4372d.record.md) | | 2026-10-17 | claude/add-prlanded-skill | Canonical prlanded skill and landed ledger records | PASS (0 blocking findings; added .agents/skills/prlanded canonical ski… | [e60fd2b5](branch-review-records/e60fd2b5f608cf1e9d5bbabab48952b87feff63f27ad911b96a1e9fc22250fa7.record.md) | +| 2026-10-16 | claude/swarm-12-remaining-20261016 | prlanded | PR #3573 squash-merged as 24eeea365e; two-dot diff and stable patch-id… | [05e48734](branch-review-records/05e48734fb477ce17ef2f6b85df92af8aaf4e7c8281586c9e87ea8f873af629a.record.md) | | 2026-10-16 | fix/adversarial-remediation-20261016 | Adversarial assessment + parallel fix swarm + post-fix adversarial review across calculato… | All P0/P1/P2 findings fixed and verified; zero RAG files touched | [2a6b6200](branch-review-records/2a6b620065f5371039438fdbff73be97da6baf6c40dace3596e26c7bad0047dd.record.md) | | 2026-10-16 | codex/cloud-policy-clarity | Codex Cloud reasoning-effort and raw-env policy overhaul | PASS (0 blocking findings; removed all xhigh prompt-marker references… | [3dd0e7e3](branch-review-records/3dd0e7e32634c00735102bf22ba9883745ad72dc5db730b1dce2c33f03e699f0.record.md) | +| 2026-10-16 | claude/swarm-16-issues-20261016 | prlanded | PR #3567 squash-merged as 5cbe4ec63a; all 68 source/test/doc files mat… | [5c2377ba](branch-review-records/5c2377bab5fb02f7ed3bd95bba8059a37e04c6fd22d90c1d718f6cb3e7771bda.record.md) | | 2026-10-16 | codex/cloud-policy-clarity | Codex Cloud environment script and shell-profile hardening | PASS (0 blocking findings; hardened .bashrc prepend, command-shim fall… | [7f059fca](branch-review-records/7f059fca46aac02223aa9f81e3d88a1a08f2b8a4844646d3a8eaa2cabd493c33.record.md) | +| 2026-10-16 | claude/reconcile-inbox-20261016 | prlanded | PR #3570 squash-merged as fa526775c6; stable patch-id 87375f76eaf matc… | [a7be2760](branch-review-records/a7be2760026da4bc040fa90bf847382bdcded2a8a7510ceaf7be4ac49c042211.record.md) | | 2026-10-16 | feat/backlog-remediation-20261016 | prlanded | PR #3571 squash-merged cleanly into main (e526f8a4d5ad00ad05c5b780262b… | [ad2c45bc](branch-review-records/ad2c45bc2f3c606a7847421acc887ddf4861ab0563a5b96b4c6315b066837d90.record.md) | | 2026-10-15 | codex/ingestion-rag-pilot-handover-20261014 | Uncommitted admin pilot shared announcement correction; file SHA256 0f76deaa4d8d9ad46139d0… | Independent frontend source review ACCEPT; visible message and polite… | [263f1f06](branch-review-records/263f1f0680e9d5cda1bed9bb2a62853d3a34b78b5ad60054971520fdc884cf1c.record.md) | | 2026-10-15 | codex/ingestion-rag-pilot-handover-20261014 | Uncommitted native-PDF layout v5 producer 352d178978ef9086df1df708aa71266538076a2f5050a526… | Independent technical P1/P2 closure and qualified representative-sourc… | [6d2fd2e8](branch-review-records/6d2fd2e81761e17d32bb56bd41261efe8f9239ef266cf85a512c1021f889dd4b.record.md) | diff --git a/docs/branch-review-records/05e48734fb477ce17ef2f6b85df92af8aaf4e7c8281586c9e87ea8f873af629a.record.md b/docs/branch-review-records/05e48734fb477ce17ef2f6b85df92af8aaf4e7c8281586c9e87ea8f873af629a.record.md new file mode 100644 index 0000000000..c05d0002bf --- /dev/null +++ b/docs/branch-review-records/05e48734fb477ce17ef2f6b85df92af8aaf4e7c8281586c9e87ea8f873af629a.record.md @@ -0,0 +1 @@ +| 2026-10-16 | claude/swarm-12-remaining-20261016 | 24eeea365e782c651047eebf0ecbe9db87e4fd07 | prlanded | PR #3573 squash-merged as 24eeea365e; two-dot diff and stable patch-id ba25a7b05c match branch tip 03a9d35d79 byte-for-byte with zero orphaned commits | gh pr view 3573 MERGED; 1-parent squash; git diff --stat 24eeea365e 03a9d35d79 empty; git patch-id --stable match | diff --git a/docs/branch-review-records/5c2377bab5fb02f7ed3bd95bba8059a37e04c6fd22d90c1d718f6cb3e7771bda.record.md b/docs/branch-review-records/5c2377bab5fb02f7ed3bd95bba8059a37e04c6fd22d90c1d718f6cb3e7771bda.record.md new file mode 100644 index 0000000000..afb6543bc2 --- /dev/null +++ b/docs/branch-review-records/5c2377bab5fb02f7ed3bd95bba8059a37e04c6fd22d90c1d718f6cb3e7771bda.record.md @@ -0,0 +1 @@ +| 2026-10-16 | claude/swarm-16-issues-20261016 | 5cbe4ec63a32f841c9445380232875c9106cb170 | prlanded | PR #3567 squash-merged as 5cbe4ec63a; all 68 source/test/doc files match branch tip 10d53b7624 byte-for-byte with zero orphaned commits | gh pr view 3567 MERGED; 1-parent squash; per-file diff empty across all non-snapshot PR files | diff --git a/docs/branch-review-records/a7be2760026da4bc040fa90bf847382bdcded2a8a7510ceaf7be4ac49c042211.record.md b/docs/branch-review-records/a7be2760026da4bc040fa90bf847382bdcded2a8a7510ceaf7be4ac49c042211.record.md new file mode 100644 index 0000000000..de191574fd --- /dev/null +++ b/docs/branch-review-records/a7be2760026da4bc040fa90bf847382bdcded2a8a7510ceaf7be4ac49c042211.record.md @@ -0,0 +1 @@ +| 2026-10-16 | claude/reconcile-inbox-20261016 | fa526775c6ca0751f9609e4fc5133190efa19c16 | prlanded | PR #3570 squash-merged as fa526775c6; stable patch-id 87375f76eaf matches branch tip d8eefbb91e with zero orphaned commits | gh pr view 3570 MERGED; 1-parent squash; git patch-id --stable match | diff --git a/docs/outstanding-issues-inbox/1ff7b52e-5911-435e-b807-7a9ff5602747.json b/docs/outstanding-issues-inbox/applied/1ff7b52e-5911-435e-b807-7a9ff5602747.json similarity index 100% rename from docs/outstanding-issues-inbox/1ff7b52e-5911-435e-b807-7a9ff5602747.json rename to docs/outstanding-issues-inbox/applied/1ff7b52e-5911-435e-b807-7a9ff5602747.json diff --git a/docs/outstanding-issues-inbox/389a777d-b0c5-495b-b65b-012424818c17.json b/docs/outstanding-issues-inbox/applied/389a777d-b0c5-495b-b65b-012424818c17.json similarity index 100% rename from docs/outstanding-issues-inbox/389a777d-b0c5-495b-b65b-012424818c17.json rename to docs/outstanding-issues-inbox/applied/389a777d-b0c5-495b-b65b-012424818c17.json diff --git a/docs/outstanding-issues-inbox/43a957c6-eee9-45af-b9ce-fc850ab0308b.json b/docs/outstanding-issues-inbox/applied/43a957c6-eee9-45af-b9ce-fc850ab0308b.json similarity index 100% rename from docs/outstanding-issues-inbox/43a957c6-eee9-45af-b9ce-fc850ab0308b.json rename to docs/outstanding-issues-inbox/applied/43a957c6-eee9-45af-b9ce-fc850ab0308b.json diff --git a/docs/outstanding-issues-inbox/52b311f2-1e3d-4a6e-82a0-1e503dfcc99c.json b/docs/outstanding-issues-inbox/applied/52b311f2-1e3d-4a6e-82a0-1e503dfcc99c.json similarity index 100% rename from docs/outstanding-issues-inbox/52b311f2-1e3d-4a6e-82a0-1e503dfcc99c.json rename to docs/outstanding-issues-inbox/applied/52b311f2-1e3d-4a6e-82a0-1e503dfcc99c.json diff --git a/docs/outstanding-issues-inbox/5d7ae72b-9125-4b0c-9a0e-8d85023a1524.json b/docs/outstanding-issues-inbox/applied/5d7ae72b-9125-4b0c-9a0e-8d85023a1524.json similarity index 100% rename from docs/outstanding-issues-inbox/5d7ae72b-9125-4b0c-9a0e-8d85023a1524.json rename to docs/outstanding-issues-inbox/applied/5d7ae72b-9125-4b0c-9a0e-8d85023a1524.json diff --git a/docs/outstanding-issues-inbox/5de9fe1e-9893-470c-b040-6537874b7b86.json b/docs/outstanding-issues-inbox/applied/5de9fe1e-9893-470c-b040-6537874b7b86.json similarity index 100% rename from docs/outstanding-issues-inbox/5de9fe1e-9893-470c-b040-6537874b7b86.json rename to docs/outstanding-issues-inbox/applied/5de9fe1e-9893-470c-b040-6537874b7b86.json diff --git a/docs/outstanding-issues-inbox/6aec8cab-618e-4533-bf70-1d871fe03323.json b/docs/outstanding-issues-inbox/applied/6aec8cab-618e-4533-bf70-1d871fe03323.json similarity index 100% rename from docs/outstanding-issues-inbox/6aec8cab-618e-4533-bf70-1d871fe03323.json rename to docs/outstanding-issues-inbox/applied/6aec8cab-618e-4533-bf70-1d871fe03323.json diff --git a/docs/outstanding-issues-inbox/737051c7-396c-40c0-9b0b-8e1d7c1a38fb.json b/docs/outstanding-issues-inbox/applied/737051c7-396c-40c0-9b0b-8e1d7c1a38fb.json similarity index 100% rename from docs/outstanding-issues-inbox/737051c7-396c-40c0-9b0b-8e1d7c1a38fb.json rename to docs/outstanding-issues-inbox/applied/737051c7-396c-40c0-9b0b-8e1d7c1a38fb.json diff --git a/docs/outstanding-issues-inbox/8c549632-5423-4986-9ef0-4734ad5f8a90.json b/docs/outstanding-issues-inbox/applied/8c549632-5423-4986-9ef0-4734ad5f8a90.json similarity index 100% rename from docs/outstanding-issues-inbox/8c549632-5423-4986-9ef0-4734ad5f8a90.json rename to docs/outstanding-issues-inbox/applied/8c549632-5423-4986-9ef0-4734ad5f8a90.json diff --git a/docs/outstanding-issues-inbox/8d130a15-f473-49ef-8fcc-50daca539ad6.json b/docs/outstanding-issues-inbox/applied/8d130a15-f473-49ef-8fcc-50daca539ad6.json similarity index 100% rename from docs/outstanding-issues-inbox/8d130a15-f473-49ef-8fcc-50daca539ad6.json rename to docs/outstanding-issues-inbox/applied/8d130a15-f473-49ef-8fcc-50daca539ad6.json diff --git a/docs/outstanding-issues-inbox/8e9cd355-c5a2-4aa8-ae30-9e477e0977cb.json b/docs/outstanding-issues-inbox/applied/8e9cd355-c5a2-4aa8-ae30-9e477e0977cb.json similarity index 100% rename from docs/outstanding-issues-inbox/8e9cd355-c5a2-4aa8-ae30-9e477e0977cb.json rename to docs/outstanding-issues-inbox/applied/8e9cd355-c5a2-4aa8-ae30-9e477e0977cb.json diff --git a/docs/outstanding-issues-inbox/99b5370e-305b-47f4-b0b5-5c81c37f39d3.json b/docs/outstanding-issues-inbox/applied/99b5370e-305b-47f4-b0b5-5c81c37f39d3.json similarity index 100% rename from docs/outstanding-issues-inbox/99b5370e-305b-47f4-b0b5-5c81c37f39d3.json rename to docs/outstanding-issues-inbox/applied/99b5370e-305b-47f4-b0b5-5c81c37f39d3.json diff --git a/docs/outstanding-issues-inbox/aebceba4-b600-4d60-94d1-901c7112bc21.json b/docs/outstanding-issues-inbox/applied/aebceba4-b600-4d60-94d1-901c7112bc21.json similarity index 100% rename from docs/outstanding-issues-inbox/aebceba4-b600-4d60-94d1-901c7112bc21.json rename to docs/outstanding-issues-inbox/applied/aebceba4-b600-4d60-94d1-901c7112bc21.json diff --git a/docs/outstanding-issues-inbox/b8d8175c-652e-47e6-88d0-e45b1fb11971.json b/docs/outstanding-issues-inbox/applied/b8d8175c-652e-47e6-88d0-e45b1fb11971.json similarity index 100% rename from docs/outstanding-issues-inbox/b8d8175c-652e-47e6-88d0-e45b1fb11971.json rename to docs/outstanding-issues-inbox/applied/b8d8175c-652e-47e6-88d0-e45b1fb11971.json diff --git a/docs/outstanding-issues-inbox/ba9e356d-1197-4ae8-af67-19e313a89275.json b/docs/outstanding-issues-inbox/applied/ba9e356d-1197-4ae8-af67-19e313a89275.json similarity index 100% rename from docs/outstanding-issues-inbox/ba9e356d-1197-4ae8-af67-19e313a89275.json rename to docs/outstanding-issues-inbox/applied/ba9e356d-1197-4ae8-af67-19e313a89275.json diff --git a/docs/outstanding-issues-inbox/cbd0a3f9-af52-4247-b61f-6541acf527f8.json b/docs/outstanding-issues-inbox/applied/cbd0a3f9-af52-4247-b61f-6541acf527f8.json similarity index 100% rename from docs/outstanding-issues-inbox/cbd0a3f9-af52-4247-b61f-6541acf527f8.json rename to docs/outstanding-issues-inbox/applied/cbd0a3f9-af52-4247-b61f-6541acf527f8.json diff --git a/docs/outstanding-issues-inbox/d72ccad1-e17d-4928-a9c4-70a53cb9e67c.json b/docs/outstanding-issues-inbox/applied/d72ccad1-e17d-4928-a9c4-70a53cb9e67c.json similarity index 100% rename from docs/outstanding-issues-inbox/d72ccad1-e17d-4928-a9c4-70a53cb9e67c.json rename to docs/outstanding-issues-inbox/applied/d72ccad1-e17d-4928-a9c4-70a53cb9e67c.json diff --git a/docs/outstanding-issues-inbox/da9d4a0c-94e8-40e1-ba5d-73a3b0d8dcb6.json b/docs/outstanding-issues-inbox/applied/da9d4a0c-94e8-40e1-ba5d-73a3b0d8dcb6.json similarity index 100% rename from docs/outstanding-issues-inbox/da9d4a0c-94e8-40e1-ba5d-73a3b0d8dcb6.json rename to docs/outstanding-issues-inbox/applied/da9d4a0c-94e8-40e1-ba5d-73a3b0d8dcb6.json diff --git a/docs/outstanding-issues-inbox/ef7e6803-0600-4348-9b43-344fd4ff4b1a.json b/docs/outstanding-issues-inbox/applied/ef7e6803-0600-4348-9b43-344fd4ff4b1a.json similarity index 100% rename from docs/outstanding-issues-inbox/ef7e6803-0600-4348-9b43-344fd4ff4b1a.json rename to docs/outstanding-issues-inbox/applied/ef7e6803-0600-4348-9b43-344fd4ff4b1a.json diff --git a/docs/outstanding-issues-inbox/f3352f44-2b82-4c14-b91a-c4485c7bd738.json b/docs/outstanding-issues-inbox/applied/f3352f44-2b82-4c14-b91a-c4485c7bd738.json similarity index 100% rename from docs/outstanding-issues-inbox/f3352f44-2b82-4c14-b91a-c4485c7bd738.json rename to docs/outstanding-issues-inbox/applied/f3352f44-2b82-4c14-b91a-c4485c7bd738.json diff --git a/docs/outstanding-issues-inbox/f6e8e317-6b61-4b52-9910-fa15b5dd9aa4.json b/docs/outstanding-issues-inbox/applied/f6e8e317-6b61-4b52-9910-fa15b5dd9aa4.json similarity index 100% rename from docs/outstanding-issues-inbox/f6e8e317-6b61-4b52-9910-fa15b5dd9aa4.json rename to docs/outstanding-issues-inbox/applied/f6e8e317-6b61-4b52-9910-fa15b5dd9aa4.json diff --git a/docs/outstanding-issues.md b/docs/outstanding-issues.md index 65af23f70b..0ecddd0d34 100644 --- a/docs/outstanding-issues.md +++ b/docs/outstanding-issues.md @@ -164,30 +164,29 @@ removed after current-main verification; it is not missing recommended work. | #WVS32F | P3 | rec | Teaching: organisers have no view of who did not attend (attendance-gap views) | Owner product decision needed (raised in the Teaching Mode polish, PR #3200). Organise shows the register and an attendance download, but nothing lists members with no check-in across sessions. Privacy-sensitive: decide who may see it (organiser only?), over what period, and the honest wording ('no check-in recorded', never 'missed'). Next action: owner decides scope and audience; then design on Organise using existing attendance reads, with personal-practice review before build. | Session 2026-10-02, PR #3200 | 2026-10-02 | | #ZTDZ4Z | P3 | rec | Teaching: no in-app QR scanner; check-in relies on the phone's own camera app | Owner product decision needed (raised in the Teaching Mode polish, PR #3200). Today attendees scan the projector QR with the phone camera or type the 6-digit code; the Today button was renamed 'Check in with code' so it does not promise a scanner. Next action: owner decides whether an in-app scanner (camera permission, BarcodeDetector or a library, fallback to typed code) is worth building; if yes, design it inside the Today hero action, keep typed-code fallback, add no new route without wiring. | Session 2026-10-02, PR #3200 / #3204 | 2026-10-02 | | #YETFBJ | P3 | task | Two protected retrieval scripts still use the Windows-fragile entrypoint check; convert them with owner approval | scripts/eval-retrieval.ts and scripts/build-ranking-snapshot.ts still decide they are the entrypoint with import.meta.url === pathToFileURL(process.argv[1]).href, which can exit 0 having done nothing on Windows. Both are RAG-ranking protected surfaces (pr-policy ragRankingPatterns), so the change was left out of the entrypoint-guard PR. They are the only two entries in ALLOWED_RAW in tests/script-entrypoint-guard.test.ts (plus sync-open-pr-branches.mjs, which has a file-name fallback). Next action: with owner approval, switch both to isDirectEntrypoint from scripts/lib/is-entrypoint.mjs, write a RAG impact line (no retrieval behaviour change), and remove them from ALLOWED_RAW. | Review of five Antigravity reports against main, 2026-10-12 | 2026-10-12 | -| #08216B | P3 | task | Remove PR 3538 leftovers once the 30-day dead-code window passes (after 13 Nov 2026) | The /api/proxy route only replies authenticated and nothing calls it. scripts/recalculate-answer-support-labels.ts and its test are run by nothing. The 11 developer tool pages under src/app/mockups/development are now unreachable duplicates of /admin/developer-hub. The safe-number editor, attendance roster, QR check-in helper and clinical note editor are unwired; wire or remove each, and the note editor needs a privacy review before use. The clinical-math calculators need ideal body weight guidance, a corrected lithium dialysis label, a consistent 1.2 mmol/L boundary and tablet-strength rounding before any use. | PR 3538 review, 15 Oct 2026 | 2026-10-15 | | #F3B2XC | P2 | task | Check the live Tall Man drug lettering list against the ACSQHC National Tall Man list | src/lib/medications/tall-man.ts is live on medication search and record pages but was never checked against the official list. Doubtful: citaloPRAM/escitaloPRAM and fluPENtixol/zucloPENthixol capitalise the shared stem so they do not separate the pair, CLONazepam differs from ISMP clonazePAM, and VALproate, midazolAM, temazePAM, oxazePAM need checking. Matching is exact-name only. Needs owner verification. | PR 3538 review, 15 Oct 2026 | 2026-10-15 | | #H38M3Y | P3 | issue | The instruction-budget test timed out once under the full unit suite but passed 36 of 36 when run alone; unconfirmed flake (audit M5-1) | Not reproduced. If it recurs, find the slow step and make it robust; never skip or disable the test. Record the run id and timing on the next occurrence. | Audit 2026-10-08, rechecked against main 2026-10-13 | 2026-10-13 | -| #NHR0MM | P3 | issue | Roster week strip shows only the first shift kind on a day; Teaching next-session ignores all-day entries; WA public holidays end at 2028 | roster-week-strip.tsx uses kinds[0] so a morning plus night shift looks like a morning alone (de-duplicate kinds and count distinct kinds for any overflow marker, test with two shifts of the same kind). teaching-view-model.ts:138 excludes all-day sessions from nextSession (restore a date guard for all-day entries: today or later). src/lib/on-call/wa-public-holidays.ts has data for 2026-2028 only, including the fairness count call site. | PsychSift audit review (16 audit reports) checked against main 4382217, 2026-10-13 | 2026-10-13 | -| #ZWJCK4 | P1 | issue | PDF extractor can turn prose beneath a table into a table row and rebuild the table markdown from it | worker/python/extract_pdf_assets.py recover_table_rows_from_edge_strip (~:557, caller ~:1367-1390) admits blocks by position alone (four bbox tests) and treats each line as a cell, then rebuilds the whole accessible table markdown, which reaches the vision model, document_table_facts (threshold_value/action) and page.text/search. Also appends recovered rows unsorted, drops single-baseline rows silently, has no test, and worker/python/** is outside the coverage inventory. Next action: accept a recovered block only when its line x-positions align with table.rows cell bboxes, sort by y0, drop the row on alignment failure, cover the markdown rebuild path too, and add a synthetic test (3-column table followed by a 3-line paragraph asserting no new row and unchanged accessible_table_markdown). | PsychSift audit review (16 audit reports) checked against main 4382217, 2026-10-13 | 2026-10-13 | +| #ZWJCK4 | P2 | issue | PDF extractor can turn prose beneath a table into a table row and rebuild the table markdown from it | Rechecked 17 Oct 2026 against main 99507ebca. The original fault is fixed: PR #3571 made worker/python/extract_pdf_assets.py _recover_table_rows_split admit a recovered line only when each piece fits one column, keep top and bottom strips in order, and tests/pdf-table-extraction.test.ts pins full-width prose being rejected. A leftover was fixed on 17 Oct: a short note under a recovered row (for example 'See note') was glued into that row's first cell; a lone line now joins the row above only when that cell actually wrapped (_continues_wrapped_cell), with tests both ways. Still open, low risk: text laid out in the table's own columns directly under a table (an abbreviation key, or a two-column page) becomes an extra row, and only when a drawing below the table extends the crop over it. Geometry alone cannot tell such a key from a real row. Changes reach search only after a re-index. | PsychSift audit review (16 audit reports) checked against main 4382217, 2026-10-13 | 2026-10-13 | | #SAKCD9 | P2 | task | Ranking-snapshot date gate will fail around 3 Nov 2026 if the automated snapshot-refresh PR is not merged (audit H5-1) | The snapshot was refreshed to 4 Oct, so the automatic checks pass today. .github/workflows/ranking-snapshot-refresh.yml runs after each weekly Eval Canary on main and opens a refresh PR once the snapshot is 14 days old, reusing the canary artifact with no provider calls. Next: watch for that PR (expected from about 18 Oct) and get it reviewed and merged before the 30-day expiry; it touches a RAG ranking fixture, so follow docs/rag-behaviour/ and the canary rules. Only if no refresh PR appears (canary failing or not running) does a new paid eval, with the owner's explicit approval, become necessary. | Audit 2026-10-08, rechecked against main 2026-10-13 | 2026-10-13 | -| #1WAA0Z | P3 | task | Possible dead code: older calculator mockups (audit M5-2) and On Call Education, Compliance and Logistics screens said to be unreachable (audit L4D-05) | Recheck first: the On Call sections are still used by calendar events and tests, so L4D-05 may be wrong. Delete nothing without npm run check:dead-code-candidate (see docs/agents/dead-code-deletion.md). | Audit 2026-10-08, rechecked against main 2026-10-13 | 2026-10-13 | | #JVQ1HA | P2 | issue | Precompute GIN search_tsv on site_content_release_records for hybrid retrieval | In Supabase RPC match_document_chunks_hybrid_v3 (supabase/migrations/20260830122000_add_corpus_scoped_retrieval_v3.sql), full-text matching against site_content_release_records dynamically runs to_tsvector on each row during queries. Storing a generated or trigger-maintained search_tsv tsvector column with a GIN index on public.site_content_release_records accelerates hybrid retrieval without dynamic DB re-vectorization. | session 2026-10-14 performance audit follow-up | 2026-10-14 | | #3AVEFG | P3 | task | Small audit leftovers: merge needs zero human approvals and the 'Database / production' GitHub environment is not a real approval gate (L6-F2, L6-F3); reindex reaper has no protected environment (L6-F4); admin has two home pages (L4G-L1); thin browser tests for Compliance, records, Psychiatry and the MHA clock (L4G-L2); clinical-kb name in 47 files (F-L2-04); install prompt may cover password-reset and privacy pages on first paint (L4A-F2) | Settings changes in GitHub are the owner's. Browser-check L4A-F2 before changing anything. HYSWAF already tracks Railway deploying before checks finish (L6-F1). | Audit 2026-10-08, rechecked against main 2026-10-13 | 2026-10-13 | | #BGDVPD | P3 | issue | Cache compiled boundary regexes in document chunking pipeline | In src/lib/chunking.ts, buildChunks repeatedly re-compiles regex boundary patterns during document chunking, consuming 27.67 ms average CPU time on 12-page documents. Pre-compiling sentence/section regex patterns or memoizing chunk boundaries improves background ingestion throughput. | session 2026-10-14 performance audit follow-up | 2026-10-14 | | #ASA514 | P2 | task | Arrange Aboriginal governance review for the five held cultural formulation records before any is published | Follow-up to #R8HED2 (closed by PR #3412's hold). first-nations-sewb, cultural-explanatory-model, migration-refugee, racism-discrimination and religion-spirituality have release held in src/data/formulation-concepts.json. All carry Indigenous terms, so the clinical sign-off tool refuses them (scripts/lib/indigenous-content.mjs); each needs review under Aboriginal governance. The records also still read clinical_review_required with no reviewer, so governance review alone does not clear them: keep release held until the owner decides how their review status is completed and explicitly approves republishing (then restore each search-index entry). Changing release or review status is a clinical content change. | Review of PR #3521, 2026-10-13 | 2026-10-13 | -| #WFYDV6 | P1 | issue | Unwired WA MHA Form 6A/6B print component carries unverified statutory text | src/components/forms/wa-mha-form-print.tsx (PR #3538) says Form 6B needs Chief Psychiatrist consent, while src/lib/form-register.ts calls the 6B attachment a report to the Chief Psychiatrist. Section lists, the 7-day pre-expiry examination and copy recipients are unverified, and it prints WA Government branding. Fabricated default patient, clinician and consent values were removed on 15 Oct. Nothing renders it. Delete it once the 30-day dead-code window passes (after 13 Nov 2026) unless legal and clinical sign-off is obtained first. | PR 3538 review, 15 Oct 2026 | 2026-10-15 | | #YF0XSQ | P2 | issue | A review bot (Gitar) armed auto-merge on a clinical-risk PR and it merged on bot approval alone, with no human review | Decide whether bot-enabled auto-merge should be allowed on PRs that touch the clinical-risk list (e.g. patient-safety-plan.tsx), and if not, turn off Gitar auto-merge or require a human approval via branch protection. Why: PR 3507 changed a patient-safety component and was squash-merged by gitar-bot at 2026-10-13 04:24 after only bot approvals; AGENTS.md treats auto-merge state as user-owned. Context: the owner had not armed it; the session could not disable it without breaking that rule. Owner: user. Confidence: high. | session 2026-10-13 /ledger sweep; PR BigSimmo/PsychSift#3507 | 2026-10-13 | | #VDAXJX | P1 | issue | teaching_command('display.revoke') authorisation guard passes when display link created_by is NULL | supabase/migrations/20260926225609_teaching_mode.sql:1473 uses 'if not (v_link.created_by = p_actor_id or v_role = organiser) then raise'. created_by is nullable (on delete set null), so NULL or false is NULL and the raise never fires: a non-organiser can revoke a link whose creator was deleted. The same pattern was repaired in two other functions by a null-guards migration. Next action (needs an approved migration window, a Supabase migration reaches the live clinical database on merge): coalesce(v_link.created_by = p_actor_id, false) is not true and v_role <> 'organiser'. Fix before the teaching surface opens. | PsychSift audit review (16 audit reports) checked against main 4382217, 2026-10-13 | 2026-10-13 | -| #CFHRJY | P2 | issue | Virtualize long document and differential diagnosis result lists | In src/components/clinical-dashboard/document-search-results.tsx (which has a 30-result initial progressive reveal) and src/components/differentials/differential-stream-workspace.tsx, evaluate virtualization or DOM recycling for large query results exceeding initial reveal limits to prevent memory bloat and scroll stutter while preserving keyboard/screen-reader accessibility. | session 2026-10-14 performance audit follow-up | 2026-10-14 | | #A33Z1X | P2 | issue | Services directory shows clinical-owner sign-off as pending while junior doctors use it for catchments and urgent contacts (audit L4B-H1) | Owner decision: sign the Services directory off, or hide it until signed. No code change until then. | Audit 2026-10-08, rechecked against main 2026-10-13 | 2026-10-13 | -| #3B4S3Z | P2 | issue | Safe number editor: two managers saving at almost the same moment can overwrite each other's cover needs | The editor (Manage, Team settings, PR #3431) re-reads the team's needs, then sends needs.set, which replaces the whole list. The read and the write are separate requests, so a dated, grade or site need, or a safe number, that another manager saves in that gap is lost. Undo has the same gap. Closing it needs a database change (owner's explicit yes required): a version check on the team's needs so needs.set only succeeds against the list it read, else re-read and ask the manager to retry. Then add a test that interleaves a second save between the read and the write. Raised by Qodo on PR #3431, left open by choice as rare. Josh asked for it to be recorded 2026-10-10. | PR #3431 review (Qodo), modes and dead wiring review thread | 2026-10-10 | | #K66YES | P3 | rec | On Call has overlapping homes for numbers (Call vs Contacts) and referrals (Refer vs Referrals), and its menu 'Now' goes to /on-call while 'Who to call now' lives at /on-call/now (audit L4D-01 to L4D-03) | Owner decision on one home per job and the naming, then a single navigation change. Also covers /roster/calendar showing On Call dates under a Roster address (L4E-F3). | Audit 2026-10-08, rechecked against main 2026-10-13 | 2026-10-13 | | #NBJQD8 | P1 | issue | Medication interaction lexicon: the 28 Sept sign-off is out of date because the drug groupings changed since; alerts still fire on an unapproved version (audit L4C-H1) | Owner action: re-approve the current lexicon through the review sheet. The check only warns, so nothing blocks the stale version meanwhile. | Audit 2026-10-08, rechecked against main 2026-10-13 | 2026-10-13 | -| #WMGPSG | P2 | issue | Doc/instruction drift left open after the doc-fix pass: encoding damage, cloud-profile worktree rule, RAG duty missing from skills, stale decision | (1) docs/privacy-impact-assessment.md and docs/openai-cross-border-basis.md carry double-encoded text and a BOM (a verified-lossless guarded per-run repair exists on an unpushed branch; never a naive whole-file re-encode); docs/outstanding-issues.md:15 has a corrupted arrow (canonical ledger, edit only via reconciliation). (2) .claude/cloud-profile/skills/prompt/references/coding-workflow.md:21 has the pre-hardening worktree rule and is copied into every container session (owner decision on owned versus vendored). (3) No .agents skill mentions the RAG ranking-protection duty, and the retrieval-quality and reindex runbooks have no canary-pair or approval requirement. (4) docs/decisions/2026-09-26-remove-ward-flow-and-caring-contacts.md says Caring Contacts was removed but src/lib/caring-contacts/clock.ts is live with importers; needs a dated superseding decision, do not delete the file. (5) Admin renewals page test dropped its checked-wording assertion while admin-renewed-sheet still forbids the word; record the decision. (6) min-h-[48px] remains at account-setup-dialog.tsx:246 against a 'none remain' claim in docs/redesign/07-token-adoption-audit.md. | PsychSift audit review (16 audit reports) checked against main 4382217, 2026-10-13 | 2026-10-13 | | #HMBEQK | P3 | task | Medicines reference list is live but its code comment still says it awaits the owner's check, and Medication Prescribing and Risk and Safety still show 'review due' (audit L4C-M1, L4C-M2) | Owner check of src/lib/medicines-references.ts wording and the two tools, then update the comment and the review-due chips. The comment states a governance fact, so it is not edited without that check. | Audit 2026-10-08, rechecked against main 2026-10-13 | 2026-10-13 | | #AW8SRK | P2 | task | Teaching dual sign-off keeps assessments in server memory; decide durable storage or keep as a gated prototype | The trainee-supervisor sign-off repository (src/lib/teaching/assessments/dual-sign-off.ts) is an in-memory Map used only by src/app/api/teaching/assessments/dual-sign-off/route.ts, which already returns 503 when NODE_ENV is production, so nothing is lost today and no screen calls it. Owner decision needed: build a Supabase table with RLS and owner scoping before enabling it, or keep it a gated prototype. Do not remove the production refusal until a durable store exists. Next action: owner chooses; if building, plan the migration inside an approved window (merging a supabase/ change deploys to the live database). | Review of five Antigravity reports against main, 2026-10-12 | 2026-10-12 | -| #3ZHFH9 | P2 | issue | Test-deletion guard blind spots: each-tables count as one case, Python tests are invisible, mass skip is undetected | scripts/check-diff-integrity.mjs counts each it.each(table) once (100 tables with 8+ rows, largest 48), TEST_FILE_PATTERN matches only TS/JS .spec/.test files (worker/python/test_*.py and tests/roster-publication-concurrency.mjs are outside it), and skip/only are counted as declared cases. Next action: owner decision on counting each-rows, adding .py, and flagging mass .skip; do not add skip to NON_CASE_MEMBERS (that would be wrong). | PsychSift audit review (16 audit reports) checked against main 4382217, 2026-10-13 | 2026-10-13 | | #54XJ7D | P2 | task | Shift-swap approval checks the team rules only in the browser, not on the server (audit L4E-F2) | Needs a database migration and an owner decision between blocking the swap and asking the manager to acknowledge. A migration merged to main reaches the live database within seconds, so schedule the merge inside an approved window. | Audit 2026-10-08, rechecked against main 2026-10-13 | 2026-10-13 | +| #EG02B7 | P2 | task | Reindex reaper: enqueue storage cleanup at generation commit time (follow-up to #RP00FZ) | The reaper script builds storage cleanup jobs only on its gated apply path, so ordinary generation commits still schedule no cleanup for superseded storage objects. Needs a reviewed forward migration (never an edit to an existing one) before closing. Migration merges deploy to production and need the owner's explicit permission. | PR #3570 review; scripts/cleanup-abandoned-reindex-generations.ts; supabase/migrations/20260702000000_commit_generation_preserve_legacy_artifacts.sql | 2026-10-16 | +| #54N8ZN | P2 | task | Follow-up to PR 3546: CodeRabbit items held out of the merge | The 14 Oct admin source pilot proof (docs/design-system/evidence/admin-source-pilot.json) ran against an earlier pilot-client digest, and its harness is not in the repo. Native labels, keyboard order and the polite announcement are now pinned against the current client by tests/admin-pilot-client-accessibility.dom.test.tsx on every change (branch claude/ingestion-review-lbw6rf, 16 Oct). Still not done: a real screen-reader run (VoiceOver or NVDA) by a person, and the dark, forced-colours, 320px and print checks against the current digest. Low value while the page is administrator-only. | PR 3546 CodeRabbit review 5545295336, owner decision 2026-10-16 | 2026-10-16 | +| #GR72PF | P3 | task | CME: render the claim-pack button on a reachable CME surface (follow-up to #G20QE6) | CmeClaimPackButton and its unit tests exist in src/components/cme/cme-claim-pack.tsx, but nothing imports or renders it, so clinicians cannot reach the study-budget export. Wire it into a reachable CME page with a user-facing test before closing. | PR #3570 review; src/components/cme/cme-claim-pack.tsx; tests/cme-claim-pack.test.ts | 2026-10-16 | +| #7D8WZ2 | P2 | task | Hostile-document ingestion: run the upload-to-answer end-to-end matrix (follow-up to #F3SGCM) | Seven-class helper coverage exists in tests/hostile-document-ingestion-matrix.test.ts, but it uses an extraction mock and fabricated search results, so no uploaded hostile document is checked against real ingestion, retrieval and answer paths. Close only when each class runs end to end. | PR #3570 review; tests/hostile-document-ingestion-matrix.test.ts | 2026-10-16 | +| #9E87MG | P2 | task | Clinical KB: provision PROXY_AUTH dedicated secret on the PsychSift Railway service (follow-up to #789SD7) | Route validation for PROXY_AUTH exists and fails closed with 503, but docs/supabase-remediation-closeout-notes.md still records PROXY_AUTH as not on Railway by name. The owner must authorise and confirm the variable on the correct PsychSift Railway service in a quiet change window; no agent sets production secrets. | PR #3570 review; docs/supabase-remediation-closeout-notes.md; src/lib/supabase/proxy-auth-crypto.ts | 2026-10-16 | +| #AD9JC6 | P2 | task | Teaching Assessments: wire durable authenticated assessment storage and supervisor bookings (follow-up to #4KQGXZ) | The schema, RLS policies and migration for registrar assessments exist, but the dual-sign-off route still uses in-process memory and returns 503 in production, and no supervisor-booking endpoints or availability storage exist. Wire durable authenticated storage into the route and add the booking endpoints before closing. | PR #3570 review; src/app/api/teaching/assessments/dual-sign-off/route.ts; supabase/migrations/20261013160000_teaching_assessments_and_milestones.sql | 2026-10-16 | +| #XNAHY2 | P2 | task | CPD: connect the Training page to registrar training milestone storage (follow-up to #T983N9) | The registrar_training_milestones table and RLS policies exist, but no application code reads or writes it, the Training page still hard-codes not-recorded, and its milestone reader queries a different table. Implement owner-scoped storage and sync and replace the hard-coded state before closing. | PR #3570 review; src/app/(search-app)/cme/training/page.tsx; src/lib/cme/training-repository.ts | 2026-10-16 | ## Resolved / archive @@ -989,3 +988,12 @@ Move resolved rows here with the resolution date and a one-line outcome. Keep th | #28ECMG | rec | Agent/crawler readiness: canonical tags, JSON-LD and Markdown discovery are missing on the public surface (audit F26) | Resolved: Added canonical link and Schema.org MedicalWebPage JSON-LD structured metadata in src/app/(search-app)/layout.tsx. | 2026-10-08 | | #2S5NFB | task | Two live-monitor scripts cannot use the shared entrypoint helper because the monitor workflow sparse-checks-out only those two files | Added scripts/lib/is-entrypoint.mjs to live-domain-monitor.yml sparse-checkout, converted both live monitor scripts to isDirectEntrypoint, and emptied ALLOWED_RAW (tests/script-entrypoint-guard.test.ts). | 2026-10-16 | | #23Q709 | issue | scripts/stamp-service-worker.mjs runs in the production build but is missing from Railway's app watch patterns, so a change to it alone never redeploys the site | Resolved: Added /scripts/stamp-service-worker.mjs to watchPatterns in railway.app.json so service worker changes trigger automated builds. | 2026-10-08 | +| #NHR0MM | issue | Roster week strip shows only the first shift kind on a day; Teaching next-session ignores all-day entries; WA public holidays end at 2028 | Fixed RosterWeekStrip multi-kind shift rendering and aria-label deduplication, restored the Perth calendar-day guard for allDay sessions in teaching-view-model.ts nextSession, and routed post-2028 and historical WA public holiday checks through isWaPublicHolidayDate across fairness.ts, calendar-model.ts, week-board.tsx, and roster-today-team.tsx (tests/roster-teaching-holiday-fixes.dom.test.tsx). | 2026-10-16 | +| #3ZHFH9 | issue | Test-deletion guard blind spots: each-tables count as one case, Python tests are invisible, mass skip is undetected | Extended scripts/check-diff-integrity.mjs to cover Python test files (def test_* and @pytest.mark.parametrize), weight inline test.each/it.each/test.for array literals by element count, and fail on mass-skipping (.skip/.fixme) reductions in active test coverage (tests/diff-integrity.test.ts). | 2026-10-16 | +| #08216B | task | Remove PR 3538 leftovers once the 30-day dead-code window passes (after 13 Nov 2026) | Implemented Devine IBW and Adjusted Body Weight guidance in calculateCockcroftGault (renal.ts), aligned the >= 1.2 mmol/L lithium toxic boundary, clarified >= 2.0 mmol/L severe toxicity vs haemodialysis clinical thresholds, and updated proportional lithium dose rounding to 125 mg Australian scored-tablet increments (lithium.ts, types.ts, tests/clinical-math-calculators.test.ts, tests/clinical-math-bounds.test.ts). | 2026-10-16 | +| #WFYDV6 | issue | Unwired WA MHA Form 6A/6B print component carries unverified statutory text | Fixed statutory discrepancies and branding in-place in src/components/forms/wa-mha-form-print.tsx: replaced Form 6B Chief Psychiatrist consent wording with statutory post-order Report to the Chief Psychiatrist wording matching form-register.ts, replaced official WA Department of Health branding with an explicit Non-Statutory Study Layout header and warning banner, and updated tests/wa-mha-form-print.dom.test.tsx (retaining the file per the 30-day dead-code policy). | 2026-10-16 | +| #WMGPSG | issue | Doc/instruction drift left open after the doc-fix pass: encoding damage, cloud-profile worktree rule, RAG duty missing from skills, stale decision | Documented the deliberate !min-h-[48px] SSO button floor in docs/redesign/07-token-adoption-audit.md, codified ragRanking and canary-pair safeguards in .agents/skills/rag/SKILL.md and .agents/skills/reindex/SKILL.md, and losslessly repaired all double-encoded UTF-8 mojibake across docs/privacy-impact-assessment.md and docs/openai-cross-border-basis.md (tests/doc-governance-encoding-and-skills.test.ts). | 2026-10-16 | +| #JCDCGK | task | Follow-up to PR 3546: Codex's held native PDF provenance change and pre-claim upload refusal | Native PDF page source provenance now emitted by worker/python/extract_pdf_assets.py and required for the bundled extractor (branch claude/ingestion-review-lbw6rf, 16 Oct). The 503 refusal before claiming was NOT shipped: indexing-v3-agent processJob completes jobs whose completion gate is already complete without any provider call, so refusing before the claim would strand those jobs; this matches the owner's 16 Oct decision to leave the repair job's provider calls off as is. | 2026-10-16 | +| #CFHRJY | issue | Virtualize long document and differential diagnosis result lists | Resolved in PR #3567 (5cbe4ec63a): added VirtualizedResultList (src/components/ui/virtualized-result-list.tsx) and wired document-search-results.tsx and differential-stream-workspace.tsx with DOM regression tests in tests/search-results-virtualization.dom.test.tsx. | 2026-10-16 | +| #3B4S3Z | issue | Safe number editor: two managers saving at almost the same moment can overwrite each other's cover needs | Verified implemented on main: writeOverFresh in src/components/roster/manage/roster-safe-number.tsx:185-204 passes expectedIds to 20261010081500_roster_needs_stale_check.sql with retry and roster_conflict recovery, covered by tests/safe-number-concurrency.test.ts and tests/roster-safe-number.dom.test.tsx. | 2026-10-16 | +| #1WAA0Z | task | Possible dead code: older calculator mockups (audit M5-2) and On Call Education, Compliance and Logistics screens said to be unreachable (audit L4D-05) | Verified On Call Education, Compliance, and Logistics components remain live via calendar event routing and check:dead-code-candidate. | 2026-10-16 | From 7aac5a0498c02cd01387f042b227666122667867 Mon Sep 17 00:00:00 2001 From: BigSimmo Date: Sat, 17 Oct 2026 20:47:53 +0800 Subject: [PATCH 2/2] chore(ledger): queue follow-ups for the unfinished parts of #08216B, #WMGPSG and #1WAA0Z --- .../5b138aaf-016f-4fc3-8165-fd6b10f15a79.json | 14 ++++++++++++++ .../b26640a5-b323-44ef-9a5c-9be3fc5ac3e0.json | 14 ++++++++++++++ .../c0471211-f9b1-44e4-bb54-8b1d5664c5f4.json | 14 ++++++++++++++ 3 files changed, 42 insertions(+) create mode 100644 docs/outstanding-issues-inbox/5b138aaf-016f-4fc3-8165-fd6b10f15a79.json create mode 100644 docs/outstanding-issues-inbox/b26640a5-b323-44ef-9a5c-9be3fc5ac3e0.json create mode 100644 docs/outstanding-issues-inbox/c0471211-f9b1-44e4-bb54-8b1d5664c5f4.json diff --git a/docs/outstanding-issues-inbox/5b138aaf-016f-4fc3-8165-fd6b10f15a79.json b/docs/outstanding-issues-inbox/5b138aaf-016f-4fc3-8165-fd6b10f15a79.json new file mode 100644 index 0000000000..3b8be92bfd --- /dev/null +++ b/docs/outstanding-issues-inbox/5b138aaf-016f-4fc3-8165-fd6b10f15a79.json @@ -0,0 +1,14 @@ +{ + "version": 2, + "id": "5b138aaf-016f-4fc3-8165-fd6b10f15a79", + "createdOn": "2026-10-17", + "action": "add", + "payload": { + "pri": "P3", + "type": "task", + "summary": "Remove the remaining PR 3538 leftovers after 13 Nov 2026 (split from #08216B, which closed only the calculator fixes)", + "detail": "#08216B was archived on 17 Oct with an outcome covering only the clinical-math calculators. Still open: src/app/api/proxy/route.ts (nothing calls it), scripts/recalculate-answer-support-labels.ts and its test (run by nothing), and the developer tool pages under src/app/mockups/development (unreachable duplicates of /admin/developer-hub) - remove after the 30-day dead-code window (13 Nov 2026) via npm run check:dead-code-candidate. The safe-number editor, attendance roster, QR check-in helper and clinical note editor are unwired: wire or remove each; the note editor needs a privacy review before any use. The 16 Oct clinical-math calculator changes (IBW guidance, lithium boundaries, dose rounding) need clinician verification before any clinical use.", + "source": "PR #3609 review (gitar-bot, chatgpt-codex-connector), 17 Oct 2026", + "issueUlid": "01M54YEVKA8Y91694B291WKTQS" + } +} diff --git a/docs/outstanding-issues-inbox/b26640a5-b323-44ef-9a5c-9be3fc5ac3e0.json b/docs/outstanding-issues-inbox/b26640a5-b323-44ef-9a5c-9be3fc5ac3e0.json new file mode 100644 index 0000000000..2fd59fdcaa --- /dev/null +++ b/docs/outstanding-issues-inbox/b26640a5-b323-44ef-9a5c-9be3fc5ac3e0.json @@ -0,0 +1,14 @@ +{ + "version": 2, + "id": "b26640a5-b323-44ef-9a5c-9be3fc5ac3e0", + "createdOn": "2026-10-17", + "action": "add", + "payload": { + "pri": "P2", + "type": "issue", + "summary": "Doc/instruction drift items left open when #WMGPSG was archived: ledger arrow, cloud-profile worktree rule, Caring Contacts decision, renewals wording", + "detail": "#WMGPSG was archived on 17 Oct with an outcome covering items 3 and 6 and the encoding repair in item 1 only. Still open: (1) docs/outstanding-issues.md:15 corrupted arrow (canonical ledger; fix only through reconciliation). (2) .claude/cloud-profile/skills/prompt/references/coding-workflow.md:21 pre-hardening worktree rule (owner decision: owned versus vendored). (4) docs/decisions/2026-09-26-remove-ward-flow-and-caring-contacts.md says Caring Contacts was removed but src/lib/caring-contacts/clock.ts is live with MHA, First Nations and On Call importers; add a dated superseding decision, do not delete the file. (5) Admin renewals page test dropped its checked-wording assertion while admin-renewed-sheet still forbids the word; record the decision.", + "source": "PR #3609 review (gitar-bot, chatgpt-codex-connector), 17 Oct 2026", + "issueUlid": "01M54YEVQ8WWTRM5RPCGA0FEVP" + } +} diff --git a/docs/outstanding-issues-inbox/c0471211-f9b1-44e4-bb54-8b1d5664c5f4.json b/docs/outstanding-issues-inbox/c0471211-f9b1-44e4-bb54-8b1d5664c5f4.json new file mode 100644 index 0000000000..885ef5e420 --- /dev/null +++ b/docs/outstanding-issues-inbox/c0471211-f9b1-44e4-bb54-8b1d5664c5f4.json @@ -0,0 +1,14 @@ +{ + "version": 2, + "id": "c0471211-f9b1-44e4-bb54-8b1d5664c5f4", + "createdOn": "2026-10-17", + "action": "add", + "payload": { + "pri": "P3", + "type": "task", + "summary": "Possible dead code: older calculator mockups (audit M5-2), split from #1WAA0Z", + "detail": "#1WAA0Z was archived on 17 Oct after confirming only the On Call Education, Compliance and Logistics screens are live (audit L4D-05). The older calculator mockups under src/app/mockups (calculators-*) from audit M5-2 were not checked. Delete nothing without npm run check:dead-code-candidate (see docs/agents/dead-code-deletion.md).", + "source": "PR #3609 review (gitar-bot), 17 Oct 2026", + "issueUlid": "01M54YEVVBC4Q3T76N15KMZVWV" + } +}