HUB-WP-0006: record A5 packet intake and T07 alias seed + RM_SLICE_TOPICSPINE
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Assistant: claude-code Assistant-Model: opus Assistant-Process: 356991@bnt-lap001 Assistant-Session: 5d99ea69-ed55-4a1e-8d97-f4f312db247f
This commit is contained in:
parent
9e4d5ba23c
commit
3c5255ff82
1 changed files with 60 additions and 1 deletions
|
|
@ -9,7 +9,7 @@ flavor: implementation
|
|||
owner: codex
|
||||
topic_slug: custodian
|
||||
created: "2026-08-22"
|
||||
updated: "2026-10-04"
|
||||
updated: "2026-10-13"
|
||||
parent_project: prj-state-hub-retirement
|
||||
parent_workplan: STATE-WP-0079
|
||||
related:
|
||||
|
|
@ -200,6 +200,65 @@ placement/networking outside this repository. Marking the workplan `blocked`
|
|||
rather than `active` since nothing further can move here until that external
|
||||
gate closes.
|
||||
|
||||
A5 packet intake 2026-10-13: State Hub delivered the comparison packet
|
||||
(`state-hub/docs/a5-topic-spine-comparison-packet.md`, cases
|
||||
`docs/evidence/a5-topic-spine-comparison-cases.json`, A5-C01..C10). It named two
|
||||
hub-core gaps: no alias source, and no `RM_SLICE_TOPICSPINE`. T07 closes both in
|
||||
code. The flag stays `off` everywhere, so T06 remains `wait` for the deployed
|
||||
candidate run and the switch window.
|
||||
|
||||
## Seed legacy topic aliases and implement the A5 rollback switch
|
||||
|
||||
```task
|
||||
id: HUB-WP-0006-T07
|
||||
status: done
|
||||
priority: high
|
||||
depends_on: []
|
||||
```
|
||||
|
||||
Done 2026-10-13 (commit `9e4d5ba`). Not pushed or deployed. The flag has not
|
||||
been changed in any environment.
|
||||
|
||||
- **Alias source:** `hub_core/runtime/data/legacy_topic_aliases.json`, alias set
|
||||
`2026-10-13.1`. It holds the 16 active topics from State Hub's 2026-10-13
|
||||
`GET /topics/?status=active` capture. Each maps to `primary_domain` =
|
||||
`domain_slug`, with `residual_owner` `STATE-WP-0079` and `expires_at`
|
||||
`2027-03-31T23:59:59Z`. The expiry is a conservative choice: it covers the
|
||||
switch window plus a dual run, and it can be renewed by editing the seed and
|
||||
bumping its version. The seed is validated against the 1.0.0
|
||||
`legacyTopicAlias` schema and is never fetched live. Topic UUIDs are kept
|
||||
verbatim. Three slugs with underscores (`inter_hub`, `vergabe_teilnahme`,
|
||||
`citation_evidence_mvp`) are emitted with hyphens, because the 1.0.0 pattern
|
||||
forbids `_`. Emitting the exact spelling needs a contract patch.
|
||||
- **Flag:** `RM_SLICE_TOPICSPINE` takes `off`, `shadow` or `on`; the default is
|
||||
`off`.
|
||||
- `off` leaves the output byte-for-byte unchanged (`legacy_topic_aliases: []`).
|
||||
- `shadow` serves the aliases for comparison only.
|
||||
- `on` declares hub-core the switched A5 read source.
|
||||
|
||||
Rollback is setting the flag back to `off`. The values are documented in
|
||||
`docs/runtime.md`.
|
||||
- **Local comparison against fixtures:** see `tests/test_legacy_topic_aliases.py`.
|
||||
- Pass: A5-C01 (16/16 aliases equal after the `_`→`-` normalisation), A5-C02
|
||||
and the identity part of A5-C08 (each topic id resolves to exactly one alias),
|
||||
and the hub-core half of A5-C10 (`off` withdraws the aliases).
|
||||
- A5-C03 differs from the packet's expectation. An unknown domain returns
|
||||
`400`, because the runtime validates the controlled vocabulary; it does not
|
||||
return `200` with an empty list. A known domain with no repositories returns
|
||||
`200 []`.
|
||||
- A5-C04, C05, C06 and C07 need the deployed registry. The fixtures hold only
|
||||
two synthetic repositories.
|
||||
- A5-C09 has nothing to compare.
|
||||
- The State Hub half of C10 is a legacy read.
|
||||
- **Tests:** full suite: 488 passed, 3 skipped.
|
||||
- **Still needed before T06 can run live:**
|
||||
- deploy an image containing `9e4d5ba` and set `shadow` on the candidate only,
|
||||
after approval;
|
||||
- a verified candidate base URL and auth;
|
||||
- the 154 vs 123 repository gap (out of scope here and unexplained);
|
||||
- topic-route usage figures from the legacy meter;
|
||||
- caller-owner switch plans.
|
||||
|
||||
## Acceptance
|
||||
|
||||
- [x] Repo Manager v1.0 authority and projection contract accepted
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue