Skip to content
Original file line numberDiff line numberDiff line change
@@ -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). |
Original file line numberDiff line numberDiff line change
@@ -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 |
Original file line numberDiff line numberDiff line change
@@ -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."
}
}
Original file line numberDiff line numberDiff line change
@@ -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."
}
}
Original file line numberDiff line numberDiff line change
@@ -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"
}
}
Original file line numberDiff line numberDiff line change
@@ -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."
}
}
Original file line numberDiff line numberDiff line change
@@ -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"
}
}
Original file line numberDiff line numberDiff line change
@@ -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)"
}
}
Original file line numberDiff line numberDiff line change
@@ -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."
}
}
Original file line numberDiff line numberDiff line change
@@ -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)"
}
}
Original file line numberDiff line numberDiff line change
@@ -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)"
}
}
Original file line numberDiff line numberDiff line change
@@ -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."
}
}
Original file line numberDiff line numberDiff line change
@@ -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."
}
}
Loading