Implement a transactional StoreReference registry with project/root identity, release digest, lifecycle state, lease/fencing data, registration/unregistration, and abandoned-project reconciliation.
Register exact release and resolved-manifest StoreReference values for new workflow roots through the completed registry; active roots never re-resolve a pin.
Compute a consistent GC mark snapshot from registered project pins, active/pending workflow roots, global default, rollback generations, and live install transactions; collect only unmarked releases.
Expose the StoreReference query/update API consumed by workflow-engine-rework and serialize GC with install/activation without disabling collection for unrelated live roots.
Add the activation-ledger migration module, bump CURRENT_HARNESS_VERSION, update the migration registry and release metadata, and prove a stale consumer advances one durable step at a time.
Implement rollback as an atomic pointer transition only; reject rollback targets older than irreversible applied project migrations unless an explicit reverse migration exists.
Verify release and projection digests before every workflow start and recovery; quarantine tampered releases without substituting a mutable alias.
Prove crash recovery for interrupted install, activation, GC, rollback, and concurrent projects pinned to different releases.
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.