diff --git a/docs/branch-review-records/0bd6e78104f1efb528b8a02e6ce07cb58545f45e9ac5efe70e8e97e97233dfa6.record.md b/docs/branch-review-records/0bd6e78104f1efb528b8a02e6ce07cb58545f45e9ac5efe70e8e97e97233dfa6.record.md new file mode 100644 index 0000000000..a95e83b072 --- /dev/null +++ b/docs/branch-review-records/0bd6e78104f1efb528b8a02e6ce07cb58545f45e9ac5efe70e8e97e97233dfa6.record.md @@ -0,0 +1 @@ +| 2026-08-15 | PR #1966 / claude/ledger-review-triage-yi63ao | fd8e0fd55dd1a49e98039bd0057fb9221e644a93 | unblocking PR review-and-fix | No confirmed PR-introduced P0-P2 defect. Merged current main cleanly; prior ledger-closure concerns are superseded by current-main evidence. | ledger-inbox check PASS; outstanding-issues PASS; branch-review-ledger PASS; JSON parse 11/11; current-main claim probes PASS; diff --check PASS; npm setup unavailable (npm cache sandbox). | diff --git a/docs/branch-review-records/55297ab0e355af3fbf69ae0321defbaa0a097a15f8fb74a52623abe427f21421.record.md b/docs/branch-review-records/55297ab0e355af3fbf69ae0321defbaa0a097a15f8fb74a52623abe427f21421.record.md new file mode 100644 index 0000000000..8aca52a899 --- /dev/null +++ b/docs/branch-review-records/55297ab0e355af3fbf69ae0321defbaa0a097a15f8fb74a52623abe427f21421.record.md @@ -0,0 +1 @@ +| 2026-08-14 | PR #1966 | 5f5d4d141d07753b5c3882e65c0dea5de0a68804 | completed-PR ledger queue | fixed | Prettier JSON; ledger inbox check; outstanding-issues guard; ledger write discipline; independent Codex adversarial review: #098 false completion removed; stale #210/#215 corrections superseded | diff --git a/docs/outstanding-issues-inbox/0b6a19d6-c586-4ea3-8fc6-fa8ee941d922.json b/docs/outstanding-issues-inbox/0b6a19d6-c586-4ea3-8fc6-fa8ee941d922.json new file mode 100644 index 0000000000..8efa0c0069 --- /dev/null +++ b/docs/outstanding-issues-inbox/0b6a19d6-c586-4ea3-8fc6-fa8ee941d922.json @@ -0,0 +1,10 @@ +{ + "version": 1, + "id": "0b6a19d6-c586-4ea3-8fc6-fa8ee941d922", + "createdOn": "2026-08-14", + "action": "cancel", + "payload": { + "requestId": "b53c5e20-2c6f-41da-a202-bcf5c7609938", + "reason": "The queued correction is stale: PR #1949's PWA install-sheet decoding=async change is now on main." + } +} diff --git a/docs/outstanding-issues-inbox/1860498b-2e89-41cf-85f1-e62dc3cca057.json b/docs/outstanding-issues-inbox/1860498b-2e89-41cf-85f1-e62dc3cca057.json new file mode 100644 index 0000000000..8cdf380148 --- /dev/null +++ b/docs/outstanding-issues-inbox/1860498b-2e89-41cf-85f1-e62dc3cca057.json @@ -0,0 +1,10 @@ +{ + "version": 1, + "id": "1860498b-2e89-41cf-85f1-e62dc3cca057", + "createdOn": "2026-08-14", + "action": "done", + "payload": { + "id": "#210", + "outcome": "Closed after PR #1953 landed on main: scripts/run-playwright.mjs now gives the generated isolated child tsconfig its own include/exclude, preventing stale repo-root .next/dev types from leaking into the Playwright build while retaining the run's generated types." + } +} diff --git a/docs/outstanding-issues-inbox/256e9f44-2c1d-4068-a3e6-74baf3de271d.json b/docs/outstanding-issues-inbox/256e9f44-2c1d-4068-a3e6-74baf3de271d.json new file mode 100644 index 0000000000..147ffe97a5 --- /dev/null +++ b/docs/outstanding-issues-inbox/256e9f44-2c1d-4068-a3e6-74baf3de271d.json @@ -0,0 +1,11 @@ +{ + "version": 1, + "id": "256e9f44-2c1d-4068-a3e6-74baf3de271d", + "createdOn": "2026-08-14", + "action": "update", + "payload": { + "id": "#212", + "detail": "RAG-surface tranche implemented via PR #1946: new src/lib/rag/rag-row-contracts.ts (assertRetrievalRows, Zod-backed, RetrievalRowShapeError) replaces 4 'as SearchResult[]' casts in rag.ts (hybrid telemetry/merge, vector-fallback, document-summary context) with runtime shape assertion -- strict on id/document_id/content (not-null in schema) and the 4 score fields (nullish), loose via z.looseObject on everything else so RPC-version column differences don't break. Assertion-only (no transform), so object identity/key order is unchanged on success; errors carry only Zod issue paths, never row content. tests/rag-retrieval-row-contract.test.ts (8 cases) plus tests/rag-imputation-contract.test.ts kept green as evidence no ranking/comparator logic moved. Deliberately untouched: query_embedding casts (a deliberate repo-wide convention satisfying Supabase-generated RPC types) and outbound Json serialization casts. Remaining #212 population (~11 as-unknown-as casts) confirmed via grep to live OUTSIDE rag.ts's import graph: src/app/api/documents/route.ts (4), src/app/api/ingestion/{batches,jobs,quality}/route.ts (6), src/app/api/jobs/route.ts (1) -- legitimate non-RAG-flagged tranche-2 candidates, not yet started.", + "source": "PR #1946, session 2026-08-14" + } +} diff --git a/docs/outstanding-issues-inbox/3d861de3-4402-4e40-8dec-8a84e10093c2.json b/docs/outstanding-issues-inbox/3d861de3-4402-4e40-8dec-8a84e10093c2.json new file mode 100644 index 0000000000..f435c95a05 --- /dev/null +++ b/docs/outstanding-issues-inbox/3d861de3-4402-4e40-8dec-8a84e10093c2.json @@ -0,0 +1,10 @@ +{ + "version": 1, + "id": "3d861de3-4402-4e40-8dec-8a84e10093c2", + "createdOn": "2026-08-14", + "action": "done", + "payload": { + "id": "#215", + "outcome": "Closed after PR #1949 landed on main: the PWA install-sheet icon now uses decoding=\"async\". Demo PNG-to-WebP conversion was explicitly declined as a low-value synthetic-demo build step, preserving the row's requested implementation-or-drop decision." + } +} diff --git a/docs/outstanding-issues-inbox/42dd600a-b032-45a5-8c53-cb185f08cf13.json b/docs/outstanding-issues-inbox/42dd600a-b032-45a5-8c53-cb185f08cf13.json new file mode 100644 index 0000000000..0fe6d09f8b --- /dev/null +++ b/docs/outstanding-issues-inbox/42dd600a-b032-45a5-8c53-cb185f08cf13.json @@ -0,0 +1,11 @@ +{ + "version": 1, + "id": "42dd600a-b032-45a5-8c53-cb185f08cf13", + "createdOn": "2026-08-14", + "action": "update", + "payload": { + "id": "#309", + "detail": "Attempted 2026-08-14: an implementation task for chips-for-6-20 was stopped before any code was written, because it directly contradicts this row's own current, still-open text, which requires a full-width DENSE LIST (right-aligned count column, group headings) for the 6-20 band, and explicitly says chips-for-6-20 does not satisfy this row. Confirmed chips-for-6-20 is ALREADY the live behaviour (dense = facetGroups.length > 3 || totalFacetOptions > 20 in result-filter-control.tsx), and that closing this row on that basis was already tried once and explicitly reverted (PR #1925, 'correct #309 to partially delivered'). No code changed, no PR opened. Needs a product/design decision between: (1) build the genuine full-width dense-list renderer plus the nine-option DOM assertion this row asks for, or (2) formally amend docs/filter-contract.md section 5 to deliberately drop the middle band with reviewer sign-off -- different from what already happened (a silent merge-conflict resolution the row says didn't count).", + "source": "session 2026-08-14, agent stop per contract contradiction" + } +} diff --git a/docs/outstanding-issues-inbox/5cf082dd-60c3-42ef-95dc-82b9c255e9be.json b/docs/outstanding-issues-inbox/5cf082dd-60c3-42ef-95dc-82b9c255e9be.json new file mode 100644 index 0000000000..2fceedae3f --- /dev/null +++ b/docs/outstanding-issues-inbox/5cf082dd-60c3-42ef-95dc-82b9c255e9be.json @@ -0,0 +1,11 @@ +{ + "version": 1, + "id": "5cf082dd-60c3-42ef-95dc-82b9c255e9be", + "createdOn": "2026-08-14", + "action": "update", + "payload": { + "id": "#210", + "detail": "CORRECTION 2026-08-14: an earlier queued request for this row claimed `done`, citing PR #1953. That was premature -- PR #1953 is still open, not merged; scripts/run-playwright.mjs on main does not yet carry the fix. Do not close this row until PR #1953 actually merges and the fix is confirmed present on main. What PR #1953 contains, once it lands: an explicit include/exclude added to the generated isolated child tsconfig, plus a glob-consolidation correction pushed to the same branch after a Codex review finding was investigated and found NOT to hold against real Next.js build behaviour (verified via the actual runTypeCheck -> parseJsonConfigFileContent -> createProgram call chain, not the tsc --showConfig CLI-display path the reviewer's probe used). Empirically confirmed via planted-file probes in that session: stale repo-root .next/dev/types no longer leak into the isolated build, and the run's own generated route types remain present in the real TypeScript program. Items 1 and 2 of this row were already closed/refuted before that PR; it addresses item 3, the last open part -- but only once merged.", + "source": "session 2026-08-14 ledger correction; PR #1953 (open, not yet merged as of this correction)" + } +} diff --git a/docs/outstanding-issues-inbox/97e7beeb-97e5-43a6-b238-065b42070969.json b/docs/outstanding-issues-inbox/97e7beeb-97e5-43a6-b238-065b42070969.json new file mode 100644 index 0000000000..80f79abc47 --- /dev/null +++ b/docs/outstanding-issues-inbox/97e7beeb-97e5-43a6-b238-065b42070969.json @@ -0,0 +1,10 @@ +{ + "version": 1, + "id": "97e7beeb-97e5-43a6-b238-065b42070969", + "createdOn": "2026-08-14", + "action": "done", + "payload": { + "id": "#194", + "outcome": "3 of 5 named backfill one-shots archived via PR #1947 (backfill-document-covers.mjs, backfill-document-tags.ts, backfill-enrichment.ts moved to scripts/archive/, npm scripts repointed, one test import updated). The other 2 (backfill-gold-document-labels.ts, backfill-smart-index.ts) were found already classified [live] ongoing tooling in docs/scripts-index.md and docs/codebase-index.md, not one-shot candidates -- archiving them would have contradicted the repo's own documented convention, so they were correctly left in place. The 'dead ci-change-scope token' claim was confirmed FALSE by grep: scripts/ci-change-scope.mjs is live, central CI tooling wired into ci.yml and four other verify scripts. No removal made." + } +} diff --git a/docs/outstanding-issues-inbox/b53c5e20-2c6f-41da-a202-bcf5c7609938.json b/docs/outstanding-issues-inbox/b53c5e20-2c6f-41da-a202-bcf5c7609938.json new file mode 100644 index 0000000000..fd3a8f9733 --- /dev/null +++ b/docs/outstanding-issues-inbox/b53c5e20-2c6f-41da-a202-bcf5c7609938.json @@ -0,0 +1,11 @@ +{ + "version": 1, + "id": "b53c5e20-2c6f-41da-a202-bcf5c7609938", + "createdOn": "2026-08-14", + "action": "update", + "payload": { + "id": "#215", + "detail": "CORRECTION 2026-08-14: an earlier queued request for this row claimed `done`, citing PR #1949. That was premature -- PR #1949 is still open, not merged, and its `Production UI` and `PR required` checks are currently failing; src/components/pwa-lifecycle.tsx on main does not yet carry the change. Do not close this row until PR #1949 actually merges and the fix is confirmed present on main. What PR #1949 contains, once it lands: (a) decoding=\"async\" added to the PWA install-sheet icon in pwa-lifecycle.tsx, matching the image-lightbox.tsx / non-pdf-source-preview.tsx pattern. (b) Demo PNG-to-WebP conversion explicitly declined rather than done: no real conversion tooling available without adding a new dependency (sharp is only a peer-dep override pin, not usable standalone), SignedImage deliberately sets unoptimized on next/image for signed-URL-security reasons unrelated to demo assets, and the payoff is ~185KB on assets that never reach production users. That decision stands regardless of PR #1949's merge state.", + "source": "session 2026-08-14 ledger correction; PR #1949 (open, CI red as of this correction)" + } +} diff --git a/docs/outstanding-issues-inbox/b935dad0-394c-435a-acc5-21df750c7e52.json b/docs/outstanding-issues-inbox/b935dad0-394c-435a-acc5-21df750c7e52.json new file mode 100644 index 0000000000..b5149fa44f --- /dev/null +++ b/docs/outstanding-issues-inbox/b935dad0-394c-435a-acc5-21df750c7e52.json @@ -0,0 +1,11 @@ +{ + "version": 1, + "id": "b935dad0-394c-435a-acc5-21df750c7e52", + "createdOn": "2026-08-14", + "action": "update", + "payload": { + "id": "#293", + "detail": "CORRECTION 2026-08-14: an earlier queued request for this row claimed `done`, citing PR #1962. That was premature -- PR #1962 is still open, not merged; tests/ui-style-contract.spec.ts on main does not yet carry the new test. Do not close this row until PR #1962 actually merges and the test is confirmed present on main. What PR #1962 contains, once it lands: Finding 1 (min-height override) reconfirmed already refuted/intentional, untouched -- no code change needed there. Finding 2 (nondeterministic enumeration): confirmed via git history it was written once but reverted rather than landed, so there was no code to fix, only a missing regression test to build. The new Playwright test runs on /forms's static home (avoids the original live-search route race), at a 390x844 phone viewport (avoids the sm: release that refuted Finding 1), polls until 3 consecutive enumeration reads agree instead of trusting networkidle, explicitly sorts the shape list, and repeats 3 full navigate-and-enumerate cycles inside the test asserting an exact match. Full spec file passed 10/10 in that session's own run -- but that proof is local to the branch until the PR merges.", + "source": "session 2026-08-14 ledger correction; PR #1962 (open, not yet merged as of this correction)" + } +} diff --git a/docs/outstanding-issues-inbox/bcea44bc-5738-41b8-96f1-e96b1488ab29.json b/docs/outstanding-issues-inbox/bcea44bc-5738-41b8-96f1-e96b1488ab29.json new file mode 100644 index 0000000000..eaccc88c12 --- /dev/null +++ b/docs/outstanding-issues-inbox/bcea44bc-5738-41b8-96f1-e96b1488ab29.json @@ -0,0 +1,10 @@ +{ + "version": 1, + "id": "bcea44bc-5738-41b8-96f1-e96b1488ab29", + "createdOn": "2026-08-14", + "action": "cancel", + "payload": { + "requestId": "5cf082dd-60c3-42ef-95dc-82b9c255e9be", + "reason": "The queued correction is stale: PR #1953's isolated Playwright tsconfig include/exclude fix is now on main." + } +} diff --git a/docs/outstanding-issues-inbox/c5e84848-9a84-442e-a818-1b53df5693fa.json b/docs/outstanding-issues-inbox/c5e84848-9a84-442e-a818-1b53df5693fa.json new file mode 100644 index 0000000000..146456598f --- /dev/null +++ b/docs/outstanding-issues-inbox/c5e84848-9a84-442e-a818-1b53df5693fa.json @@ -0,0 +1,10 @@ +{ + "version": 1, + "id": "c5e84848-9a84-442e-a818-1b53df5693fa", + "createdOn": "2026-08-14", + "action": "done", + "payload": { + "id": "#189", + "outcome": "Route-level budget pinned via PR #1950 (16 round trips: auth/ratelimit/scope/enrichment/telemetry). The x3 text-RPC fan-out (match_document_chunks_text_v2 / match_document_table_facts_text_v2) is disposed as INTENTIONAL: src/lib/rag/rag-candidate-sources.ts fans out maxTextRpcQueryVariants (3) lexical query-variant phrasings for recall, with an existing PT-02 early exit (firstVariantPoolIsStrong) that skips sibling RPCs when the primary pool is already strong. No retrieval-behaviour change made; collapsing further would need a RAG flag plus a live canary, out of scope for this PR." + } +}