Activity core practicability trial stuff
This commit is contained in:
@@ -3,10 +3,10 @@ id: "d104348c-d792-4377-943c-70a31e81a9bc"
|
|||||||
name: "Hourly RecentlyOnScope Reports"
|
name: "Hourly RecentlyOnScope Reports"
|
||||||
type: activity-definition
|
type: activity-definition
|
||||||
version: "1.0"
|
version: "1.0"
|
||||||
enabled: false
|
enabled: true
|
||||||
owner: custodian
|
owner: custodian
|
||||||
governance: custodian
|
governance: custodian
|
||||||
status: draft
|
status: active
|
||||||
created: "2026-05-22"
|
created: "2026-05-22"
|
||||||
trigger:
|
trigger:
|
||||||
type: cron
|
type: cron
|
||||||
@@ -38,14 +38,15 @@ activity-core owns the hourly schedule and ActivityRun audit trail.
|
|||||||
|
|
||||||
## Runner Status
|
## Runner Status
|
||||||
|
|
||||||
This definition is intentionally `enabled: false` until the manual canary
|
This definition is enabled after a successful manual canary against
|
||||||
passes.
|
Railiance01 Temporal.
|
||||||
|
|
||||||
Cutover boundary:
|
Cutover boundary:
|
||||||
|
|
||||||
- Codex app automation remains a fallback until `CUST-WP-0046-T06`.
|
- Codex app automation remains a fallback only if `CUST-WP-0046-T06` records
|
||||||
- This activity-core definition becomes the primary hourly reporting substrate
|
an explicit operator reason.
|
||||||
only after one manual run and one scheduled run leave expected evidence.
|
- This activity-core definition is the primary hourly reporting substrate
|
||||||
|
after one manual run and one scheduled run leave expected evidence.
|
||||||
- Do not run a Codex fallback and this activity-core hourly routine as parallel
|
- Do not run a Codex fallback and this activity-core hourly routine as parallel
|
||||||
primary runners.
|
primary runners.
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ topic_slug: custodian
|
|||||||
planning_priority: high
|
planning_priority: high
|
||||||
planning_order: 45
|
planning_order: 45
|
||||||
created: "2026-05-19"
|
created: "2026-05-19"
|
||||||
updated: "2026-05-21"
|
updated: "2026-05-23"
|
||||||
state_hub_workstream_id: "d9d9a3ec-f736-4041-beac-bb92c7ad314e"
|
state_hub_workstream_id: "d9d9a3ec-f736-4041-beac-bb92c7ad314e"
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -496,6 +496,18 @@ Verification:
|
|||||||
`PYTHONPATH=. uv run pytest -q`:
|
`PYTHONPATH=. uv run pytest -q`:
|
||||||
175 passed
|
175 passed
|
||||||
|
|
||||||
|
## Implementation Notes - 2026-05-23
|
||||||
|
|
||||||
|
`CUST-WP-0046` verified the separate hourly RecentlyOnScope activity-core
|
||||||
|
schedule, but did not retire the Codex app automation
|
||||||
|
`daily-state-hub-wsjf-triage`. That automation is still the fallback for this
|
||||||
|
daily WSJF triage cutover while this workplan's ActivityDefinition remains
|
||||||
|
`enabled: false`.
|
||||||
|
|
||||||
|
The State Hub decision recorded under `CUST-WP-0046` is to keep the Codex
|
||||||
|
automation active until this workplan completes its own daily WSJF canary and
|
||||||
|
explicit pause/delete cutover step.
|
||||||
|
|
||||||
## Acceptance Criteria
|
## Acceptance Criteria
|
||||||
|
|
||||||
- The daily State Hub WSJF triage runs from activity-core, not Codex app cron.
|
- The daily State Hub WSJF triage runs from activity-core, not Codex app cron.
|
||||||
|
|||||||
@@ -4,13 +4,13 @@ type: workplan
|
|||||||
title: "Activity-Core Hourly RecentlyOnScope Reports"
|
title: "Activity-Core Hourly RecentlyOnScope Reports"
|
||||||
domain: custodian
|
domain: custodian
|
||||||
repo: the-custodian
|
repo: the-custodian
|
||||||
status: active
|
status: blocked
|
||||||
owner: codex
|
owner: codex
|
||||||
topic_slug: custodian
|
topic_slug: custodian
|
||||||
planning_priority: high
|
planning_priority: high
|
||||||
planning_order: 46
|
planning_order: 46
|
||||||
created: "2026-05-22"
|
created: "2026-05-22"
|
||||||
updated: "2026-05-22"
|
updated: "2026-05-23"
|
||||||
state_hub_workstream_id: "671153ff-55bc-4ace-aa97-f322ca76ab3c"
|
state_hub_workstream_id: "671153ff-55bc-4ace-aa97-f322ca76ab3c"
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -105,7 +105,7 @@ Preferred path:
|
|||||||
|
|
||||||
```task
|
```task
|
||||||
id: CUST-WP-0046-T01
|
id: CUST-WP-0046-T01
|
||||||
status: in_progress
|
status: done
|
||||||
priority: high
|
priority: high
|
||||||
state_hub_task_id: "99e16a50-9775-4520-b343-f52fda0b67ec"
|
state_hub_task_id: "99e16a50-9775-4520-b343-f52fda0b67ec"
|
||||||
```
|
```
|
||||||
@@ -188,7 +188,7 @@ endpoint and record the result under test.
|
|||||||
|
|
||||||
```task
|
```task
|
||||||
id: CUST-WP-0046-T04
|
id: CUST-WP-0046-T04
|
||||||
status: in_progress
|
status: done
|
||||||
priority: high
|
priority: high
|
||||||
depends_on: [CUST-WP-0046-T03]
|
depends_on: [CUST-WP-0046-T03]
|
||||||
state_hub_task_id: "dcb20f5a-c446-48d6-b810-84de365c22fd"
|
state_hub_task_id: "dcb20f5a-c446-48d6-b810-84de365c22fd"
|
||||||
@@ -215,7 +215,7 @@ paused Temporal schedule while disabled.
|
|||||||
|
|
||||||
```task
|
```task
|
||||||
id: CUST-WP-0046-T05
|
id: CUST-WP-0046-T05
|
||||||
status: in_progress
|
status: done
|
||||||
priority: high
|
priority: high
|
||||||
depends_on: [CUST-WP-0046-T04]
|
depends_on: [CUST-WP-0046-T04]
|
||||||
state_hub_task_id: "f5c0cf64-a8e9-4d8c-bd86-ca58cbf132c2"
|
state_hub_task_id: "f5c0cf64-a8e9-4d8c-bd86-ca58cbf132c2"
|
||||||
@@ -249,7 +249,7 @@ status: blocked
|
|||||||
priority: high
|
priority: high
|
||||||
depends_on: [CUST-WP-0046-T05]
|
depends_on: [CUST-WP-0046-T05]
|
||||||
state_hub_task_id: "2a46a6c8-4d3e-4064-a935-c90ca0c76a6d"
|
state_hub_task_id: "2a46a6c8-4d3e-4064-a935-c90ca0c76a6d"
|
||||||
blocking_reason: "Waiting for manual and scheduled activity-core canaries before retiring the Codex app fallback."
|
blocking_reason: "Manual and scheduled hourly RecentlyOnScope canaries passed, but daily-state-hub-wsjf-triage is the CUST-WP-0045 daily WSJF fallback. Do not pause or delete it under CUST-WP-0046 until the daily WSJF activity-core definition has its own canary and cutover decision."
|
||||||
```
|
```
|
||||||
|
|
||||||
Remove the Codex app automation fallback from the operating path.
|
Remove the Codex app automation fallback from the operating path.
|
||||||
@@ -340,16 +340,45 @@ Local canary evidence:
|
|||||||
had no failed domains.
|
had no failed domains.
|
||||||
Progress event: `1ff091c3-227c-4a85-b5e2-172ba45a2676`.
|
Progress event: `1ff091c3-227c-4a85-b5e2-172ba45a2676`.
|
||||||
|
|
||||||
Remaining gates:
|
Railiance01 cutover evidence - 2026-05-23:
|
||||||
|
|
||||||
- T01 remains in progress until the deployed activity-core API/worker/Temporal
|
- Runtime substrate verified: activity-core API health returned healthy DB and
|
||||||
schedule path is checked from the operator host.
|
Temporal status, worker and API deployments rolled out, and Temporal CLI can
|
||||||
- T04 remains in progress until the definition is synced into the live
|
list schedules/workflows from the Railiance01 cluster.
|
||||||
activity-core DB and appears as a disabled/paused Temporal schedule.
|
- Live State Hub access now uses an in-cluster bridge service
|
||||||
- T05 remains in progress until a real `RunActivityWorkflow` produces an
|
`actcore-state-hub-bridge` because the State Hub tunnel on Railiance01 is
|
||||||
ActivityRun and one scheduled hourly canary completes.
|
bound to node-local `127.0.0.1:18000`. The activity-core runtime config now
|
||||||
- T06 is blocked until T05 passes; the Codex app fallback should not be paused
|
points `STATE_HUB_URL` at `http://actcore-state-hub-bridge:8000`.
|
||||||
or deleted before then.
|
- The Railiance01 manifest mounts
|
||||||
|
`actcore-external-activity-definitions/hourly-recently-on-scope.md` into the
|
||||||
|
sync, API, and worker pods. Sync logs show
|
||||||
|
`Hourly RecentlyOnScope Reports` upserted into the live activity-core DB.
|
||||||
|
- The first live manual attempts recorded `{}` because the worker image still
|
||||||
|
had the old resolver behavior and the runtime URL was pointed at the wrong
|
||||||
|
service. activity-core now validates that the hourly State Hub response
|
||||||
|
contains `generated`, `skipped`, and `failed` before accepting the run.
|
||||||
|
- Manual canary after image rollout:
|
||||||
|
workflow
|
||||||
|
`activity-d104348c-d792-4377-943c-70a31e81a9bc:manual-0be193ee-341d-441b-9bc7-e1696b96455b`,
|
||||||
|
ActivityRun `43070cac-2669-5e53-bb9e-88dc1000f3a1`, progress event
|
||||||
|
`96bf2f6b-38e3-4143-a49b-1b1275a9713a`, one generated `custodian` report,
|
||||||
|
ten skipped quiet domains, and no failed domains.
|
||||||
|
- Scheduled canary via Temporal `schedule trigger`:
|
||||||
|
workflow
|
||||||
|
`activity-d104348c-d792-4377-943c-70a31e81a9bc:${firstScheduledTime}-2026-05-23T00:20:30Z`,
|
||||||
|
ActivityRun `ef741a08-3e21-5945-ae21-fdf9b1968438`, progress event
|
||||||
|
`8d284579-5652-4c6e-8783-36fde75f8ed4`, no generated reports for the quiet
|
||||||
|
window, eleven skipped quiet domains, and no failed domains.
|
||||||
|
- The hourly Temporal schedule is unpaused with `misfire_policy: skip`; the
|
||||||
|
API reports the ActivityDefinition `enabled: true`.
|
||||||
|
|
||||||
|
Remaining gate:
|
||||||
|
|
||||||
|
- T06 remains blocked because `daily-state-hub-wsjf-triage` is a daily WSJF
|
||||||
|
triage fallback, not the hourly RecentlyOnScope runner. The daily
|
||||||
|
activity-core definition is still `enabled: false`, so pausing or deleting the
|
||||||
|
Codex app automation here would remove daily WSJF coverage before
|
||||||
|
`CUST-WP-0045` has its own canary.
|
||||||
|
|
||||||
## Acceptance Criteria
|
## Acceptance Criteria
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user