You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
fix(storage): reconcile inherited append phase bytes before seal #1156
An ordinary public import can commit and reopen, then a subsequent append fails before sealing with phase read bytes and calls disagree. Existing #951 evidence records nonzero inherited authentication/parent-catalog calls paired with zero seal/shape phase bytes. Source inspection on current main d81acdaf12ca261af012143422672661b48a2283 confirms initialization populates cumulative raw byte/call fields but leaves the corresponding phase-byte fields zero; later seal and shape handling does not make pre-seal progress valid.
This is a bounded repair of #951's existing phase-attribution acceptance criteria. #951 remains the close gate for full deterministic admission, S20, conditional S22 and adjacent-rung qualification. This issue introduces no new benchmark or release gate.
Required outcome
Preserve actual observed parent authentication and catalog byte/call numerators, assign each read to its phase exactly once, and keep pre-seal, seal, shape and resumed-checkpoint attribution consistent. Keep qualification fail-closed; do not reset counters, invent byte estimates, suppress append, relax validation, or scan graph-sized data to repair accounting.
Acceptance criteria
A direct Rust facade regression reproduces ordinary import → commit → drop/reopen → append with an initial edge, without resetting process counters; validates progress before seal, seals and publishes, then reopens with exact node/edge counts.
A resumed/interrupted append regression proves checkpoint restoration and newly observed recovery reads reconcile correctly, without omitting or double-counting inherited parent observations.
Assertions cover raw bytes/calls at relevant boundaries and conserve the actual inherited contributions through subsequent phases. Missing/inconsistent evidence still fails qualification.
Existing storage-attribution tests and the affected public construction regressions pass. Run the existing equivalent 1x/2x/4x lifecycle and tiny restart tests as the deterministic integration check; preserve a complete failure census before expanding scope.
Native child of and blocker for #951. The known failure is already documented in #951; this child isolates the verified implementation blocker so its focused PR can close accurately while host qualification remains outstanding.
Problem
An ordinary public import can commit and reopen, then a subsequent append fails before sealing with
phase read bytes and calls disagree. Existing #951 evidence records nonzero inherited authentication/parent-catalog calls paired with zero seal/shape phase bytes. Source inspection on current maind81acdaf12ca261af012143422672661b48a2283confirms initialization populates cumulative raw byte/call fields but leaves the corresponding phase-byte fields zero; later seal and shape handling does not make pre-seal progress valid.This is a bounded repair of #951's existing phase-attribution acceptance criteria. #951 remains the close gate for full deterministic admission, S20, conditional S22 and adjacent-rung qualification. This issue introduces no new benchmark or release gate.
Required outcome
Preserve actual observed parent authentication and catalog byte/call numerators, assign each read to its phase exactly once, and keep pre-seal, seal, shape and resumed-checkpoint attribution consistent. Keep qualification fail-closed; do not reset counters, invent byte estimates, suppress append, relax validation, or scan graph-sized data to repair accounting.
Acceptance criteria
Relationship
Native child of and blocker for #951. The known failure is already documented in #951; this child isolates the verified implementation blocker so its focused PR can close accurately while host qualification remains outstanding.