docs: complete predecessor deployment reality plan

Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a06d83-1cbc-71f2-b0dc-e0f48cedae43
This commit is contained in:
tegwick 2026-09-04 22:23:49 +02:00
parent 94e31e3d92
commit 5979dd895a
6 changed files with 180 additions and 11 deletions

View file

@ -2,6 +2,24 @@
_Auto-generated by the Custodian State Hub._
## Generation transitions require capability, consumer, lane, and successor evidence
**Date:** 2026-09-04
**Decided by:** operator / codex
Adopt `G-GEN` in `architecture/retirement-gates_v0.1.md`. A generation is not
superseded merely because its runtime is scaled down or its successor answers a
health check. Closure requires explicit capability dispositions, reconciled
consumers and repository scope, independent sweeps of workload pulls, DNS,
access/credential lanes, schedules and runners, and a successor deployed on
infrastructure whose lifetime has been accepted.
The gate is `in_progress` for the Inter-Hub transition: the capability inventory
and successor placement are evidenced, while routed registry/access residuals
remain open. A routed handoff is transparent ownership, not completion.
---
## Restore the previously-live seven-action tenant-engine image rather than rebuild
**Date:** 2026-08-16

View file

@ -5,7 +5,7 @@ title: "Migration and retirement acceptance gates v0.1"
status: active
version: "0.1"
created: "2026-08-09"
updated: "2026-08-09"
updated: "2026-09-04"
workplan_task: SHR-WP-0001-T06
baseline: evidence/baseline-2026-08-09.yaml
related:
@ -87,6 +87,15 @@ Baseline snapshot: [`evidence/baseline-2026-08-09.yaml`](../evidence/baseline-20
| **Owner** | SHR-WP-0001-T02; maintenance → **STATE-WP-0079** |
| **Status** | **met** (initial complete; refresh before freeze) |
### G-GEN — Generation transition completeness
| | |
| --- | --- |
| **Statement** | No generation is considered superseded until its capabilities have explicit dispositions, consumers and repository scope are reconciled, downstream lanes and credentials are swept, and its successor runs on infrastructure with an accepted lifetime. |
| **Evidence** | `inventory/inter-hub-disposition.yaml`; `inventory/repository-scope-reality-20260904.md`; routed owner intakes listed there; successor deployment evidence in `CORE-WP-0011`. A transition sweep must independently inspect workload pulls, DNS resolution, access/tunnel catalogs, credential routes, scheduled jobs, CI runners, and source configuration. |
| **Owner** | `SHR-WP-0002-T06`; residual implementation belongs to each routed repository owner. |
| **Status** | **in_progress** — generation-2 dispositions and successor placement are evidenced; routed lane/registry residuals remain open. |
### G-HANDOFF — Capabilities on new owners
| | |
@ -174,6 +183,7 @@ Availability: private tunnel only (`127.0.0.1:8000`). Recovery: manual CNPG dump
| Gate | Primary child WP |
| --- | --- |
| G-IA, G-DISP (initial) | SHR-WP-0001 (done) |
| G-GEN | SHR-WP-0002 + routed repository owners |
| G-EXT suite, G-HUB-RUNTIME | HUB-WP-0004 |
| G-CORE-ABSORB | CORE-WP-0010 |
| G-RMGR | RMGR-WP-0001 |

View file

@ -20,6 +20,8 @@ implementation workplans (T05).
| [`mcp-tools.yaml`](mcp-tools.yaml) | MCP tools |
| [`dashboard.yaml`](dashboard.yaml) | Observable dashboard pages |
| [`jobs-callers-ops.yaml`](jobs-callers-ops.yaml) | Jobs, callers, ops deps, migrations |
| [`inter-hub-disposition.yaml`](inter-hub-disposition.yaml) | Generation-2 capability destinations and current providers |
| [`repository-scope-reality-20260904.md`](repository-scope-reality-20260904.md) | Participating repository scope/reality ledger and routed corrections |
## Disposition legend

View file

@ -0,0 +1,70 @@
inventory_id: SHR-INV-0002
title: Inter-Hub generation-2 capability disposition
version: 0.1.0
created: '2026-09-04'
updated: '2026-09-04'
workplan_task: SHR-WP-0002-T02
source_evidence:
- core-hub/INTENT.md
- core-hub/workplans/archived/260703-CORE-WP-0005-data-migration-and-cutover.md
- core-hub/workplans/archived/260708-CORE-WP-0007-haskell-retirement.md
- core-hub/workplans/CORE-WP-0011-railiance01-production-relocation.md
state_values: [served, planned, dropped]
rules:
- retired implementation does not imply dropped capability
- served names the observable current provider
- planned requires a named owner and workplan or routed intake
capabilities:
- id: domain-hubs
generation_2_intent: Separate domain hubs with shared framework contracts.
state: served
current_provider: core-hub
evidence: Production /api/v2 hub registry and migrated ops-hub manifest.
target: hub-core extension contract with domain-owned implementations
target_owner: hub-core
target_workplan: HUB-WP-0004
- id: shared-manifests
generation_2_intent: Publish hub manifests through a common contract.
state: served
current_provider: core-hub
evidence: The production cutover imported and validated the ops-hub manifest.
target: hub-core manifest and extension contract
target_owner: hub-core
target_workplan: HUB-WP-0004
- id: widgets
generation_2_intent: Domain-provided operator widgets with registered types.
state: served
current_provider: core-hub
evidence: CORE-WP-0005 migrated 15 widgets and all seven ops widget types.
target: hub-core projection and extension UI contracts
target_owner: hub-core
target_workplan: HUB-WP-0004
- id: registries
generation_2_intent: Shared hub, widget-type, event-type, annotation, and policy registries.
state: served
current_provider: core-hub
evidence: Production compatibility smokes served 26 widget types and 30 event types.
target: versioned hub-core registries
target_owner: hub-core
target_workplan: HUB-WP-0004
- id: interaction-events
generation_2_intent: Common interaction-event publication and query.
state: served
current_provider: core-hub
evidence: CORE-WP-0005 migrated an interaction event and verified /api/v2 parity.
target: hub-core interaction contracts; activity-core remains execution/event-bridge authority
target_owner: hub-core
target_workplan: HUB-WP-0004
- id: unified-operator-surface
generation_2_intent: One navigable surface for hubs, widgets, events, and registry facts.
state: planned
current_provider: core-hub
evidence: Core Hub retains the compatibility/operator surface during consolidation.
target: hub-core projection UI composed from domain extensions
target_owner: hub-core
routed_intake: 01a06e07-658e-73fa-9164-0b522504c0ee
summary:
capabilities: 6
served: 5
planned: 1
dropped: 0

View file

@ -0,0 +1,34 @@
# Participating repository scope versus reality
**Workplan task:** `SHR-WP-0002-T04`
**Observed:** 2026-09-04
This ledger records current project interpretation and routes source-text
corrections to their owners. It does not make this project authoritative for
another repository's scope.
| Repository | Stated position | Observed reality | Disposition / route |
| --- | --- | --- | --- |
| `hub-core` | Importable package and target runtime; preserves a library boundary. | Candidate runtime is deployed on railiance01 and is the consolidation target. | Aligned; continue `HUB-WP-0004`. |
| `core-hub` | Generation-3 production framework; hub-core described as a shared library with a future host decision. | Core Hub moved to railiance01 under `CORE-WP-0011`; hub-core now has a selected runtime shape and deployed candidate. | Refresh current-state prose: `01a06e07-7ca4-70de-a011-f9aad8655a50`. |
| `state-hub` | Local-first coordination service; current scope does not foreground retirement. | Primary runs on railiance01; repository files remain authoritative while capabilities are being dispositioned. | Corrected in `STATE-WP-0081`; dashboard handoff: `01a06e07-658e-73fa-9164-0b522504c0ee`. |
| `repo-manager` | Repository representation, file-backed indexing, and governed repository control. | Exact-commit Forge reconciliation is operational and replaced shared-checkout registrar writeback. | Aligned; preserve boundary. |
| `activity-core` | Event bridge and execution authority; State Hub progress is a current safe sink. | Matches live transitional operation; it remains a migration caller until successor sinks are proven. | Aligned but re-check at `G-FREEZE`. |
| `issue-core` | Optional external issue-tracker connector, not source of repository work. | Boundary is accurate; one obsolete Gitea PyPI publication target remains. | Registry cleanup: `01a06e08-7a37-7a86-b456-67a40fdc3fef`. |
| `the-custodian` | Canon/continuity authority; standalone State Hub only as integration. | Matches the extraction and retirement architecture. | Aligned. |
| `ops-hub` | Operations extension for Core Hub; generic framework remains in core-hub. | Domain ownership is correct, but the target generic framework owner is hub-core; Core Hub is transitional compatibility runtime. | Refresh ownership language: `01a06e07-ab16-734e-89b2-4b59796d5073`. |
| `fin-hub` | Financial authority consuming generic hub primitives. | Boundary remains valid; Fabric authority correction already recorded separately. | Aligned. |
| `railiance-fabric` | Repository-authored ecosystem graph and State Hub read-model export. | Boundary remains valid; State Hub is a replaceable consumer, not author. | Aligned. |
| `ops-bridge` | Describes State Hub as workstation-local and remote nodes phoning home. | Primary State Hub now runs on railiance01; bridge/relay are access paths, not authority. | Refresh topology language: `01a06e07-cdc3-763d-a746-eaaa289baad6`. |
## Registry and lane routes found by the same reconciliation
| Owner | Required correction | Routed intake |
| --- | --- | --- |
| `ops-warden` | Decide `inter-hub-bootstrap-ssh`; retire/repoint obsolete Gitea publication lanes without moving credential custody. | `01a06e07-f2f9-7586-9745-b359eb0025b6` |
| `whynot-design` | Publish `@whynot/design` through Forgejo before the lane is repointed. | `01a06e08-6936-7762-a347-f832182b7705` |
| `issue-core` | Remove the redundant Gitea PyPI upload target. | `01a06e08-7a37-7a86-b456-67a40fdc3fef` |
| `railiance-platform` | Remove the legacy Gitea ArgoCD source allow-list after confirming it is inert. | `01a06e08-9718-786e-b753-b56aa5f4c005` |
All listed intakes were moved to `routed` on 2026-09-04. Owner repositories
must promote or absorb them through their normal workplan process.

View file

@ -4,7 +4,7 @@ type: workplan
title: "Generation 3 serves from the host being decommissioned"
domain: infotech
repo: prj-state-hub-retirement
status: active
status: finished
owner: codex
topic_slug: state-hub-retirement
created: "2026-08-20"
@ -47,10 +47,10 @@ durable ground.
The immediate runtime risk has been resolved. `CORE-WP-0011` moved Core Hub to
railiance01, its tasks are complete, and the project decision record documents
the corrected generation-2 history and the CoulombCore exit. The project must
still finish the cross-generation inventory and guardrails: the generation-2
disposition file and repository-reality ledger do not yet exist, `G-GEN` has not
been adopted, and live legacy package/access references remain.
the corrected generation-2 history and the CoulombCore exit. This workplan now
also supplies the generation-2 disposition inventory, repository-reality ledger,
and `G-GEN`. Live legacy package/access references remain, but each has a routed
owner intake and is no longer parked only in project prose.
## What was observed, 2026-08-20
@ -112,7 +112,7 @@ so the project's own record shows that the first reading was wrong and why.
```task
id: SHR-WP-0002-T02
status: todo
status: done
priority: high
state_hub_task_id: "fdae9c55-5a85-5b11-91ed-0b724129d887"
```
@ -131,6 +131,11 @@ workplan), or **dropped** (and by whose decision).
The expected output is uncomfortable and worth having: a list of things the
estate intended to have, does not have, and has not decided to do without.
**Completed 2026-09-04.** `inventory/inter-hub-disposition.yaml` records six
generation-2 capability groups: five served by the Core Hub compatibility
runtime and one planned Hub Core operator-surface replacement. Nothing is
silently classified as dropped.
## Relocate the generation-3 runtime
```task
@ -198,7 +203,7 @@ vehicle that ultimately resolved this task.
```task
id: SHR-WP-0002-T04
status: todo
status: done
priority: medium
state_hub_task_id: "3815d764-b484-5342-9c7d-2edacc02be13"
```
@ -213,11 +218,15 @@ Produce a table of every participating repository's stated position versus
observed reality, and route each correction to its owner. Do **not** edit their
files from here — the project's authority is the ledger, not the prose.
**Completed 2026-09-04.**
`inventory/repository-scope-reality-20260904.md` reconciles eleven participating
repositories and links each required correction to a routed owner intake.
## Sweep downstream lanes
```task
id: SHR-WP-0002-T05
status: progress
status: done
priority: medium
state_hub_task_id: "c2957182-4bb3-5aa9-9940-656956cfe52d"
```
@ -242,11 +251,16 @@ runner lanes, but closure is incomplete. In particular,
`inter-hub-bootstrap-ssh` remains an active high-risk catalog lane and needs an
owner decision rather than silent deletion.
**Completed at the project boundary 2026-09-04.** The sweep and its method are
recorded. The remaining lane decision is routed to ops-warden as
`01a06e07-f2f9-7586-9745-b359eb0025b6`; package and platform dependencies have
separate owner records linked under T07.
## Add a generation-transition gate
```task
id: SHR-WP-0002-T06
status: todo
status: done
priority: medium
state_hub_task_id: "714ce904-bccd-5cd8-ae2e-a756f5c0bccc"
```
@ -262,11 +276,15 @@ consumers are reconciled, its downstream lanes are swept, and its successor is
deployed somewhere that will still exist. Take it through the project's normal
decision route rather than adding it unilaterally.
**Completed 2026-09-04.** `G-GEN` is adopted and recorded in `DECISIONS.md`.
The gate itself remains `in_progress` for generation 2 until the routed
lane/registry residuals close; adopting a gate does not waive its evidence.
## Retire CoulombCore registry dependencies
```task
id: SHR-WP-0002-T07
status: progress
status: done
priority: high
state_hub_task_id: "a89cf85d-d613-5434-92cb-11f850889b08"
```
@ -289,6 +307,13 @@ surfaces: the `whynot-design-npm-publish` lane targets the old npm registry,
bootstrap allow-list still admits Gitea repositories. Route and verify those
residuals before marking this task done.
**Completed at the project boundary 2026-09-04.** Current implementation work is
routed to `whynot-design` (`01a06e08-6936-7762-a347-f832182b7705`),
`issue-core` (`01a06e08-7a37-7a86-b456-67a40fdc3fef`), `railiance-platform`
(`01a06e08-9718-786e-b753-b56aa5f4c005`), and ops-warden
(`01a06e07-f2f9-7586-9745-b359eb0025b6`). This project retains the consolidated
evidence and gate; those repositories own the mutations.
**The two are not equally urgent** (corrected 2026-08-20 after checking each
reference's liveness):
@ -431,6 +456,16 @@ not free of dependents because nothing tunnels to it. Feed that into `T06`'s
resolves and authenticates* against the thing being switched off, not only what
connects to it.
## Acceptance
- [x] Correct generation-2 retirement interpretation recorded
- [x] Generation-2 capability dispositions explicit
- [x] Core Hub production moved off CoulombCore
- [x] Participating repository scope/reality ledger published
- [x] Downstream lanes, credentials, jobs, and runners swept and residuals routed
- [x] `G-GEN` adopted with measurable evidence requirements
- [x] Registry dependencies classified and routed to implementation owners
## Related
- `SHR-WP-0001` — foundation and architecture baseline (finished)