Design-discussion anchor for the interop/v2 compressed-values profile RFC (workspace ticket LAB-1135) — restoring the 2025-11-14 RFC's descoped vision of compressed AND encrypted cross-SDK values, as a versioned additive profile.
interop/v1 (#1) deliberately shipped without compression: values are bare MessagePack and the encryption AAD pins compressed = "False" (spec/interop-mode.md). That surface is frozen. The spec's own versioning rule ("versioning-by-mode-name is sufficient") sanctions a new mode: interop/v2, which wraps values in a minimal container carrying an LZ4-block-compressed (or uncompressed) payload, and pins the AAD compressed component to the frozen "True" token (#12) as a per-mode constant.
Design constraints carried in from LAB-1129 / LAB-1135:
Deliverable: spec/interop-v2.md + generated, independently cross-checked test vectors (tools/interop-v2-reference.py stdlib generator + tools/interop-v2-crosscheck.mjs verifier), following the interop/v1 tooling pattern. Spec PR to follow on this issue.
Design-discussion anchor for the interop/v2 compressed-values profile RFC (workspace ticket LAB-1135) — restoring the 2025-11-14 RFC's descoped vision of compressed AND encrypted cross-SDK values, as a versioned additive profile.
interop/v1 (#1) deliberately shipped without compression: values are bare MessagePack and the encryption AAD pins
compressed = "False"(spec/interop-mode.md). That surface is frozen. The spec's own versioning rule ("versioning-by-mode-name is sufficient") sanctions a new mode: interop/v2, which wraps values in a minimal container carrying an LZ4-block-compressed (or uncompressed) payload, and pins the AADcompressedcomponent to the frozen"True"token (#12) as a per-mode constant.Design constraints carried in from LAB-1129 / LAB-1135:
bin(protocol 1.1, LAB-783: StorageEnvelope compressed_data → msgpack bin encoding (protocol 1.1) #44) is the normative byte encoding; the legacy array-of-ints leniency gets an explicit accept/reject decision.Deliverable:
spec/interop-v2.md+ generated, independently cross-checked test vectors (tools/interop-v2-reference.pystdlib generator +tools/interop-v2-crosscheck.mjsverifier), following the interop/v1 tooling pattern. Spec PR to follow on this issue.