Skip to content

fix(publication): authenticate stable checkpoint retirement - #52

Merged
rynfar merged 1 commit into
pylonfrom
fix/publication-stable-proof-retirement
Sep 3, 2026
Merged

fix(publication): authenticate stable checkpoint retirement#52
rynfar merged 1 commit into
pylonfrom
fix/publication-stable-proof-retirement

Conversation

@rynfar

@rynfar rynfar commented Sep 3, 2026

Copy link
Copy Markdown

Problem

PR #50's hosted Pack A/B review exposed two final stable-proof gaps: checkpoint hardlink retirement can cross the last 2 -> 1 or 1 -> 0 boundary during the proof, and the provisional current checkpoint can disappear or reappear while the journal root is scanned.

Fix

  • authenticate retirement with the exact checkpoint SHA-256 plus frozen, exact-key stat evidence for dev, ino, size, mtimeMs, ctimeMs, and nlink
  • accept only one monotone 2 -> 1 or 1 -> 0 transition on the same inode and bind the final stable proof to the immediate successor
  • close the proof namespace across initial, proof, and final directory reads, including removed/reappeared checkpoints and required epoch/temporary directories
  • make provisional-current scan gaps fail unless the disappearance is authenticated, and keep generic read/stat failures terminal rather than treating them as retirement evidence

Verification

The reviewed evidence before finalization was clean:

  • 144 child-process rotation cases
  • focused and full publication tests
  • parallel suite, release x10, App x6, and check
  • two independent code reviews

Built with OpenAI Codex GPT-5.6 using Prime Agent.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

@rynfar
rynfar merged commit 68603ed into pylon Sep 3, 2026
22 checks passed
@rynfar
rynfar deleted the fix/publication-stable-proof-retirement branch September 3, 2026 18:56
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