Skip to content

Reject missing device-binding verification units - #80

Open
gspark-etri wants to merge 2 commits into
feat/75-binding-contractfrom
exp/79-binding-verification
Open

gspark-etri wants to merge 2 commits into
feat/75-binding-contractfrom
exp/79-binding-verification

Conversation

@gspark-etri

@gspark-etri gspark-etri commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

The binding conformance kit previously accepted ok: true with units: [] even when an apply plan required writes. It now requires every planned artifact interval exactly once, validates operation/mode/manifest, interval types and bounds, byte digests, and optional nonnegative integer bytes_written. Device byte counts remain independent of artifact interval lengths. Reload apply and rollback derive whole-file intervals from target and base independently, including empty files; identical unit plans may legitimately return an explicit empty list.

Twelve stdlib regressions include an end-to-end corrupted fake response that passed before this fix. Review caught empty-file and byte-accounting regressions; both were reproduced, fixed and independently re-reviewed. Root local12tests pass; fake B1 and B2 each pass all4 goldens. Exact-head39696e7 CI41054143706 read green: gofmt/vet/race,12 regressions, fakeB1/B2, CLI build, both SeaweedFS/VersityGW backend conformance and CLI round trips. Python3.6 grammar checked. No storage/schema/vendor code changes.

Stacked on PR #76 at2d84ac3. PR76's author branch remains unchanged; after #76 lands, retarget this PR to main. Addresses the coverage portion of #79. Runtime-valid fixture support and real RNGD owner/readback/retained-rollback remain follow-up work. A passing fake kit is not native B2 conformance.

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