Repository navigation
Conversation
This was referenced Oct 15, 2026
forhappy
force-pushed
the
codex/retained-browse-fsck
branch
from
October 15, 2026 16:04
10314c4 to
70a9a78
Compare
forhappy
changed the base branch from
codex/captured-browse-retention
to
codex/source-retention-fsck-snapshot
October 15, 2026 16:04
This was referenced Oct 15, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A healthy current catalog does not prove that cold browse captures retain valid index pages and original Git sources. Full fsck must authenticate those dependencies, and it must keep their lifetime/readiness identity through payload verification and the final snapshot check. The new regression changes a browse head during a real xorb GET and observes a false clean
Ok([])on the previous combined implementation.Authenticate the retained browse chain and completely verify its graph, path-state, physical-index pages and original source bodies. Verify each shared source once during that phase, including superseded ref-only runs. Return an opaque verified control capture and retain it lazily in the checker. Later checks revalidate only the bounded lifetime/readiness records: valid movement requests a retry; invalid records fail validation. Mirror pointer-recipe probes do not initialize the full browse-maintenance proof.
Stacked on #599, which supplies the corresponding original-source lifetime capture on #597. This replaces the earlier #594 branch based on #591. The add-cache performance change in #592 stays separate. No serialized formats, dependencies, configuration or lockfiles change. The user-owned advisor plan and both large-file audit reports are excluded.
Validation on exact PR head 70a9a78:
The parent source-retention fix now has a separately audited real RustFS result: 532 publications, a source aged beyond the explicit one-hour GC cutoff, cold pinned catalog answers after GC, independent 64 MiB reconstruction, and missing-source detection/exact restoration. That qualifies #597 only. It is not live proof of this PR or of the final combined 10 GiB workload.
Remaining gates: combined 10 GiB pattern/order/compaction coverage, concurrent pruning/publication, rollout/backfill and representative S3 latency remain required. The entropy/native-first 10 GiB case with cold capture, 532 publications and real one-hour-grace GC has started; no result is claimed yet. The prior isolated immediate-restore failure remains unexplained. The parent stack also has a stale rusqlite policy expectation awaiting the explicit approval required by AGENTS.md. No expected-policy record or lint gate is disabled here. This draft is not ready to merge.
Evidence map:
Is this the best fix? Keeping the verified capture at the existing checker boundary covers later phases without adding writer locks, reader leases, a second lookup path, repeated immutable-body scans or mirror workload. The production growth supplies complete retained-dependency verification and a small cross-phase proof; most of the diff is regression coverage.
Combined native qualification (909a40a2559):