diff --git a/docs/evidence/ops-hub-activity-core-fallback-validation.md b/docs/evidence/ops-hub-activity-core-fallback-validation.md index d58626a..4e82e47 100644 --- a/docs/evidence/ops-hub-activity-core-fallback-validation.md +++ b/docs/evidence/ops-hub-activity-core-fallback-validation.md @@ -1,13 +1,13 @@ # Ops Hub Activity-Core Fallback Validation -Date: 2026-06-15 +Date: 2026-06-16 Workplan: `IHUB-WP-0022` ## Validation Result -The State Hub fallback path is implemented and tested in activity-core, but no -live fallback event exists in State Hub yet. +The State Hub fallback path is implemented, locally tested in activity-core, +and now verified through a live Railiance01 activity-core manual trigger. Direct query: @@ -15,18 +15,41 @@ Direct query: GET http://127.0.0.1:8000/progress/?event_type=ops_inventory_probe&limit=20 ``` -Observed result on 2026-06-15: +Observed result on 2026-06-16: ```json -[] +[ + { + "id": "db408146-0310-4ac3-ac77-f73c5a41e070", + "event_type": "ops_inventory_probe", + "summary": "Ops inventory probe: 0 ok, 4 degraded, 0 down, 5 skipped", + "author": "activity-core", + "created_at": "2026-06-16T05:34:02.711888Z" + } +] ``` -This means Inter-Hub can accept the fallback-first design, but cannot yet cite -live `ops_inventory_probe` evidence as a closure artifact. +Railiance also posted verifier evidence note +`60256e9a-9d1b-44db-8999-738cf03bca2e`, proving that the progress event was +matched to the exact manual activity-core trigger run: + +- manual workflow: + `activity-40d15a87-7ff6-4d8e-992c-37df15f95110:manual-d2daa0e4-2d54-430e-a957-dca0ec9f469d` +- matched activity-core run id: + `90e3b112-d1e3-51af-8fb2-cb61f26add17` +- matched fallback progress: + `db408146-0310-4ac3-ac77-f73c5a41e070` +- immutable runtime evidence: + `api_image_id=sha256:5ff92a8217c450ae06075d00862b6e2a92a83ca09eea18b5a5e96b5d2d728b35` + +This means Inter-Hub can cite live fallback evidence as the continuity +artifact for activity-core while the governed Inter-Hub widget/API-key path +remains explicitly deferred. ## What Is Validated -Activity-core local tests validate the fallback sink shape: +Activity-core local tests and the Railiance01 verifier now validate the +fallback sink shape: - `state-hub-progress` posts one compact `ops_inventory_probe` progress event per run. @@ -43,11 +66,14 @@ Activity-core local tests validate the fallback sink shape: `reason = missing_inter_hub_config`. - When config is present but submission is not implemented, the result is a clean skip with `reason = inter_hub_sink_deferred`. +- Railiance verifier evidence correlates the State Hub progress event to the + exact manual activity-core trigger run id instead of accepting any fresh + `ops_inventory_probe`. +- The verifier evidence includes immutable runtime identity through the live + `actcore-api` container image digest. ## What Is Not Yet Validated -- No live activity-core worker has posted an `ops_inventory_probe` event to the - local State Hub instance. - No live Inter-Hub event has been submitted from activity-core. - No production `OPS_HUB_KEY` handoff has been verified. - No `OPS_HUB_WIDGET_MAPPING` has been deployed into the activity-core runtime. @@ -69,27 +95,24 @@ replacement for Inter-Hub submission: ## Closure Recommendation -`ACTIVITY-WP-0007/T06` should not close as fully activated based on the current -State Hub state, because no live `ops_inventory_probe` progress event exists. +`ACTIVITY-WP-0007/T06` may remain closed using fallback-deferred closure. +The live fallback path now has non-secret State Hub evidence, and the +Inter-Hub submission path is explicitly deferred until `IHUB-WP-0022-T03`, +`IHUB-WP-0022-T04`, and `IHUB-WP-0022-T07` complete. -Two acceptable closure paths remain: +This is not full Inter-Hub activation. The remaining full activation path is: -1. Fallback-deferred closure: run one disabled/manual activity-core probe, - confirm a live non-secret `ops_inventory_probe` progress event in State Hub, - and explicitly record that Inter-Hub submission is deferred until - `IHUB-WP-0022-T03/T04/T07` complete. -2. Full Inter-Hub closure: provision `OPS_HUB_KEY`, deploy - `OPS_HUB_WIDGET_MAPPING`, seed/verify the ops-hub widgets, and submit one - accepted Inter-Hub event per activity-core event type. +1. Provision `OPS_HUB_KEY`. +2. Deploy `OPS_HUB_WIDGET_MAPPING`. +3. Seed and verify the ops-hub widgets. +4. Submit one accepted Inter-Hub event per activity-core event type. -Until one of those paths is satisfied, Inter-Hub should keep the activity-core -closure gate open. +Until that path is satisfied, Inter-Hub should keep its own per-entity intake +tasks open, but it does not need to hold the activity-core closure gate open. ## Next Evidence To Capture -- Progress id for the first live `ops_inventory_probe` event. -- Non-secret summary counts from that progress detail. - Confirmation that Inter-Hub sink remains skipped cleanly while config is - absent or deferred. + absent or deferred in the deployed runtime. - After ops-hub activation, event ids for one accepted Inter-Hub submission per event type. diff --git a/workplans/IHUB-WP-0022-ops-hub-evidence-intake.md b/workplans/IHUB-WP-0022-ops-hub-evidence-intake.md index 047b444..051f35a 100644 --- a/workplans/IHUB-WP-0022-ops-hub-evidence-intake.md +++ b/workplans/IHUB-WP-0022-ops-hub-evidence-intake.md @@ -8,7 +8,7 @@ status: active owner: codex topic_slug: inter_hub created: "2026-06-15" -updated: "2026-06-15" +updated: "2026-06-16" planning_priority: high planning_order: 22 related_repos: @@ -295,7 +295,7 @@ activity-core event type. ```task id: IHUB-WP-0022-T06 -status: wait +status: done priority: medium depends_on: T01 state_hub_task_id: "38b54991-bed2-4f9d-bede-bea35821b1ef" @@ -325,6 +325,17 @@ for `event_type=ops_inventory_probe` returned no live events. This task remains waiting on a disabled/manual activity-core probe or other live fallback evidence before it can close. +Implementation note (2026-06-16): completed fallback-first validation using +Railiance cluster-owned verifier evidence. State Hub progress +`db408146-0310-4ac3-ac77-f73c5a41e070` records a live +`ops_inventory_probe` summary from activity-core: +`0 ok, 4 degraded, 0 down, 5 skipped`. Railiance evidence note +`60256e9a-9d1b-44db-8999-738cf03bca2e` proves the progress event matched the +manual trigger run id `90e3b112-d1e3-51af-8fb2-cb61f26add17` and includes the +live `actcore-api` image digest. Updated the validation document with the +evidence, gaps, and closure recommendation. Inter-Hub per-entity submission +remains deferred to T03/T04/T07. + --- ### T07 - Run end-to-end Inter-Hub submission smoke @@ -367,9 +378,9 @@ Inter-Hub submission beyond its current deferred sink. ```task id: IHUB-WP-0022-T08 -status: wait +status: done priority: medium -depends_on: T06,T07 +depends_on: T06 state_hub_task_id: "4a7ed0ed-552e-42d3-a90f-1efd52b8851e" ``` @@ -393,6 +404,15 @@ Current wait reason (2026-06-15): closure handoff depends on either a live State Hub fallback event plus an explicit Inter-Hub deferral decision, or a successful Inter-Hub submission smoke. +Implementation note (2026-06-16): completed the activity-core closure handoff +on the fallback-deferred path. `ACTIVITY-WP-0007/T06` is already closed in +activity-core and State Hub. Inter-Hub accepts that closure on live State Hub +fallback evidence (`ops_inventory_probe` +`db408146-0310-4ac3-ac77-f73c5a41e070`) with explicit deferral of governed +Inter-Hub submissions until the ops-hub manifest/widget path, runtime key, and +end-to-end smoke are complete under T03, T04, and T07. No secret values or +runtime key material are required for this handoff. + ## Exit Criteria Summary | Task | Deliverable | Status | @@ -402,9 +422,9 @@ successful Inter-Hub submission smoke. | T03 | Active ops-hub manifest and seed widgets | wait | | T04 | `OPS_HUB_KEY` stored outside Git and smokeable | wait | | T05 | `docs/contracts/ops-hub-activity-core-event-payloads.md` | done | -| T06 | `docs/evidence/ops-hub-activity-core-fallback-validation.md` | wait | +| T06 | `docs/evidence/ops-hub-activity-core-fallback-validation.md` | done | | T07 | End-to-end Inter-Hub submission smoke evidence | wait | -| T08 | activity-core closure handoff | wait | +| T08 | activity-core closure handoff | done | ## Binding Principles