Skip to content

issues: reconcile the seventy-two queued ledger requests - #2644

Closed
BigSimmo wants to merge 3 commits into
mainfrom
claude/issues-reconcile-20260905
Closed

BigSimmo wants to merge 3 commits into
mainfrom
claude/issues-reconcile-20260905

Conversation

@BigSimmo

@BigSimmo BigSimmo commented Sep 5, 2026 •

Copy link
Copy Markdown
Owner

Summary

The single fresh-base reconciliation that applies landed inbox requests to the canonical ledger. Branched from origin/main at 77a64884, so every request it applies is already on main.

Seventy-two requests, carrying seven cancellation decisions. The ledger now reports 0 pending and 1016 applied, and the canonical list stands at 604 rows — 125 open, 479 archived, with no id deleted from the base.

Two of the seven cancellations were no-ops, and the tooling said so rather than swallowing them silently:

cancel request 01961e5e… did not take effect — its target 4478f605… was already applied by an earlier reconciliation. The cancellation is recorded but changed nothing; correct the affected row with a new update request.

The same for 9f93baa0…. Both cancellations are kept as audit records; neither changed a row. Correcting those two rows needs a fresh update request, which is follow-up work and deliberately not folded into this transaction.

This supersedes #2559 — and merging that instead would have gone backwards

#2559 was closed unmerged on 2026-09-02, which looked like seventeen lost requests. It was not. A later reconciliation picked its work up: all 933 of #2559's applied records are already on main, which now carries 944, and its recorded outcomes (#Z61JRT, #N8B176, #ZBAC9D, #5ECZQA, #686WHW) are all present in the canonical list today.

Reopening and merging it was therefore the wrong move, and not merely redundant:

  • git merge-tree --write-tree origin/main 9c0d0ae reports a real content conflict in both docs/outstanding-issues.md and data/outstanding-issues-snapshot.json — staleness, not a clean behind.
  • Resolving that conflict by hand is exactly what check:ledger-write-discipline exists to reject: the canonical diff would no longer equal a recorded reconciliation transaction.
  • And the resolution would have taken the list from main's 944 applied back to issues: reconcile the seventeen queued ledger requests #2559's 933, discarding eleven later applications.

claude/issues-reconcile-2526 is left in place rather than deleted; nothing here depends on removing it, and the reconcile interlock did not trip, because that branch now carries zero applied records absent from main.

Verification

  • npm run verify:pr-local — failed: (none), not reached: (none), all 39 stages completed, including the full offline unit suite, lint, typecheck and build.
PR-local verification summary:
- completed: check:runtime, check:installed-lock-parity, format:changed, check:diff-integrity,
  sitemap:check, check:mockups, check:repo-awareness-snapshot, docs:check-index,
  docs:check-inventory, docs:check-scripts, docs:check-links, check:branch-review-ledger,
  check:outstanding-issues, check:ledger-write-discipline, check:clinical-hazard-controls,
  check:upload-limit-parity, check:gate-manifest, check:knip, check:maintainability-budgets,
  check:type-scale, check:icon-scale, check:design-drift-ratchet, brand:check, check:assets,
  check:therapy-data-index, check:cross-mode-index, check:mha-act-sections,
  check:forms-pdf-manifest, check:design-system-contract, check:migration-role,
  check:function-grants, check:owner-scope, lint, typecheck, test, build, check:rag:fixtures,
  check:medication-interactions, check:medication-lexicon-report
- failed: (none)
- not reached: (none)

Supporting lines: Ledger inbox check passed: 0 pending request(s), 1016 applied, Outstanding-issues guard passed: 604 rows (125 open, 479 archived) … no ids deleted from base 77a64884f347, [snapshot] in step with data/outstanding-issues-snapshot.json (125 open, 0 pending), Ledger write discipline passed for 77a64884f347..HEAD.

