# Evolution 72.1 — Cross-host, reboot, long-horizon and benchmark extension

This directory extends the prior E72 work (`1c928a4ca..99d5f5972`, preserved in `history/`). The prior E72
reported cross-host failover, host reboot, and 1 h+ missions as BLOCKED. This extension implements and measures
them, without rewriting the earlier evidence.

## New code

| Path | Purpose |
|---|---|
| `cain_workforce/e72/crosshost.py` | PostgreSQL shared state, signed grants/tickets, leases, fencing, idempotent results, event chain |
| `cain_workforce/e72/coordinator_daemon.py` | HTTP coordinator, leader lease, node protocol |
| `cain_workforce/e72/node_daemon.py` | remote node process (systemd on host B) |
| `cain_workforce/e72/longrun.py` | durable SQLite mission controller and accounting |
| `cain_workforce/ops.py` | added `repo_audit` operation |
| `scripts/evolution72/crosshost_setup.py` | deployment of the dedicated PostgreSQL container and systemd units |
| `scripts/evolution72/crosshost_demo.py` | cross-host M1, failover M2, reboot M4, expired-grant M3, probes |
| `scripts/evolution72/long_mission.py` | one-hour durable mission |
| `scripts/evolution72/benchmark.py` | three-model held-out benchmark + tool-assisted system |
| `scripts/evolution72/endurance.py` | cluster-restart endurance campaign |
| `scripts/evolution72/economics.py` | measured economics and resource accounting |
| `scripts/evolution72/memory_eval.py` | memory v2 (defect-derived held-out cases) |
| `scripts/evolution72/final_audit_v2.py` | final audit generator |
| `scripts/evolution72/verify_e72_offline.py` | verifier extended for E72.1 evidence |

## New tests

- `tests/test_e72_crosshost.py` — signatures, expiry, long-run completion, checkpoint tamper, resume, shipped
  cross-host evidence.

## Status summary

| Capability | Status |
|---|---|
| Cross-host shared state (PostgreSQL, two hosts) | PASS |
| Leader failover with fencing | PASS |
| Real host reboot recovery | PASS |
| Expired authority refused after reboot | PASS |
| One-hour durable mission | PASS (duty-cycled; productive time reported separately) |
| Verified endurance campaign with cluster restart | measured; targets 500–10,000 h NOT achieved |
| Three-model held-out benchmark | measured; PARTIAL (small constructed set) |
| Remote model execution | BLOCKED (no credential) |
| 6/24/72/168 h missions | NOT ATTEMPTED |
| Third-party audit | none |

See `FINAL_AUDIT.md` and `artifacts/e72/FINAL_AUDIT_V2.json` for the measured numbers.
