Assistant: codex Assistant-Model: gpt-5.6-sol Assistant-Session: 01a028de-e2c8-7732-8521-46a7fc5db82f
79 lines
5.3 KiB
Markdown
79 lines
5.3 KiB
Markdown
---
|
|
id: ACTIVITY-WP-0029-T01
|
|
type: inventory
|
|
title: State Hub and hub-core callers
|
|
updated: "2026-08-18"
|
|
---
|
|
|
|
# State Hub / hub-core caller map
|
|
|
|
Inventory for ACTIVITY-WP-0029-T01. Current URLs still go to State Hub unless
|
|
noted. **Target owner** is who should own the *capability* after retirement.
|
|
activity-core stays the scheduler even when it is not the engine.
|
|
|
|
Hub-core port names are from `helixforge.hub-extension` 0.1
|
|
(`prj-state-hub-retirement/architecture/hub-extension-contract_v0.1.yaml`).
|
|
HUB-WP-0004 shipped the named ports on 2026-08-21; hub-core became production
|
|
authority the same day. Core Hub remains a no-writer rollback only through the
|
|
stabilization window ending no earlier than 2026-08-28.
|
|
|
|
| Caller | Current URL | SHR-INV | Target owner | Port (when named) |
|
|
| --- | --- | --- | --- | --- |
|
|
| `StateHubContextResolver.domain_summary` | `GET /state/domain/{domain}` | progress / state-projections | hub-core | `port.projection.query` |
|
|
| `state_summary` | `GET /state/summary` | state-projections | hub-core | `port.projection.query` |
|
|
| `next_steps` | `GET /state/next_steps` | state-projections | hub-core | `port.projection.query` |
|
|
| `workplan_index` | `GET /workplans/index` | work-records | repo-manager | `port.work` |
|
|
| `hub_inbox` | `GET /messages/` | messaging | hub-core | `port.messaging` |
|
|
| `pending_decisions` | `GET /decisions/` | work-records | repo-manager | `port.work` |
|
|
| `coding_retro` | `GET /progress/?event_type=coding_retro` | progress-telemetry | hub-core | `port.events.progress` |
|
|
| `daily_triage_digest` | `GET /progress/` + workplan/task reads | progress-telemetry | hub-core | `port.events.progress` |
|
|
| `recently_on_scope_hourly` | `POST /recently-on-scope/hourly` | state-projections | hub-core (generation stays on hub host) | `port.projection.query` |
|
|
| `consistency_sweep_remote_all` | `POST /consistency/sweep/remote-all` | `job:consistency-sweep-remote-all` + `route:POST:/consistency/sweep/remote-all` | **repo-manager** engine; activity-core schedule | none (RM command, not a hub port) |
|
|
| `phase5_stabilization_check` | `GET /state/health`, `/state/summary`, `/progress/` | state-projections | hub-core | `port.projection.query` |
|
|
| `legacy_meter_weekly_review` | `GET /legacy-meter/weekly-review` | catalogs | the-custodian / hub-core catalog | `port.projection.query` |
|
|
| `binky_rhythm_status` / `fi_brief_status` | `GET /progress/` | progress-telemetry | hub-core | `port.events.progress` |
|
|
| `repo_sbom_status` | `GET /sbom/{slug}` or `GET /repos/` | sbom-inventory | sbom-nexus (parked: ACTIVITY-WP-0030) | n/a |
|
|
| `todo_md_staleness` | `GET /repos/todo-md-staleness` | repo-consistency | repo-manager | `port.repo` |
|
|
| `kaizen` / `reuse_surface` repo list | `GET /repos/` | repo-registry | repo-manager | `port.repo` |
|
|
| `StateHubProgressSink` | `POST /progress/` | progress-telemetry | hub-core | `port.events.progress` |
|
|
| `report_sinks` state-hub-progress | `POST /progress/` | progress-telemetry | hub-core | `port.events.progress` |
|
|
| `ops_evidence_sinks` | `POST /progress/` | progress-telemetry | hub-core | `port.events.interaction` |
|
|
| `schedule_health` miss reports | `POST /progress/` | progress-telemetry | hub-core | `port.events.progress` |
|
|
| `ops_console` audit notes | `POST /progress/` | progress-telemetry | hub-core | `port.events.progress` |
|
|
| `automation_status` / `review_cli` | `GET /progress/` | progress-telemetry | hub-core | `port.events.progress` |
|
|
| `CoreHubContextResolver.stabilization_check` | `https://hub.coulomb.social` `/healthz` `/readyz` `/api/v2/*` | CORE-WP-0010 | hub-core runtime (core-hub archived after cutover) | compatibility surface |
|
|
| Manual trigger | `POST /activity-definitions/{id}/trigger` | — | **activity-core** | consumed via `port.schedule` |
|
|
| Ops-run claim queue | `/ops-runs/*` | workplan-execution-queue (replace) | **activity-core** | consumed via `port.schedule` |
|
|
|
|
## Sweep split (T02)
|
|
|
|
- **Schedule:** activity-core cron `*/15 * * * *` UTC (`state-hub-consistency-sweep`).
|
|
- **Engine:** repo-manager C-rules / `rmgr reconcile`.
|
|
- **Adapter until RM HTTP exists:** State Hub `POST /consistency/sweep/remote-all`
|
|
(dual-run when `RM_RECONCILE` is on). Override with `CONSISTENCY_SWEEP_URL`
|
|
or `REPO_MANAGER_URL` + optional `CONSISTENCY_SWEEP_PATH`.
|
|
|
|
## Evidence sink (T03 — aligned 2026-08-22)
|
|
|
|
Ops-inventory evidence now has a canonical `hub-core-interaction-event` sink:
|
|
|
|
- `POST /ports/events/interaction` with catalog event
|
|
`hub.interaction.recorded`;
|
|
- the sanitized domain observation remains in
|
|
`payload.reported_event_type` (for example `ops_inventory_probe`);
|
|
- append verification reads
|
|
`GET /ports/projections/interaction_events`; and
|
|
- `HUB_CORE_BASE_URL` points at the surviving hub-core runtime. The Railiance
|
|
Service retains the compatibility name `core-hub-api` during stabilization,
|
|
but the process and authority behind it are hub-core.
|
|
|
|
The legacy `core-hub-interaction-event` `/api/v2` sink remains available only
|
|
for rollback compatibility. It is not the configured Railiance probe sink.
|
|
Unmigrated general progress callers can continue through the State Hub
|
|
beachhead during the retirement strangler; this task does not create a second
|
|
permanent progress authority.
|
|
|
|
## Execution (T04)
|
|
|
|
State Hub `/execution/*` is **not** a task database and must not move here as
|
|
workplan rows. See `docs/execution-queue-boundary.md`.
|