An earlier run of this same gate reported test (exit 1) with three files failed, and it is worth recording how that was ruled out rather than waved away as a flake. tests/clinical-hazard-controls.test.ts, tests/privacy-readiness-contract.test.ts and tests/rag-plan-package-parity.test.ts each named their own cause — reviewedCommit does not exist 883f1007a85cd4e02198f39c12c4a4e467d4b89e and manifest reconciledBase is unavailable locally: f3d1a3cce2c943ad3083425ed9c7c46dbef23087. The agent container held a shallow clone, so neither commit was present. After git fetch --unshallow, git cat-file -t resolved both to commit and the three files passed — Test Files 3 passed (3), Tests 29 passed (29) — and the full gate above then completed with no failures. No test was skipped, disabled, quarantined or re-run to get green. This is the same environment artefact #2559 documented on 2026-09-02, and it is already tracked in the ledger as #TK9GH7 / #1M0J6D.

The gate also emits one pre-existing, unrelated warning it does not fail on: [lexicon-report] WARNING: the sign-off recorded 2026-08-22 does not cover the current mappings. Nothing in this diff touches the medication lexicon.

  • UI verification not run: no UI, routing, styling, or browser behaviour changed.
  • npm run verify:release not run: not a release or handoff confidence claim.
  • Retrieval and answer-generation evals not run: no executable product scope; check:rag:fixtures ran and passed inside the gate.

