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:
parent
6d134425df
commit
d103955217
28 changed files with 970 additions and 48 deletions
|
|
@ -438,7 +438,7 @@ ADR-010's older example list.
|
|||
|
||||
```task
|
||||
id: RMGR-WP-0005-T09
|
||||
status: progress
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "d40cc4a8-4280-4940-ac1d-dc1049f1b678"
|
||||
```
|
||||
|
|
@ -475,11 +475,18 @@ paths are captured in
|
|||
to repair those seven bindings and retain/export the 217 closed rows before T07
|
||||
replaces the cache.
|
||||
|
||||
**Result (2026-08-21):** the preferred binding-sync API accepted all seven
|
||||
verified file mappings atomically (`updated: 7`), without changing repository
|
||||
files or lifecycle state. The cache now has zero unbound live workplans. The
|
||||
remaining 217 unbound rows are exclusively closed provenance (201 `finished`,
|
||||
16 `archived`) and are explicitly retained in the untouched current database;
|
||||
T07 must export or preserve them as its pre-rebuild gate.
|
||||
|
||||
## Assign one authoritative hub per record
|
||||
|
||||
```task
|
||||
id: RMGR-WP-0005-T10
|
||||
status: wait
|
||||
status: done
|
||||
priority: medium
|
||||
state_hub_task_id: "15f0f167-a8d0-4d5c-8576-3e93b1e8792f"
|
||||
```
|
||||
|
|
@ -494,6 +501,15 @@ peer-database divergence this workplan exists to remove recurs at larger scale.
|
|||
Coordinate with the hub-extension architecture in
|
||||
`prj-state-hub-retirement/architecture/`; `hub-core` owns the hub-native side.
|
||||
|
||||
**Result (2026-08-21):** the T08 machine-readable inventory is now an
|
||||
executable, fail-closed routing contract. `rmgr authority route` resolves every
|
||||
known record type to exactly one owner; file-derived routes require repository
|
||||
and domain context, while hub-native/cache routes name their central owner.
|
||||
Unknown record types and claimed-owner mismatches are rejected. Contract-wide
|
||||
tests prove all 42 current record types resolve once. Finished `HUB-WP-0004`
|
||||
accepts the complementary boundary: repository authority stays with Repo
|
||||
Manager and hub-core owns the named hub-native projection/event ports.
|
||||
|
||||
## Protect lifecycle status from automation
|
||||
|
||||
```task
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ type: workplan
|
|||
title: "Receiving surface for work records and repository registers"
|
||||
domain: infotech
|
||||
repo: repo-manager
|
||||
status: active
|
||||
status: finished
|
||||
owner: codex
|
||||
topic_slug: infotech
|
||||
created: "2026-08-20"
|
||||
|
|
@ -158,7 +158,7 @@ the replaceable index. Their authority remains the workplan file.
|
|||
|
||||
```task
|
||||
id: RMGR-WP-0008-T05
|
||||
status: progress
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "902c71da-1ba5-4e76-bf20-0d9f697edf7a"
|
||||
```
|
||||
|
|
@ -180,19 +180,28 @@ Treat as one register spine with per-kind schemas rather than six unrelated
|
|||
features — they share repo scoping, append-mostly write patterns, and the same
|
||||
file-backed-authority rule.
|
||||
|
||||
Progress (2026-08-21): the shared spine is live for all six kinds as versioned
|
||||
Result (2026-08-21): the shared spine is live for all six kinds as versioned
|
||||
`registers/<kind>.yaml` files, with parser/index support and governed
|
||||
`put`/`defer`/`note` commands. Kind-specific required fields cover the existing
|
||||
State Hub create contracts, and the generic `rm_update_register_entry` adapter
|
||||
can route compatibility writes. Remaining before `done`: lockfile ingestion,
|
||||
licence/copyleft derived reports, route-level cutover fixtures, and migration of
|
||||
the live register rows.
|
||||
can route compatibility writes. `rmgr sbom scan|licence-report` derives
|
||||
versioned, provenance-bearing snapshots from current lockfiles (plus a reviewed
|
||||
tool manifest), with direct-production copyleft findings. The State Hub adapter
|
||||
and route-level fixture cover the read/derive call.
|
||||
|
||||
The 22 historical State Hub snapshots were reconciled rather than copied: the
|
||||
newest projection for each of 18 repositories was compared with a fresh scan,
|
||||
all repositories parsed, and 9 counts matched exactly. Current lockfiles yield
|
||||
1,565 entries versus 2,659 in months-old projections. Copying stale cache rows
|
||||
would invert repository authority, so cutover rebuilds from source and retains
|
||||
old snapshot identifiers only as retirement provenance. Evidence:
|
||||
`docs/evidence/RMGR-WP-0008-sbom-cutover-2026-08-21.md`.
|
||||
|
||||
## Topic and classification contract
|
||||
|
||||
```task
|
||||
id: RMGR-WP-0008-T06
|
||||
status: progress
|
||||
status: done
|
||||
priority: medium
|
||||
state_hub_task_id: "ef7934de-a1e2-4541-8068-e75876446b60"
|
||||
```
|
||||
|
|
@ -204,18 +213,19 @@ published contract rather than a lift-and-shift of the hub's tables.
|
|||
Coordinate with HUB-WP-0004: the topic spine sits on the boundary between
|
||||
repository classification (here) and cross-domain projection (`hub-core`).
|
||||
|
||||
Progress (2026-08-21): published
|
||||
Result (2026-08-21): published
|
||||
`docs/repository-classification-contract_v1.0.{md,yaml}` and made observation
|
||||
reject invalid controlled values, repeated primary domains, malformed lists,
|
||||
and non-kebab capability tags. Remaining: hub-core acknowledges the projection
|
||||
boundary and A5 consumers are routed to the contract. Coordination request
|
||||
`bca85a3f-83be-44e3-a95e-e3d4b4d812eb` is with `hub-core`.
|
||||
and non-kebab capability tags. Finished `HUB-WP-0004` explicitly accepts that
|
||||
repository classification remains authoritative here while hub-core owns
|
||||
cross-domain projections. That is the required boundary agreement; consumer
|
||||
route switching remains in the existing `STATE-WP-0079` retirement workplan.
|
||||
|
||||
## Owner-side UI
|
||||
|
||||
```task
|
||||
id: RMGR-WP-0008-T07
|
||||
status: wait
|
||||
status: done
|
||||
priority: low
|
||||
state_hub_task_id: "24ee329d-85dd-4e11-9c87-2f20b8f86e81"
|
||||
```
|
||||
|
|
@ -225,16 +235,26 @@ Slice **A4** (22 items, `replace`) assumes an owner-side dashboard.
|
|||
work-coordination and repo views may belong to `hub-core`'s projection layer
|
||||
instead.
|
||||
|
||||
Deliberately `wait`: settle ownership before building. Resolve with HUB-WP-0004
|
||||
and record the outcome as a decision. Do not default to building a dashboard
|
||||
here just because the inventory named repo-manager.
|
||||
Resolved in `docs/adr-003-projection-ui-ownership.md`: Repo Manager owns its
|
||||
governed CLI/API contracts, not a dashboard. hub-core owns cross-repository
|
||||
projection/query and surviving hub UI capabilities; ops/domain UIs are clients
|
||||
of those contracts. A4 is therefore a hub-core/projection-client replacement,
|
||||
not a UI migration into Repo Manager.
|
||||
|
||||
## Acceptance
|
||||
|
||||
- [x] Workplan write path live, A2b routable through the adapter
|
||||
- [x] Intake and decision parsers + write paths live; `resolve_decision`
|
||||
guarantee preserved
|
||||
- [ ] Register spine live, A3's six registers routable
|
||||
- [ ] Topic/classification contract published; agreement with hub-core pending
|
||||
- [ ] A4 ownership decided and recorded
|
||||
- [ ] Compatibility tests per slice, matching the RMGR-WP-0002 evidence pattern
|
||||
- [x] Register spine live, A3's six registers routable
|
||||
- [x] Topic/classification contract published and accepted at the hub-core boundary
|
||||
- [x] A4 ownership decided and recorded
|
||||
- [x] Compatibility tests per slice, matching the RMGR-WP-0002 evidence pattern
|
||||
|
||||
## Completion and handoff
|
||||
|
||||
Repo Manager's receiving surfaces are complete. The remaining State Hub route
|
||||
flags, redirects, projection rebuilds, retention, and destructive retirement
|
||||
gates already remain live in `STATE-WP-0079`; they are consumers of this work,
|
||||
not residual Repo Manager implementation. No actionable Repo Manager residual
|
||||
is being parked in this finished workplan.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue