3.4 KiB
Activity Core: preserve historical identities while projecting current work
The October 4 rmgr sync --path /home/worsch/activity-core --push failure occurs
before any HTTP reconcile call. ensure_missing_work_record_identifiers() rejects
seven workplan labels as invalid: custodian-WP-0001, 0002, 0003, 0003a,
0003b, 0003c, and 0004. There are no reported identity collisions. This is
the existing owner request 6bf8ca98-ada1-43ab-83e7-207d4ab195fe, already referenced
by ACTIVITY-WP-0042-T08; RMGR-WP-0014/0015 completion does not cover these labels.
All seven files are closed historical evidence (legacy done, or archived)
and already carry UUID bindings. The primary snapshot confirms four retained
workplans: foundation e22516cc-4fdf-4dad-a928-a9e04a9fa7c7, triggers
3a4f47d9-8bc1-434e-acb4-bed5d4dacda0, event bridge
b4eb45a9-69e3-4ab0-b00c-67a53c3117c5, and ops
759b1255-aa78-42b5-8fab-c5fcf168f5f4. The archived 0003 container and split
0003a/0003b/0003c files share the event-bridge UUID; the owner must explicitly
audit and preserve that historical mapping rather than treating them as four
new workstreams.
Minimal supported repair belongs to Repo Manager: extend its bounded historical binding-preservation path for these exact activity-core source records, terminal statuses and existing valid UUIDs. Keep strict conformance reporting, reject new or active uses, missing bindings and conflicting claims, and test that no source label/UUID or primary identity changes. If registry grandfathering is used, update the authoritative canon and Repo Manager's machine copy consistently; do not introduce a general lowercase-prefix allowance. Verify the shared event-bridge mapping in a read-only derive/merge test against the actual primary snapshot.
After owner acceptance, use the existing supported route:
uv run --project /home/worsch/repo-manager rmgr sync --path /home/worsch/activity-core --push
That route verifies clean authoritative files, preserves existing managed IDs,
checks the pushed Forge commit and primary/railiance01 identity, then calls
POST /repos/activity-core/work-record-projection/reconcile with the exact
expected_commit and retirement acknowledgement false. Validate the returned
exact-commit primary receipt and independently read back ACTIVITY-WP-0042-T05/T08
dependency/qualifier fields by UUID.
Do not rename legacy workplans, allocate replacement UUIDs, bypass the rejected identifier gate with an ad-hoc API call, acknowledge retirements, or claim current projection from a successful Git push alone. No source or runtime changes were made for this recommendation.
Read-only receiving proof subsequently failed preservation. The current pure
derive/diff path, evaluated against the actual primary snapshot, reports one
missing legacy workplan (custodian-WP-0003c) and 40 stale legacy tasks. The
historical files store tasks in frontmatter YAML lists, which the current Forge
parser omits. This prevents a registrar-only repair from proving safe normal
projection. Retain owner request 6bf8ca98-ada1-43ab-83e7-207d4ab195fe; do not apply
the prepared preflight-only patch or call normal sync restored. Receiving
preservation needs owner work before the next normal reconcile can proceed.
Proof: /tmp/activity-core-projection-read-proof.json and its read-only generating
script /tmp/activity-core-projection-read-proof.py. Neither writes to the hub.