core-hub/workplans/CORE-WP-0010-runtime-absorption-and-archive.md
tegwick f6758b91ce
Some checks failed
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / pytest-smoke (push) Failing after 2s
Build and Publish Container Image / build-and-push (push) Successful in 19s
feat: add migration export and write fencing
2026-08-21 17:07:53 +02:00

5.6 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
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-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: "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

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

id: CORE-WP-0010-T03
status: progress
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.

Started 2026-08-21 after hub-core revision 7e1ec03 closed the joint planning and publication gate. S0 now owns the durable PostgreSQL backend, legacy auth/health compatibility, immutable image, and internal candidate deployment. Do not change public traffic.

Implementation advancement 2026-08-21: hub-core revision 8ab1d0c adds the durable PostgreSQL store, audit ledger, all /api/v2 compatibility groups, fail-closed writer controls, seven-table idempotent import/export, and reverse bundle support. Its Forgejo image is pinned at sha256:2a8b396c5295476d5ce865927b8309a6e054e50eac4e92175ef32cdeaba962fb. This source now exports all seven tables without raw keys and fences writes by route group. The remaining T03 work is live candidate migration, comparison, and named consumer evidence.

Cutover production traffic

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

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

  • 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