feat: finish register receiving and authority routing

Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a023c0-a0a3-7c03-b395-5a0d2757214d
This commit is contained in:
tegwick 2026-08-21 23:15:48 +02:00
parent 6d134425df
commit d103955217
28 changed files with 970 additions and 48 deletions

View file

@ -35,8 +35,18 @@ confirmed live hub-first workplans in this snapshot.
The 217 closed rows remain cheap historical provenance. They need not be
reconstructed as files, but the cache-rebuild procedure must export or retain
them before replacing the local database. Repairing the seven live bindings is
the remaining prerequisite for T07.
them before replacing the local database.
## Repair result
All seven bindings were submitted together to the preferred
`PUT /workplans/index/bindings` route and the hub acknowledged
`{"updated":7,"received":7}`. A fresh query now finds exactly 217 unbound rows:
201 `finished`, 16 `archived`, and **zero live**. No repository file or
lifecycle status was changed. The broad `fix-consistency --all` path was not
used for the repair because it aborts while refreshing the brief for stale
registered path `/home/worsch/inter-hub`; the targeted binding route avoided
coupling this data repair to that unrelated registry defect.
## Reproduction

View file

@ -0,0 +1,40 @@
# RMGR-WP-0008 SBOM receiving and cutover evidence — 2026-08-21
Repo Manager now derives an SBOM snapshot from repository-owned lockfiles and
the reviewed `sbom-tools.yaml` escape hatch. The snapshot includes source path
and SHA-256 provenance, Git revision, canonical UTC generation time, ecosystem,
direct/development flags, licence grouping, and direct production copyleft
findings.
## Live projection reconciliation
The workstation State Hub held 22 historical snapshots for 18 repositories.
For migration planning, only the newest snapshot per repository was compared
with a fresh Repo Manager scan of its registered local path:
- 18 repositories scanned; 0 parse failures;
- 9 entry counts matched exactly;
- newest State Hub projections totalled 2,659 entries;
- current authoritative lockfiles produce 1,565 entries.
The differing counts are expected evidence of source drift, not rows to copy:
the stored snapshots date from March through July 2026, while the rescan reads
the current checked-out lockfiles. Copying the 2,659 cached rows into repository
records would reverse the authority boundary. Cutover therefore rebuilds each
repository snapshot from its current lockfiles and retains the old State Hub
snapshot ids/timestamps as historical provenance until the retirement retention
gate permits deletion.
## Compatibility contract
State Hub's retirement adapter calls `rmgr sbom scan --path <repo> --slug
<slug>` and receives `repo-manager.sbom-snapshot.v1` JSON. Route-level tests
pin that invocation and response shape. The adapter is read/derive-only: it
does not commit, push, or mutate a register file.
## Verification
- `uv run ruff check src tests`
- focused SBOM and compatibility-adapter tests
- live `repo-manager` scan: 39 entries, no parse errors, canonical `Z`
timestamp, Git revision present, and no direct production copyleft finding