activity-core/docs/state-hub-caller-map.md
tegwick 3b3e1a1ff0
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Build and Publish Container Image / build-and-push (push) Successful in 21s
Harden SBOM retries and align hub evidence
Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a028de-e2c8-7732-8521-46a7fc5db82f
2026-08-22 22:51:13 +02:00

5.3 KiB

id type title updated
ACTIVITY-WP-0029-T01 inventory State Hub and hub-core callers 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.