diff --git a/workplans/CUST-WP-0068-cache-only-work-record-recovery.md b/workplans/CUST-WP-0068-cache-only-work-record-recovery.md index 84181c7..192c5d4 100644 --- a/workplans/CUST-WP-0068-cache-only-work-record-recovery.md +++ b/workplans/CUST-WP-0068-cache-only-work-record-recovery.md @@ -220,14 +220,30 @@ investigation, not a work list. Order of work: -1. Fix the ordering so registration binds in one pass — either the registrar - syncs bindings after minting, or the session protocol requires the second - `fix-consistency` run explicitly. The former is preferable; a protocol step - everyone must remember is how this gap opened. -2. Re-sync bindings fleet-wide and re-measure. Also explain - `bindings: synced 63/73` — ten workplans did not bind and the reason is - unknown. -3. Only then apply `ADR-010`'s orphan rules to whatever genuinely has no file: +1. **Done (2026-08-25).** The registrar now syncs bindings after minting, in + the same pass (`repo-manager` `bdb981b`). Chosen over adding a step to the + session protocol: a step everyone must remember is how this gap opened. + Verified end to end — `ADHOC-2026-08-25` went from file to registered to + bound with no second `fix-consistency` run. + + It binds on the `noop` path too. Without that, a record whose earlier bind + failed would stay unbound forever, because every later run returns early. + Binding never fails the registration: identifiers are already minted and + committed, so a bind can be retried. Two further findings are captured in + tests — the schema validates `status` against the enum *without* + normalising, so a single legacy value `422`s the whole batch, and status is + now sent only when already canonical. + +2. **`bindings: synced 63/73` is explained.** The unbound ten are workplans + whose identifiers central does not hold — the cache-only records this + workplan exists to recover. The number will fall as `T02`–`T06` land, and is + a progress indicator rather than a fault. A run against `the-custodian` + after the fix reports `updated 64, sent 74, unbound 10`. + +3. Re-sync bindings fleet-wide and re-measure the 278. Most are expected to be + this same ordering gap and should resolve without any content change. + +4. Only then apply `ADR-010`'s orphan rules to whatever genuinely has no file: open hub-first records are `ADR-001` violations needing a file written or an explicit drop; closed ones may be retained as provenance where cheap.