Widen the residual contemplation/vault content-ids to full 256-bit digests and remove the last default=str / bare-tobytes byte-order gaps (ADR-0244 §2.7 / ADR-0245 §2.3). Content-addresses must not floor collision resistance or silently collapse distinct payloads: - core/contemplation/schema.py: _sha256_16 → _content_digest (full 64-hex); finding_id + run_id no longer 16-hex truncated (was 2^32 birthday floor). - core/contemplation/plan_preflight.py: _plan_substrate_hash full digest. - core/contemplation/miners/articulation_quality.py: drop default=str (as_dict is JSON-native — ints/str/python-float ratios/None — so a non-serializable field now fails closed instead of str()-collapsing) + full digest. - core/physics/holographic_vault.py: _default_mode_id full digest AND explicit little-endian float64 coercion (was bare .tobytes() — implicit host endianness). Content-addresses only; no persisted-id migration (old ids stay valid, new ones widen). Tests assert determinism + content, not id length, so no cascade. Verified: 334 contemplation/vault/miner tests pass (determinism + content intact). Full smoke + fast lane run at Phase 5 close. |
||
|---|---|---|
| .. | ||
| miners | ||
| __init__.py | ||
| __main__.py | ||
| contract.md | ||
| plan_metrics.py | ||
| plan_preflight.py | ||
| runner.py | ||
| schema.py | ||
| snapshot.py | ||
| wave_seam.py | ||