0%

Immutable Release Store

Goal

  • Install complete harness releases once into a locked content-addressed user-local store.

Files

  • MODIFY scripts/harness_dist/include_resolve.py
  • MODIFY scripts/harness_dist/recorded_fingerprint.py
  • CREATE scripts/harness_dist/release_store.py
  • MODIFY scripts/harness_dist/release_manifest.schema.json
  • CREATE scripts/harness_dist/tests/test_release_store.py

Work Items

  • Preserve canonical_fingerprint unchanged as the pre-tailor artifact-set digest; embed it in ReleaseManifest and compute release identity once over canonical validated manifest serialization.
  • Stage, fsync, verify, and atomically publish immutable releases under the XDG user-data root while refusing mutation of an existing digest directory.
  • Serialize concurrent install and publish operations with a store lock; quarantine interrupted or corrupt staging directories with receipts.
  • Verify every selected release on read; require user-only local permissions and authenticated signatures for the first and every later remote fetch.

Verification

  • Write failing positive, negative, interruption, concurrency, and idempotency cases before implementation.
  • Pin the consumer-visible outcome through the real CLI/runtime entry point.
  • Run focused pytest and the owning runtime self-test with a 150-second test timeout.
  • Run python -m scripts.harness_dist verify --root . when distributed artifact classification changes.