Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,32 @@ All notable changes to the CacheKit Protocol Specification.

### Test Vectors

- `tools/python-frame-reference.py generate` now **upserts by vector name**
(LAB-1203): it rebuilds only the vectors the installed `cachekit` wheel can
reproduce and leaves every other committed vector byte-untouched, so dropping
a committed vector is structurally impossible — which deletes the LAB-903
drop-refusal guard and both wheel-direction refusals, and folds the
append-only `generate-bin-twin` mode into `generate` (a protocol 1.1 wheel
rebuilds the `_bin` twin, a legacy wheel the legacy original; whenever both
default-path vectors are present the pair is still proven to differ only in
envelope encoding before writing, and a partial fixture missing either twin
skips that proof with a stderr note rather than aborting).
The ByteStorage envelope codec is no longer reimplemented there: encode/decode
come from `tools/wire-format-reference.py`, the one shared implementation of
the encoding these fixtures pin. Rewritten vectors carry per-vector
`generator` provenance (and the top-level provenance flips to an explicit
"mixed provenance" statement the first time a previously-unstamped vector is
rewritten); `test-vectors/python-frame.json` is byte-unchanged by this
refactor, and a no-op `generate` never rewrites the file. The stdlib `verify`
leg got strictly stronger (expert-panel findings): it now fully decodes each
`payload_envelope` via the shared codec (enforcing the protocol 1.1 flip
exclusions — checksum stays an array of 8 integers, format stays fixstr),
requires the envelope to re-encode byte-identically (pinning the canonical
rmp_serde shortest-form encoding, including the outer fixarray(4) marker),
and pins the declared `compressed_data_hex`/`checksum_hex`/`original_size`/
`format` fields against the actual envelope bytes; the generate-time twin
proof now compares frame prefixes at the byte level, not as parsed JSON.

- 7 legacy/`bin` vector pairs in `test-vectors/wire-format.json` (append-only;
legacy vectors are retained forever as legacy-read proof; fixture
1.0.0 → 1.1.1). The original six `bin` twins were generated by the stdlib-only
Expand Down
Loading
Loading