core-hub/workplans/CORE-WP-0010-runtime-absorption-and-archive.md
tegwick 4a2d4fa981
Some checks failed
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / pytest-smoke (push) Failing after 3s
docs: align absorption plan with hub-core
2026-08-21 10:59:39 +02:00

150 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
id: CORE-WP-0010
type: workplan
title: "Runtime absorption into hub-core and archive"
domain: infotech
repo: core-hub
status: blocked
owner: codex
topic_slug: infotech
created: "2026-08-09"
updated: "2026-08-21"
parent_project: prj-state-hub-retirement
parent_workplan: SHR-WP-0001
related:
- CORE-WP-0009
- CORE-WP-0011
- HUB-WP-0004
- SHR-ARCH-HUB-0001
state_hub_workstream_id: "f5a90aa2-e63f-4f94-b052-8be0d0ee55ea"
---
# Runtime absorption into hub-core and archive
## Goal
Move production framework responsibility from this repository into the
consolidated **hub-core runtime**, preserve `/api/v2` consumer compatibility
through dual-run, then **archive core-hub** read-only with evidence.
Parent project: `prj-state-hub-retirement`. Depends on **HUB-WP-0004**.
## Sequencing decision — 2026-08-20
The CoulombCore decommission does not force the unresolved hub-core
library-vs-thin-host decision. Production continuity is decoupled through
`CORE-WP-0011`, which moves the existing Core Hub service to railiance01
first. The absorption work cannot proceed until `HUB-WP-0004` settles the
durable runtime boundary; it must not sit on the critical path for leaving
CoulombCore.
## Readiness and blocker review — 2026-08-21
At the start of the review, `CORE-WP-0011` was finished and the runtime surface
inventory was complete, but `HUB-WP-0004` was still proposed. Its runtime
packaging (`T03`), minimal ports (`T04`), and joint absorption plan (`T06`) were
therefore recorded as the blockers. The advancement below supersedes that
dependency snapshot.
## Dependency advancement — 2026-08-21
Hub-core has completed `HUB-WP-0004-T01``T05` in its file-backed workplan and
State Hub: the primary-image decision, Tier 1 contracts, minimal port runtime,
and initial conformance harness now exist. The paired design is recorded in
`docs/specs/runtime-absorption-plan.md`, completing this workplan's T02 input
and the Core Hub half of `HUB-WP-0004-T06`. Hub-core then completed T06 with
the canonical joint record in `hub-core/docs/core-hub-absorption-plan.md`,
decision `12514947-6cc0-42a0-98ca-9aacc9d875b0`, and coordination message
`819d5af0-959f-4b0d-9f52-87514d99b480`.
Execution remains blocked on publishing the completed hub-core work at an
immutable source/image revision and replacing its deliberately ephemeral
in-memory backend with a production PostgreSQL boundary. Those are explicit
Slice 0 entry gates, not reasons to reopen the architecture decision.
## Inventory runtime surfaces to absorb
```task
id: CORE-WP-0010-T01
status: done
priority: high
state_hub_task_id: "ce21c47f-ad66-4cd1-bd8b-c8fb92da3075"
```
List routes, models, widgets, manifests, consumer smokes, and deploy assets that
must move or remain as historical fixtures. Cross-check Inter-Hub inventory and
ops-hub bootstrap.
Completed 2026-08-21. The inventory records public/operator routes, durable
models, fixtures, consumer gates, extension-port coverage, deploy ownership,
and move constraints.
## Dual-run design
```task
id: CORE-WP-0010-T02
status: done
priority: high
state_hub_task_id: "d2679b41-01e9-477c-9d8a-0b1ddc8847cf"
```
Define how hub-core serves equivalent `/api/v2` (or compatible gateway) while
core-hub remains rollback. Include feature flags, traffic shift, and smoke
ownership.
Completed 2026-08-21. `docs/specs/runtime-absorption-plan.md` defines the
route-group order, one-writer rule, data/delta checks, compatibility adapters,
consumer gates, traffic controls, rollback, evidence, and ownership. It is
aligned with hub-core's accepted canonical plan; `HUB-WP-0004-T06` is done.
## Execute absorption slices
```task
id: CORE-WP-0010-T03
status: wait
priority: high
state_hub_task_id: "c01ddec1-5737-4115-ac73-c402ffb5bdc5"
```
Migrate in slices with consumer smokes (ops-hub, activity-core) after each.
Record row counts and fixture replays per slice.
Waiting on a committed/published hub-core runtime revision, immutable image,
durable PostgreSQL backend, and candidate deployment. Start with Slice 0; do
not change public traffic.
## Cutover production traffic
```task
id: CORE-WP-0010-T04
status: wait
priority: high
state_hub_task_id: "dc414053-a896-4bf0-af05-944b7a7cf750"
```
With operator approval, point production at hub-core runtime; verify consumer
smokes and interaction evidence path.
Waiting on completed absorption evidence and explicit operator approval.
## Archive repository
```task
id: CORE-WP-0010-T05
status: wait
priority: medium
state_hub_task_id: "16525001-f85e-4dae-9dc4-d36cb1eb4fbe"
```
Write completion record (revisions, PRs, residual owners), set read-only archive
on forge, and hand residual work as live records outside this repo.
Waiting on production cutover and recorded residual ownership.
## Acceptance
- [x] Absorption inventory complete
- [x] Dual-run design approved/recorded
- [ ] Consumer smokes pass on hub-core host
- [ ] Production traffic cut over with evidence
- [ ] core-hub archived read-only; residuals owned elsewhere