core-hub/workplans/CORE-WP-0010-runtime-absorption-and-archive.md
codex 60b785fa9d
Some checks failed
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / pytest-smoke (push) Failing after 2s
fix(workplans): adopt ADR-007 derived identifiers for unregistered records
These workplans exist only in the retired local hub. Their random pre-ADR-007
identifiers are refused by C-06 as stale references, so they cannot be
registered. Deriving from the canonical record id takes no identity from
anything: central does not hold them and the old ids die with the cache.

Records central already holds were deliberately left untouched.

Refs CUST-WP-0068-T06

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 2583210@bnt-lap001
Assistant-Session: f2bff2d5-e9b2-4338-92ca-10282a927006
2026-08-25 20:08:34 +02:00

6.5 KiB
Raw Blame History

id type title domain repo status owner topic_slug created updated parent_project parent_workplan related state_hub_workstream_id
CORE-WP-0010 workplan Runtime absorption into hub-core and archive infotech core-hub active codex infotech 2026-08-09 2026-08-21 prj-state-hub-retirement SHR-WP-0001
CORE-WP-0009
CORE-WP-0011
HUB-WP-0004
SHR-ARCH-HUB-0001
9cc1abf3-2ab0-54a4-a250-83f382a49441

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-T01T05 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.

Hub-core revision 7e1ec03 is committed and pushed with T01T06 complete. S0 can therefore begin. It must replace the deliberately ephemeral in-memory backend with a production PostgreSQL boundary and produce an immutable image before any public route is eligible to move; those are implementation gates, not reasons to reopen the architecture decision.

Inventory runtime surfaces to absorb

id: CORE-WP-0010-T01
status: done
priority: high
state_hub_task_id: "2fc63743-20f4-5794-9b9e-c931eb02904d"

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

id: CORE-WP-0010-T02
status: done
priority: high
state_hub_task_id: "0c1f1c20-54e5-5982-b72a-357292a37190"

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

id: CORE-WP-0010-T03
status: done
priority: high
state_hub_task_id: "cb0971b7-fca8-5048-b8db-9efedd37d280"

Migrate in slices with consumer smokes (ops-hub, activity-core) after each. Record row counts and fixture replays per slice.

Completed 2026-08-21. Hub-core revision 055cf49 and immutable image sha256:adf580d09a4a9139b1663c41d59d46903a007e03a3ae567e09b8a6ec23708ab8 provide the durable PostgreSQL store, audit ledger, complete compatibility surface, fail-closed writer controls, and lossless migration tooling. The live seven-table import was repeatable and preserved exact counts, identity sets, and canonical content hashes; restart persistence and reverse export also matched. Hub-core conformance passed 8/8, and the public ops-hub and activity-core consumer gates passed before and after rollback recovery.

Cutover production traffic

id: CORE-WP-0010-T04
status: done
priority: high
state_hub_task_id: "49bc4782-365f-5f6b-ac20-03690be57176"

With operator approval, point production at hub-core runtime; verify consumer smokes and interaction evidence path.

Completed 2026-08-21 with operator approval. All five route groups and all four mutable writer groups now belong to hub-core; Core Hub remains Ready with an empty writer set as rollback. Helm rollback to the pre-cutover runtime was exercised at revision 19, followed by successful forward recovery to revision 20 and repeat conformance, consumer, image, readiness, and writer-fence gates. Evidence is recorded in docs/evidence/core-hub-hub-core-cutover-2026-08-21.md.

Archive repository

id: CORE-WP-0010-T05
status: progress
priority: medium
state_hub_task_id: "6e67fd41-3f52-5085-85b6-1661c322e290"

Write completion record (revisions, PRs, residual owners), set read-only archive on forge, and hand residual work as live records outside this repo.

Production cutover is complete. Wait through the stabilization interval that started at 2026-08-21T20:49:50+02:00 and ends no earlier than 2026-08-28T20:49:50+02:00. Then record the final review, archive this repository read-only on Forgejo, and hand any remaining product-intent gaps to live records outside this repository.

Archive preparation started 2026-08-21. docs/deployment/archive-closeout.md now freezes feature development here, records live residual owners, preserves non-destructive retention boundaries, and defines the ordered final checklist. docs/deployment/stabilization-signoff.md and make stabilization-check define the current fail-closed production gate. Only elapsed stabilization, final observations, operator approval, rollback scale-down, and the read-only Forgejo action remain.

Acceptance

  • Absorption inventory complete
  • 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