From 925fee3f90c6cb814495bef1ab556c635708bf08 Mon Sep 17 00:00:00 2001 From: tegwick Date: Tue, 19 May 2026 18:37:18 +0200 Subject: [PATCH] Record CUST-WP-0045 report sinks --- ...CUST-WP-0045-activity-core-daily-triage-runner.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/workplans/CUST-WP-0045-activity-core-daily-triage-runner.md b/workplans/CUST-WP-0045-activity-core-daily-triage-runner.md index f12541c..dd92e8d 100644 --- a/workplans/CUST-WP-0045-activity-core-daily-triage-runner.md +++ b/workplans/CUST-WP-0045-activity-core-daily-triage-runner.md @@ -186,7 +186,7 @@ produce a validated report payload under test. ```task id: CUST-WP-0045-T04 -status: todo +status: done priority: high depends_on: [CUST-WP-0045-T03] state_hub_task_id: "04e56428-d3a8-4aa7-a6e1-172c974ece3a" @@ -329,12 +329,20 @@ and condition metadata. A lightweight daily triage report schema is available at `schemas/daily-triage-report.json` so report payloads can be validated under test before T04 wires the deterministic working-memory and State Hub sinks. +T04 is complete in activity-core. Instruction definitions can now declare +`report_sinks`; report payloads are persisted through deterministic sink code +instead of model-authored file operations. The first two sink types are +`working-memory` and `state-hub-progress`. Working-memory writes refuse +canonical Custodian `canon/` and `workplans/` paths, use run-id/date based +idempotency, and State Hub progress posting deduplicates by activity run id and +instruction id before posting. + Verification: - `uv run pytest tests/test_state_hub_context_resolver.py -q`: 5 passed - `uv run pytest -q` in activity-core: - 102 passed, 1 skipped + 106 passed, 1 skipped ## Acceptance Criteria