Skip to content

Retention's page, after the review found the checkpoint launderable - #36

Merged
arpanghoshal merged 1 commit into
v0.11/5-enforcement-coveragefrom
v0.11/3a-retention-review
Sep 14, 2026
Merged

arpanghoshal merged 1 commit into
v0.11/5-enforcement-coveragefrom
v0.11/3a-retention-review

Conversation

@arpanghoshal

Copy link
Copy Markdown
Member

Pairs with ctrlrun#205, and stacks on #34, which is still open.

#34 described retention as it was written. An independent review of the kernel then found seven defects in it, and two of them are things that page asserts.

The checkpoint. The page said a forged checkpoint is narrowed by the anchor. It was not. Supersession was decided from the union of what the provider returned and what the store's own anchors table held, so one INSERT beside the forged checkpoint row bought it, and the hash in that row was never read. The paragraph now says what is true after the fix, including the half that was always true: anyone who can write receipts can write both rows, and what narrows that is the provider, which is outside the store.

The receipts. A refused prune and a successful one left byte-identical records, and --older-than was in neither. The prune now leaves two, a request and its outcome, and the page has a short section saying so.

The "verified by" line moves to the tests that actually bind. T547b passed throughout the laundering hole, because it writes the checkpoint row and no anchors row beside it.

Also here: CLAIMS.md's line numbers follow the CLI's new lines, by scripts/repoint-claims.py; the readiness block is re-measured rather than incremented, 6,192 to 6,210, against a checkout carrying the extras CI installs and not the local one with psycopg.

all checks passed             (ruff, ruff format, 1727 passed)
snippets: 98 runnable block(s) in 198 documents, 0 failed
lint: 198 document(s), 0 finding(s)
links: 192 document(s), 0 broken, 0 planned
capabilities: 26 entries, 0 drifted copy(ies)
readiness: 0 drifted

🤖 Generated with Claude Code

@coderabbitai

coderabbitai Bot commented Sep 14, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: 4d859e74-cf3c-4b6f-b215-4298794f6ff4

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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.

kernel then found seven defects in it, and two of them are things this
page asserts.

**The checkpoint.** The page said a forged checkpoint is narrowed by the
anchor. It was not: supersession was decided from the union of what the
provider returned and what the store's own `anchors` table held, so one
INSERT beside the forged checkpoint row bought it, and the hash in that
row never had to be a hash. Supersession now comes from the provider
alone, and the anchor's `(seq, hash)` must be the pair the checkpoint
claims. The paragraph says that, including the half that is still true:
anyone who can write receipts can write both rows.

**The receipts.** A refused prune and a successful one left byte
identical records, and `--older-than` was not among them, so the record
of a refusal was worth nothing. The prune now leaves two, a request and
its outcome, and the page has a short section saying so.

The "verified by" line moves to the tests that actually bind. `T547b`
passed throughout the laundering hole, because it writes the checkpoint
row and no anchors row beside it; `T550` and `T559` are the ones that
fail when supersession is decided locally.

`CLAIMS.md`'s line numbers follow the CLI's new lines, and the readiness
block is re-measured, not incremented: 6,210 against a checkout with the
extras CI installs.

Signed-off-by: arpan <contact@arpanghoshal.com>
@arpanghoshal
arpanghoshal force-pushed the v0.11/3a-retention-review branch from 3f53ea0 to e704dd0 Compare September 14, 2026 17:59
@arpanghoshal
arpanghoshal changed the base branch from v0.11/3-retention to v0.11/5-enforcement-coverage September 14, 2026 17:59
@arpanghoshal
arpanghoshal merged commit f102863 into v0.11/5-enforcement-coverage Sep 14, 2026
4 checks passed
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.

1 participant