Repository navigation
Conversation
V2 stores Git packs and indexes inside capsule runs. Target those ranges and compare authority bytes directly: damaged discovery controls cannot prove unchanged refs through ls-remote.
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.
The add/commit/push smoke stops at its first immutable-data fault because it searches for standalone
.packand.idxkeys. The current stack stores both inside a capsule run. Exercise that real storage boundary: delete the complete capsule, corrupt only its Git pack range, and corrupt only its Git index range.Stacked on #588. Draft while the complete CLI rerun and broader initiative gates remain pending. No product Rust code, dependency, or inventory baseline changes.
Behavior and invariants
ls-remoteis not a valid mutation observation. The remote-authority preservation invariant remains explicit.Validation
.packfixture discovery, before any mutation.ls-remotealso returnedCRAB-E0020, exposing the obsolete observation method.89bdbfbc67c7042d5bd866dfa9c6615b213bfe8fb80195885e4a2108defa7b8a.433bba8e553CLI; its SHA-256 remains1571029a817d09c53ae32e3c899651886c9b2545eb0b33675fd5ce339f7d4010. This follow-up changes only the harness, its tests and documentation.cross-repository-remote-duplicate-add-records-proof-bearing-remote-authority. The consumer staged one local prepared payload (59 chunks) and zero remote-authority chunks. Source/contract diagnosis is required; that assertion is unchanged. Do not treat the focused replay as a full-suite or 10 GiB result.Review evidence
AddCommitPushSmoke.run->run_capsule_failure_case; qualification-only behaviorcrab-metadataCapsuleRunfooter v4 andPackMemberDescriptor/PackRange; actual published fixture contains pack bytes at 315..713 and index bytes at 713..1897.pack/.idx; this stack has switched physical publication to capsule runsIs this the best fix? Target the format the publisher actually emits and observe unchanged authority independently of unavailable data. Restoring standalone artifacts or adding a legacy suffix fallback would create a second storage path solely for the fixture.
Captured-reader GC retention, the parent SQLite source-policy mismatch, final integrated 10 GiB pattern/order/failure qualification, full blame semantics, and representative S3 latency/scaling evidence remain unresolved initiative gates. No broader completion claim.
Cross-repository failure isolated
The same unchanged authority assertion fails in a fresh-bucket, case-only RustFS replay: 27 commands / 17 checks, with 72 prepared local chunks and zero recipe remote chunks. A new local, cache-free regression exercises real streaming staging, native Git commit, capsule push, and a different repository’s classifier. Source publication succeeds; classification returns
[None]. Test runtime 0.80 seconds after compilation. The regression is retained locally, not pushed as a knowingly failing test.This is a missing publisher/reader integration: capsule publication writes the per-repository pointer catalog but does not publish the shared committed-chunk index queried by add. That index’s existing source validator requires a released manifest/shard-list anchor. Negative-cache invalidation alone is insufficient. Released v1.2.4 contains the receipt contract and does not contain capsule push.
The correction must carry the verified canonical object’s ETag/version and both digest identities across publication: catalog
body_digestcovers the whole encoded xorb;OriginReceipt.payload_digestcovers its payload.create_or_read_immutablecurrently discards the write/read object identity. A later HEAD cannot retrospectively bind verification to that object version. No preliminary codec or unverified origin-proof shortcut has been wired into production. The complete smoke remains red.