Risk and rollout

  • Risk: Low, but real, because this edits the canonical ledger. The change is confined to docs/outstanding-issues.md, the generated data/outstanding-issues-snapshot.json, and the relocation of seventy-two request files into applied/. No source, schema, migration, workflow, or configuration file is touched.
  • Rollback: Revert both commits. That restores the ledger and snapshot together and returns the seventy-two requests to pending, since the moves and the ledger edit are in the same commit.
  • Provider or production effects: None. Nothing here runs against OpenAI, Supabase, or any hosted service, and nothing touches supabase/migrations/**.
  • RAG impact: no retrieval behaviour change — ledger prose and a generated snapshot only. No file under src/lib/rag/, no retrieval RPC, no ranking configuration, no golden fixture and no ranking test is modified.

Clinical Governance Preflight

The diff is ledger prose and generated-snapshot only. It does not touch ingestion, answer generation, search/ranking, source rendering, document access, privacy, production environment, or clinical output, so no clinical surface changes. The rows it applies include clinical and privacy items, but what changes is the record of them, not the behaviour they describe.

  • Source-backed claims still require linked source verification before clinical use — unchanged; no answer, citation, or source-rendering code is touched.
  • No patient-identifiable document workflow was introduced or expanded — no ingestion, upload, or document workflow is added, widened, or altered.
  • Supabase target remains Clinical KB Database (sjrfecxgysukkwxsowpy) — no environment value or Supabase configuration is modified, and no live read or write was performed for this change.
  • Service-role keys and private document access remain server-only — no access-control code is touched.
  • Demo/synthetic content remains clearly separated from real clinical sources — no demo fixture or branch is modified.
  • Source metadata, review status, and outdated/unknown-source behaviour remain conservative — no metadata, governance, or review-status code is touched.
  • Deployment classification/TGA SaMD impact was checked — no clinical decision-support behaviour changed, so the classification is unaffected.

Notes

Two commits rather than one, deliberately. data/outstanding-issues-snapshot.json records the commit that last changed the canonical ledger, which is only knowable once that commit exists, so the reconcile tooling regenerates it afterwards and the second commit carries that regeneration. Counts are identical across the two.

🤖 Generated with Claude Code

https://claude.ai/code/session_01CVCJgsbjoX5xqTSsj6siBc


Generated by Claude Code


Note

Low Risk
Changes are ledger prose and a generated JSON snapshot only; no runtime, schema, or workflow code is modified. Risk is operational (canonical issue record accuracy), not deployment or clinical behaviour.

Overview
Applies a bulk ledger reconciliation by regenerating data/outstanding-issues-snapshot.json after seventy-two inbox requests land: ledger revision moves to 4016d0ec…, and headline counts jump to 125 open / 479 resolved (from 73 / 478), with pending cleared to 0.

The diff is mostly new and refreshed issue rows, not product code. Several existing entries get long factual rewrites—notably #100 (incremental evidence preview defaults on, Playwright smoke proof cited, remaining work reframed as offline route/mocked tests) and #ZBAC9D (consolidated narrative: retrieval-predicate fix rejected; write-side CHECK route via PR #2547). #TK9GH7 drops from the snapshot as duplicate of shallow-clone test noise already tracked elsewhere.

Dozens of new P1–P3 records are added across Ward Flow, Caring Contacts, RAG guards, medication governance, design tokens, Playwright strict-mode duplicates, forms PDF encryption, Lighthouse variance, and similar follow-ups—expanding the canonical backlog the snapshot mirrors.

Reviewed by Cursor Bugbot for commit 5a46a62. Configure here.

The single fresh-base reconciliation that applies landed inbox requests to
the canonical ledger. Branched from `origin/main` at `77a64884`, so every
request it applies is already on `main`.

Seventy-two requests, carrying seven cancellation decisions. The ledger now
reports **0 pending and 1016 applied**, and the canonical list stands at 604
rows — 125 open, 479 archived, with no id deleted from the base.

Two of the seven cancellations were no-ops and the tooling said so rather
than silently swallowing them: `01961e5e` and `9f93baa0` each target a
request an earlier reconciliation had already applied. Both cancellations
are recorded as audit records; neither changed a row. Correcting the two
affected rows needs a fresh update request, which is follow-up work and not
part of this transaction.

This supersedes PR #2559, which never merged. Its work was not lost — a
later reconciliation picked up all 933 of its applied records, every one of
which is on `main` already, so re-merging it would have rolled the canonical
list backwards rather than adding to it.

The seventy-two request files move to `docs/outstanding-issues-inbox/applied/`
as immutable audit records, and `data/outstanding-issues-snapshot.json` was
regenerated by the reconcile tooling in the same transaction, not by hand.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CVCJgsbjoX5xqTSsj6siBc
`data/outstanding-issues-snapshot.json` records the commit that last changed
the canonical ledger, which is only knowable after that commit exists. The
reconcile tooling regenerated it against `4016d0ec`; this carries that
regeneration. Counts are unchanged — 125 open, 0 pending.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CVCJgsbjoX5xqTSsj6siBc
@coderabbitai

coderabbitai Bot commented Sep 5, 2026 •

Copy link
Copy Markdown
Contributor

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Team

Run ID: 6347a7f2-ca51-406f-9d56-3a360bd5dfc2


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@supabase

supabase Bot commented Sep 5, 2026

Copy link
Copy Markdown

This pull request has been ignored for the connected project sjrfecxgysukkwxsowpy because there are no changes detected in supabase directory. You can change this behaviour in Project Integrations Settings ↗︎.


Preview Branches by Supabase.
Learn more about Supabase Branching ↗︎.

@BigSimmo
BigSimmo marked this pull request as ready for review September 5, 2026 12:47
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

@BigSimmo
BigSimmo enabled auto-merge (squash) September 5, 2026 12:47
@cursor

cursor Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_88b39610-b9ab-4544-8c4c-d77cde8b2333)

@github-actions

github-actions Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

CI triage

CI failed on this PR. Automated classification of the 2 failed job(s):

  • Static PR checks — main-side: the same job also failed on the latest completed main CI run.
  • PR required — main-side: the same job also failed on the latest completed main CI run.

Compared with main CI run #15815 (failure).

Classification is evidence routing, not permission to ignore a failure. Exact quarantined Playwright identities remain governed by the flake ledger.

BigSimmo commented Sep 5, 2026

Copy link
Copy Markdown
Owner Author

This now conflicts, and the conflict must not be resolved — close it instead

PR mergeability has gone red: mergeable_state: dirty against main at 1f6998c3. That is expected and is not a defect to repair. #2651 — the replacement reconciliation, 79 requests from today's base — merged a few minutes ago and rewrote the same two files this branch rewrites, so the two transactions overlap by construction.

Resolving it by hand is precisely what check:ledger-write-discipline exists to reject. The canonical ledger must equal an exact replay of the moved inbox requests from the base; a hand-merged docs/outstanding-issues.md equals no replay at all. Rebuilding this branch into one clean transaction against the new base would need a force-push, which its armed auto-merge bars. And the work is already landed: everything this branch applied is on main via #2651, which applied a superset of it.

So there is nothing here to recover and nothing to fix. The correct action is to close this pull request. Its auto-merge is armed and user-owned, so I have not touched that; it is currently self-blocking on the conflict, but it should not be left armed against a stale ledger transaction.


Generated by Claude Code

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

One reconciled inbox request drops its intended detail into non-standard fields (context/next), leaving the canonical ledger row’s “Detail / next action” cell blank and losing information.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

Applies a serialized reconciliation of the outstanding-issues inbox onto the canonical ledger, moving landed request JSON files into applied/ as an audit trail and regenerating the derived snapshot used elsewhere in the repo.

Changes:

  • Reconciles queued inbox requests into docs/outstanding-issues.md (canonical open/archive tables).
  • Regenerates data/outstanding-issues-snapshot.json to reflect the new ledger state.
  • Moves the landed inbox request files into docs/outstanding-issues-inbox/applied/ for immutable audit.
File summaries
File Description
docs/outstanding-issues.md Canonical ledger updated by reconciliation (open/archive rows and counts).
data/outstanding-issues-snapshot.json Regenerated snapshot reflecting the reconciled ledger state.
docs/outstanding-issues-inbox/applied/fbabc875-23c4-4a6d-9d27-c055f56f59d5.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/fb3ed611-c188-488c-8276-44165e14d674.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/e3133c1b-dd9c-483d-b05e-42a1cf006ea6.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/e2128050-18a7-4a39-b2a8-001063a57f01.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/dce19f4e-e646-424b-a3a3-bf95afe255dc.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/dc63c326-7aaa-4a20-a506-7ad9b2424714.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/dc1eb1e9-2315-43ba-af6b-9169704e8f51.json Applied inbox request (update).
docs/outstanding-issues-inbox/applied/d59d08f0-c1b8-44b7-88bb-80475b2c5ded.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/d562a529-9b05-42a4-93b5-651ddffe4a98.json Applied inbox request (cancel).
docs/outstanding-issues-inbox/applied/d1c220b5-c2dc-4e8e-8f97-14945fa3f32c.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/d1b3491f-5e2e-49e3-b6a5-fa47be1cb8c1.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/c0a4e200-1363-47c3-8d8b-41ec25165ba3.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/bc06ad0c-44a5-4a0b-8caa-bf426155c6e1.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/b924f226-2e60-4687-9c93-b0531c8abaa2.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/b6beabbe-2560-484d-90fe-4d2f8461d82b.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/b5bb3441-1b38-4e03-a2f1-5d2583ab179f.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/b156e33e-9f0c-4853-a554-3db72d965f6c.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/b0654cc7-6025-4b22-a9c1-26c27475cc42.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/aeb654e6-ed65-44c0-9930-c3223e89a7c8.json Applied inbox request (update).
docs/outstanding-issues-inbox/applied/aea34323-2559-4a04-890c-f35581246a21.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/ab278e5a-b081-4959-906f-2f7ca72b0aac.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/a8ddb0c4-547f-4375-8b92-7d63dfdf22db.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/a7fa5c79-1638-4f1f-8ac6-5f0aba14bdd9.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/a54e117c-703c-42a1-8568-8b5a0cfb7e77.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/a2d978f5-aaba-47e6-afee-669d392cb716.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/a247a05f-1ce6-4d42-91d9-ae17b2b25dd4.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/9f93baa0-8001-4d56-9494-aff4b3796b38.json Applied inbox request (cancel).
docs/outstanding-issues-inbox/applied/97f270b0-f713-45ae-8b04-0e1982db2518.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/8df3eb40-1fa8-4daf-964e-699192930738.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/8c2a6e91-3f70-4d55-b1c4-7ae5d9036f28.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/865fb266-39ee-4d86-8d4a-713a3d911177.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/847aa0f0-aebf-4980-bb03-e2cb1250f5a8.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/7c6d8a93-fde5-41c8-8cb0-cc0727c14dc9.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/7a641879-4fce-4226-84c2-905c854cfc1d.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/77f17394-5f0b-4b6f-bffc-63548ac37846.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/7663384b-4556-4d35-ae93-7f8d8105e9a0.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/75e3b4fa-5cdd-4d26-afd3-44aeab3700bf.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/73631e01-fb51-44b3-9ef0-aacef6a2b98f.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/6f92316d-ad3b-4007-a672-afc68a2ac198.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/69e8b1c5-ffc0-42e8-8579-6908f730f4e5.json Applied inbox request (cancel).
docs/outstanding-issues-inbox/applied/682d2d28-464a-490a-9764-923f7eab8036.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/63cd34c6-29e0-4d49-a79a-c25a769b273e.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/5b340e9d-b6db-4321-90ee-39c6c58d863e.json Applied inbox request (update).
docs/outstanding-issues-inbox/applied/5ad9c07e-41b8-4c62-9f3e-6d0a2b5e73c1.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/56696bb0-eb80-4b6f-88a6-5f6cb5b1930c.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/549924e0-d2ef-4e9a-85ba-d17f28a9d296.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/4fb343b6-00a9-45d6-9b9a-536d32f43a74.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/4cc4b95c-8dcb-4772-a157-b7ae2980c033.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/4bb27cad-9205-4f58-9eb0-fc7e143c7bc5.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/4b9739a8-83c8-4260-9178-cfb75a5c650b.json Applied inbox request (done).
docs/outstanding-issues-inbox/applied/4b71f0d2-5c66-4a3e-9d0e-2a9f6c1e8b47.json Applied inbox request (cancel).
docs/outstanding-issues-inbox/applied/4a148cf3-eae0-41f6-8b0a-61f4f318ca99.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/4a13a994-5364-440b-a377-7f6dfd5befc9.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/4331ce48-4cf9-4e04-8ed3-a4bcac0f8fd9.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/403e7288-352a-4d13-b163-58d660b17f2f.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/39f2278e-ced4-4c70-8b41-c3c163564817.json Applied inbox request (update).
docs/outstanding-issues-inbox/applied/354316f3-74f7-4d2b-a3f0-91bac3fb18e6.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/2f6d84c1-9b03-4a17-8e52-c14d7f0b6ea9.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/2c2960c2-11d0-4825-aebf-cada162843db.json Applied inbox request (cancel).
docs/outstanding-issues-inbox/applied/2394b0ad-200b-4394-9411-4a1708c1efe3.json Applied inbox request (cancel).
docs/outstanding-issues-inbox/applied/1ecb552e-5fae-4eb5-a950-739fd7d5bf33.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/154abc14-bf00-406e-874b-e59753b82fea.json Applied inbox request (update).
docs/outstanding-issues-inbox/applied/0ba195e1-b29f-49c0-b28a-c6209fa7b279.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/09170645-4b03-414b-b3cc-3bf5a640c497.json Applied inbox request (cancel).
docs/outstanding-issues-inbox/applied/0327a00a-f12d-4907-9c52-45d8e7e887eb.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/01bc19e1-689e-4fc7-9b8e-401f52267219.json Applied inbox request (add).
docs/outstanding-issues-inbox/applied/01961e5e-2e72-4a3e-a1d7-d7e1c485a37e.json Applied inbox request (cancel).
docs/outstanding-issues-inbox/applied/00478d9b-4dc8-4391-8797-f01823923949.json Applied inbox request (add).
Review details
  • Files reviewed: 1/74 changed files
  • Comments generated: 1
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

| #C0CARS <!-- issue-ulid:01M1G4PS8EC0CARSXX9BK4768S --> | P2 | issue | The property ward-referral-matching.test.ts protects has no backstop anywhere in the suite | | session 2026-09-02 | 2026-09-02 |
| #NKHVRY <!-- issue-ulid:01M1NV5VB9NKHVRYQHB1NYK0AJ --> | P2 | issue | The caring-contacts dark specimen tile paints the dead compat palette, and is the only place in the app that does | src/components/caring-contacts/mockups/component-state-specimens.tsx:128 puts a literal 'dark' class on an <article> without 'ckb-v2'. It is the only off-root .dark mount in src/. globals.css .dark (0,1,0) is declared ON that element, while the v2 dark selectors (.dark .ckb-v2.ckb-v2 and .ckb-v2.dark.ckb-v2) need a .ckb-v2 at or below it, so the compat values win there by declaration-beats-inheritance. Measured in Chromium at /mockups/caring-contacts/system-states: --border #2b3136, --surface-raised #171b1e, --surface #101315, --text-muted #a4adb7 - all globals dark, where the app's real dark mode paints #333a41, #1c2126, #12161a, #a8b2bd. So a tile whose whole purpose is to demonstrate the dark luminance ladder demonstrates a ladder the product never uses. Fix is to add 'ckb-v2' beside 'dark' on that element, which is also a prerequisite for the token-layer collapse: deleting the dead globals .dark declarations would otherwise drop this subtree onto the v2 LIGHT palette. That fix is not a no-op - it moves the tile from the compat dark palette to the real one - so it needs owner sign-off rather than riding along silently. /mockups is blocked in production by src/proxy.ts, so this is a dev/preview surface only. | Token-layer collapse, branch claude/token-layer-collapse-itskb0, browser-measured 2026-09-04 | 2026-09-04 |
| #0ZTPX9 <!-- issue-ulid:01M1G4NPRJ0ZTPX9XGXRBXN1JZ --> | P2 | issue | Ten CSS custom properties referenced with no fallback and never declared render as nothing on a clinical board | tests/design-token-contract.test.ts fails. board.module.css and ward-management.module.css reference --clinical-border-subtle, --clinical-text-muted, --clinical-border, --clinical-surface, --clinical-text and --ward-surface with no fallback and no declaration. An undeclared custom property with no fallback does not error - it renders as nothing, so a clinician sees a missing border or invisible text while every test stays green. Reproduced at adcd8bcb5: 90 tests RAN, 3 failed, real exit 1. Ownership went unclaimed repeatedly across five chats. | Ward Builder Three, reproduced not relayed, at adcd8bcb5 | 2026-09-02 |
| #AGBNBV <!-- issue-ulid:01M1G4M9N6AGBNBVMAZYZR01X8 --> | P2 | issue | ledger-inbox.mjs add silently ignores --dry-run and writes a real queue entry | | session 2026-09-02 | 2026-09-02 |

BigSimmo commented Sep 5, 2026

Copy link
Copy Markdown
Owner Author

Closing unmerged — superseded, the same way this PR itself documented superseding #2559.

A later reconciliation, PR #2651 ("issues: reconcile all seventy-nine queued ledger requests"), is already on main (commit 1f6998c3b). It applied this PR's 72 requests plus 7 more that were queued afterward, in one fresh-base transaction. main's inbox now shows 0 pending, all applied.

Reopening and merging this PR instead would go backwards for the same reason its own body gives for not reviving #2559: docs/outstanding-issues.md and data/outstanding-issues-snapshot.json now have a real content conflict against main (staleness, not a clean behind), and hand-resolving that conflict is exactly what check:ledger-write-discipline exists to reject — the canonical diff would stop equalling a single recorded reconciliation transaction, and the 7 later-queued requests would be lost.

No action needed from this PR's branch; it can stay as history.


Generated by Claude Code

@BigSimmo BigSimmo closed this Sep 5, 2026
auto-merge was automatically disabled September 5, 2026 22:33

Pull request was closed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants