Skip to content

docs(issues): re-file the 2026-08-12 ledger yield review as inbox requests - #1920

Merged
BigSimmo merged 7 commits into
mainfrom
claude/ledger-sweep-inbox-requests
Aug 13, 2026
Merged

docs(issues): re-file the 2026-08-12 ledger yield review as inbox requests#1920
BigSimmo merged 7 commits into
mainfrom
claude/ledger-sweep-inbox-requests

Conversation

@BigSimmo

Copy link
Copy Markdown
Owner

Summary

The sweep's judgements are unchanged; only the delivery mechanism is. The original pass edited the canonical ledger directly — which is how it was done at the time — and the inbox/reconcile architecture that landed afterwards forbids it. check:ledger-write-discipline compares the canonical file against merge-base(HEAD, origin/main) plus the moved requests, so every direct edit on that branch became a violation; PR #1890 was closed without merging and nothing from it reached main.

43 requests, no canonical ledger edit:

  • 22 done#304 (already completed before the sweep); the six standing cautions whose own text says "no action" (#241#244#272#294#300#257); the five DR runbook steps (#196#200); two index umbrellas (#086#188); two superseded rows (#250#253) plus #254; and five rows merged into survivors (#156#168, #301#292, #152/#236/#260#169).
  • 19 update — the deprioritisations. Six move the Pri cell to P3 now that --pri exists (#183#090#211#212#266#269); thirteen record the reasoning against a row already at the floor.
  • 2 add — the row-outlives-its-own-completion gap, and the residual dead Outcome cells left by PR fix(issues): derive queue prose from the row it cites, so a stale cell cannot misdirect #1902.

Every closure premise was re-verified against current main rather than trusted from the earlier pass, and that mattered. Five closures turn on a code comment carrying the knowledge the row was protecting, so those comments had to be confirmed present on main before the row could be closed — otherwise closing the row would delete the knowledge. All five are present (differentials-home.tsx, ckb-v2-tokens.css, bindings.tsx, page-secondary-navigation.tsx, the viewer plan), and #244 is now additionally pinned by a test. #304's premise was re-measured too: the snapshot is 1 day old with sourceRunId 31329507691, so its "freshness fuse" is not armed.

Worth flagging: two of my greps returned 0 for comments that are on main — Prettier had reflowed them across lines. I checked the files rather than acting on the false negative, but a less careful pass would have closed #300 and #272 and lost both cautions.

Two deliberate omissions.#013 is skipped: it already has a pending update request, and a second would force an explicit cancellation decision on someone else's mutation. #313 gets no row — it was fixed in PR #1905, and its tracking row only ever existed in the closed PR.

Verification

  • npm run verify:pr-localcompleted: check:runtime, check:installed-lock-parity, format:changed, sitemap:check, docs:check-index, docs:check-inventory, docs:check-scripts, docs:check-links, check:branch-review-ledger, check:outstanding-issues, check:ledger-write-discipline · failed: (none)
  • npm run check:ledger-write-disciplineLedger write discipline passed for ca788d41e1e6..HEAD. This PR makes no canonical ledger edit; git diff HEAD -- docs/outstanding-issues.md is empty.
  • Dry-applied the full pending batch (mine plus the 14 already queued) through applyRequestBatch before committing: open 114 → 95, archive 196 → 220, and checkIssuespasses on the applied result. Spot-checked #211 lands at P3.
  • Collision check against the 14 pre-existing pending requests before filing — one hit (#013), excluded.

Risk and rollout

  • Risk: Low. Immutable request files only; the canonical ledger is untouched until someone runs a deliberate issues:reconcile. The batch is proven to apply cleanly, so reconciliation should not surprise.
  • Rollback:git revert, or cancel individual requests with node scripts/ledger-inbox.mjs cancel <uuid> --reason "…" before reconciling.
  • Provider or production effects: None.

Notes

This does not reconcile. Per docs/outstanding-issues-inbox/README.md, reconciliation runs on a dedicated branch off a freshly fetched origin/main after the relevant PRs land. Once this merges, npm run issues:reconcile -- --dry-run then npm run issues:reconcile applies all 57 pending requests in one serialized transaction.

Reviewability: the judgement is in the outcome and detail text of each request, so this is best read as 43 small decisions rather than one diff. If any single closure looks wrong, cancelling that one request is a one-line change and leaves the rest intact.

🤖 Generated with Claude Code

https://claude.ai/code/session_01DuYJz8hauCsCdx8r4fXiZU


Generated by Claude Code

…uests
The sweep's judgements are unchanged; only the delivery mechanism is. The
original pass edited the canonical ledger directly, which is how it was done at
the time, and the inbox/reconcile architecture that landed afterwards forbids
it — check:ledger-write-discipline compares the canonical file against
merge-base(HEAD, origin/main) plus the moved requests, so every direct edit on
that branch became a violation and PR #1890 was closed without merging. Nothing
from it reached main.
43 requests, no canonical ledger edit:
- 22 done: #304 (already completed before the sweep), the six standing
cautions whose own text says "no action" (#241#244#272#294#300#257),
the five DR runbook steps (#196-#200), two index umbrellas (#86#188), two
superseded rows (#250#253) plus #254, and five rows merged into survivors
(#156 into #168; #301 into #292; #152#236#260 into #169).
- 19 update: the deprioritisations, six of which move the Pri cell to P3 now
that `--pri` exists (#183#90#211#212#266#269) and thirteen of which
record the reasoning against a row already at the floor.
- 2 add: the row-outlives-its-own-completion gap, and the residual dead
Outcome cells left by PR #1902.
Every closure premise was re-verified against current main rather than trusted
from the earlier pass, and that mattered: five of them turn on a code comment
carrying the knowledge the row was protecting, and those comments had to be
confirmed present on main before the row could be closed. All five are
(differentials-home, ckb-v2-tokens, bindings, page-secondary-navigation, and
the viewer plan), and #244 is now additionally pinned by a test. #304's premise
was re-measured too: the snapshot is 1 day old with sourceRunId 31329507691.
Two deliberate omissions. #13 is skipped because it already has a pending
update request, and a second one would force an explicit cancellation decision
on someone else's mutation. #313 gets no row: it was fixed in PR #1905, and its
tracking row only ever existed in the closed PR.
The batch was dry-applied before committing: 114 open -> 95, archive 196 -> 220,
and checkIssues passes on the applied result.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DuYJz8hauCsCdx8r4fXiZU
@supabase

supabaseBot commented Aug 13, 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 ↗︎.

@coderabbitai

coderabbitaiBot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

You’ve reached a temporary PR review limit under our Fair Usage Limits Policy.

Your recent review volume is higher than typical usage, so adaptive limits are currently applied.

Next review available in:44 minutes

Your organization has reached its usage spending cap. Adjust your spending cap in the billing tab.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 7a9c3c75-2aa4-435c-aeda-4be592f4433e

📥 Commits

Reviewing files that changed from the base of the PR and between ad0e6d7 and bd222b0.

📒 Files selected for processing (49)
  • docs/branch-review-records/7cdd3521cc3cf9c7a8ee212d24cb85ff3d58122c4f4f65df72503e756190f3cb.record.md
  • docs/branch-review-records/97da85c7931e595b66e1cd8240b5f4f8ea9d058996bfaa12027e14d843d16e8d.record.md
  • docs/outstanding-issues-inbox/05b0c32b-07f7-4ca2-9361-4d7bc5490661.json
  • docs/outstanding-issues-inbox/09b3e12b-c171-49a6-b9d3-3ff627c8f2cd.json
  • docs/outstanding-issues-inbox/0d8735c6-1950-4fef-8880-007063bbf662.json
  • docs/outstanding-issues-inbox/0e47904b-f354-4795-a4fc-dcf8b91c1790.json
  • docs/outstanding-issues-inbox/2a2200d7-83ea-4cff-9969-ae682bad740c.json
  • docs/outstanding-issues-inbox/2a5aadb2-ab0e-4d89-8653-7a704933d533.json
  • docs/outstanding-issues-inbox/439cd410-9311-4d22-8888-9fc15948fea0.json
  • docs/outstanding-issues-inbox/52929edc-53b9-4694-a0e2-1bd3c4b0a41b.json
  • docs/outstanding-issues-inbox/5a2b5bda-41b7-45e9-921b-d87df7ac6af0.json
  • docs/outstanding-issues-inbox/5af9a8bf-6136-4347-bcae-8433c8c9e686.json
  • docs/outstanding-issues-inbox/5bf830df-f89b-4789-a6dc-48284d212171.json
  • docs/outstanding-issues-inbox/67352cea-8989-4e12-b50d-5a775664d8a7.json
  • docs/outstanding-issues-inbox/6a90b0f5-e5e2-46a1-9981-d5886d0e41b8.json
  • docs/outstanding-issues-inbox/721e629e-15df-4b77-a25c-c18200bdca3f.json
  • docs/outstanding-issues-inbox/72929356-5ff3-47da-89a9-82de09602e73.json
  • docs/outstanding-issues-inbox/75a2729c-b0b0-4144-8d99-2c3014d4bcf1.json
  • docs/outstanding-issues-inbox/7f9de4f4-73ca-4ab2-946c-b2ee3c27d708.json
  • docs/outstanding-issues-inbox/7fc8d67c-e2e4-4e6c-9bcf-6ac65fe9adc7.json
  • docs/outstanding-issues-inbox/82377462-2da9-4f8e-b0f5-a421a1ab5fdd.json
  • docs/outstanding-issues-inbox/8c2d3fea-e7a9-41af-a825-62c8109d0248.json
  • docs/outstanding-issues-inbox/8ef1a871-8573-4eab-83fd-213734efd82c.json
  • docs/outstanding-issues-inbox/9424f687-997a-4b52-ab31-b49e462168b6.json
  • docs/outstanding-issues-inbox/9c89036c-733b-41ed-b1f7-92f3daa2940b.json
  • docs/outstanding-issues-inbox/9dd78494-88b6-4d8e-b5c3-28caf91acaba.json
  • docs/outstanding-issues-inbox/a101203a-ae13-46e0-9f76-6e91adf77c9a.json
  • docs/outstanding-issues-inbox/a5c8654c-f466-49b5-86ec-f783c15fc6e7.json
  • docs/outstanding-issues-inbox/a8a73f5a-f4c5-4c97-8c5d-bc93215469bc.json
  • docs/outstanding-issues-inbox/abd14d84-e4d6-4f8c-8384-a97817aafcb7.json
  • docs/outstanding-issues-inbox/b278a991-3122-4662-a835-37dd1d6645cc.json
  • docs/outstanding-issues-inbox/bb14f53c-d36f-48ce-a02d-836aaa107008.json
  • docs/outstanding-issues-inbox/bce5b6bd-4727-4ad5-ac5f-d05a24df43cc.json
  • docs/outstanding-issues-inbox/bf12d7c9-04f8-4095-ba68-0cf6f5736501.json
  • docs/outstanding-issues-inbox/bfc60ffa-e648-47e1-8270-bc1056516239.json
  • docs/outstanding-issues-inbox/c1218846-c99f-4d49-a44c-a97d642926aa.json
  • docs/outstanding-issues-inbox/c2c0104b-02e3-4ae3-8f8a-706c421ea4ce.json
  • docs/outstanding-issues-inbox/cafca1f3-5985-4d5e-9a5e-47cb6d5ffafb.json
  • docs/outstanding-issues-inbox/ce7dfda5-ea3b-4cb8-a992-aec759367f9d.json
  • docs/outstanding-issues-inbox/d34ff313-231a-4e65-93d6-806f5b910846.json
  • docs/outstanding-issues-inbox/da9b65c7-7245-4878-8b75-56c4cbe211cb.json
  • docs/outstanding-issues-inbox/dcb1ba9e-18ea-4ae4-9594-8b7cbb6cbbcc.json
  • docs/outstanding-issues-inbox/e2b81b96-5063-429c-866f-3d42549bd1c8.json
  • docs/outstanding-issues-inbox/e7d125c0-98a4-45db-883e-b19937bd4550.json
  • docs/outstanding-issues-inbox/f1673818-e4fe-4733-9db4-312b11d0279c.json
  • docs/outstanding-issues-inbox/f6953f9c-671e-4bd3-82a5-d5825046cd95.json
  • docs/outstanding-issues-inbox/f6e5fe24-02f4-4a49-beea-2f8bf20e0a0e.json
  • docs/outstanding-issues-inbox/fa725f37-2d49-480e-83bc-23e8bca4c232.json
  • docs/outstanding-issues-inbox/fc44a290-5b8f-4ee4-b233-516774792802.json

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

@chatgpt-codex-connectorchatgpt-codex-connectorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit:0e3ed773cd

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

…ion design
Cancels the original request and re-files it, using the inbox's own supersede
mechanism rather than editing an immutable request.
The original said 'drop the Outcome column (or replace each cell with a
pointer)'. Building it on 2026-08-13 established that dropping the column is
wrong and that two other constraints are load-bearing, none of which are
visible from reading the code:
- The rewrite cannot be a direct edit, and cannot even be code-only. It has
to run inside applyRequestBatch — the function check-ledger-write-discipline
imports — and land in the same commit as a reconcile, or the checker
computes normalise(base) against an un-normalised canonical and fails every
PR.
- Dropping the column makes the queue vanish from /issues, because
issues-report skips any queue row whose cells.length !== 7.
- Composite ID(s) rows must keep their prose. Derivation deliberately skips
them, so they still fall back to the Outcome cell; blanking it leaves them
with nothing. Found by running it: order 17 (#13, #16) rendered empty.
Recording these now because rediscovering them costs another build-and-revert
cycle, which is what this session just spent.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DuYJz8hauCsCdx8r4fXiZU
@BigSimmoChatGPT Codex Connector

Copy link
Copy Markdown
OwnerAuthor

Codex final review summary

Final state

  • Head: c4fe046b7e7017cb73d2fd7341e41109531f32cd
  • Latest main: 984f42c07326d7561ebb3d992a8024173c02aaaa
  • Ahead 6, behind 3. No further base sync: the branch already contained one deliberate sync and the newer base changes are path-disjoint.
  • Clean latest-base merge tree: synthetic merge 77a9682406096cc9f41bf4b53f51ce99dd93eead, tree 08e7bede0c391947f223043e56d4075fc89645db.
  • Auto-merge was not configured and was not changed.

Fixed or dispositioned

  • Fixed P1: added an open consolidated disaster-recovery survivor before #188 and #196–#200 are archived.
  • Fixed P1: updated #169 with the complete machine-local branch, snapshot, server, worktree, and stranded-change inventory before #152, #236, and #260 are archived.
  • Dispositioned P2 #253 with no change: PR #1606 is closed unmerged and the obsolete component is absent from current production code.
  • Added the required content-addressed review record.
  • No additional P0, P1, or reproducible P2 defect remained. Unrelated pre-existing debt was left out of scope.

Independent review and threads

  • CodeRabbit selected all 49 files but was blocked by the organisation review/spending cap. A separate manual adversarial pass reviewed the full delta and found no further material issue after the fixes.
  • All 3 actionable review threads were replied to and resolved: two fixed-head dispositions and one verified no-change disposition.

Verification

  • Targeted offline checks passed for request schemas, UUID/path parity, preserved recovery inventories, post-apply survivor semantics, JSON round-trip, review-record hashing, and Git blob parity. The original unpatched survivor contract was reproduced as failing.
  • Exact-head required checks passed: PR required, Static PR checks, PR mergeability, and PR policy. No required check is missing, pending, unexpectedly skipped, cancelled, or failed.
  • Advisory/security checks passed: SAST, Semgrep, Semgrep ingestion gate, GitGuardian, and Gitleaks.
  • UI, build, Lighthouse, migration, unit, container, and visual jobs were correctly scope-skipped for this ledger-only change and were not counted as passes.

Limitations and residual risk

  • No mounted repository checkout was available, so the complete local npm gate set was not rerun. Targeted offline checks and exact-head hosted repository gates supplied the verification evidence.
  • The fix was pushed as a normal non-force fast-forward. No rebase, history rewrite, deployment, release, auto-merge change, or additional base merge occurred.
  • The branch remains three path-disjoint commits behind main, but the merge tree is clean. This PR queues requests only; canonical-ledger reconciliation remains a later deliberate step.
  • Continued hourly monitoring is unavailable after this active execution environment ends. The final post-push cycle found no head/base movement, unresolved thread, CI blocker, advisory failure, or conflict.

The PR was not merged. Final merge is left to the user.

@BigSimmo
BigSimmo merged commit 5d67c2a into mainAug 13, 2026
24 checks passed
@BigSimmo
BigSimmo deleted the claude/ledger-sweep-inbox-requests branch August 13, 2026 20:15
Sign up for freeto 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.

2 participants

@BigSimmo@claude