From 10f0131f67daac14b14d48735f71db65366ebde5 Mon Sep 17 00:00:00 2001 From: tegwick Date: Sun, 27 Sep 2026 13:33:51 +0200 Subject: [PATCH] Record live reporting schedules and scoped deployment exception Assistant: codex Assistant-Model: gpt-6-astra Assistant-Session: 01a0e241-8285-7a63-8c0c-51c9cb824dc3 --- docs/ActivityCoreLoop.md | 45 ++- .../2026-09-27-activity-core-activation.json | 334 ++++++++++++++++++ .../FEP-WP-0008-use-driven-improvement.md | 15 +- 3 files changed, 376 insertions(+), 18 deletions(-) create mode 100644 docs/evidence/2026-09-27-activity-core-activation.json diff --git a/docs/ActivityCoreLoop.md b/docs/ActivityCoreLoop.md index 319c7aa..2814bcb 100644 --- a/docs/ActivityCoreLoop.md +++ b/docs/ActivityCoreLoop.md @@ -35,25 +35,36 @@ from silently producing a successful empty report. ## Activation and proof -Current state: source definitions are disabled; collector and deployment are -prepared under ACTIVITY-WP-0040. No scheduled production execution is claimed. -[Setup evidence](evidence/2026-09-27-activity-core-setup.json) records 63 passing -checks, the built image, real Forgejo collection smoke and production dry-run. -The worker overlay changes only the resolver module and registration, based on -the existing production worker image. API, router and dependencies stay pinned. +Current state: deployed and all three schedules enabled on 2026-09-27 under the +founder's explicit scoped exception, State Hub decision +`e5dd02cb-b5b2-45c8-a600-748ea2ffd31b` (`ADMINISTER @ realm:kubernetes/railiance01`, +`activation=APPROVED`). This is not a standing waiver of the estate deployment gate. -Activation requires the documented cluster change path. The estate's -`the-custodian/docs/kubernetes-change-gate-decision.md` treats unmapped targets as -production-tier and requires Git/ArgoCD reconciliation. Activity-core currently has -no ArgoCD application. A direct rollout therefore needs an explicit scoped policy -exception, or prior ArgoCD adoption; ordinary permission to implement is not a -claim that the estate gate has already been satisfied. +[Setup evidence](evidence/2026-09-27-activity-core-setup.json) records the tests, +image and preflight. [Activation evidence](evidence/2026-09-27-activity-core-activation.json) +records the successful worker rollout, three completed manual workflows and their +State Hub reports, active Temporal schedules without drift, and a completed +one-shot scheduled smoke at 11:28:45 UTC. That smoke was started by Temporal; +it is distinct from the first natural recurring runs, which are still ahead. -Once deployed, sync definitions, run one manual smoke per definition, verify the -State Hub report sink, enable and re-project the definitions, then sync schedules. -Record workflow IDs, schedule state and first natural scheduled executions here. -Use manual smoke evidence only as manual evidence. Rollback restores the previous -worker image and disables these three definitions followed by schedule sync. +The next regular runs are September 28 at 02:00, September 29 at 03:00, and +October 1 at 09:00, respectively, in Europe/Berlin. All verified reports correctly +say `no_consumers`, zero model calls and automatic edits disabled. Reports are +stored in State Hub under the frontend-patterns topic and the event types above. + +The worker overlay changes only the resolver module and registration. API/router +images remain pinned. Rollback restores `activity-core:fi-publication-20260914` +and disables these three source definitions and their ConfigMap projections, +then syncs definitions and schedules after projected files have refreshed. + +To remove future exceptions, [ACTIVITY-WP-0041](../../activity-core/workplans/ACTIVITY-WP-0041-gitops-adoption.md) +owns the concrete follow-up: reconcile manifests and publish immutable registry +images; adopt activity-core into railiance01 ArgoCD with a verified resource set; +and approve standing, bounded merge/sync authority after the adoption soak. +Existing policy requires separate authorization for adoption and automation. +ArgoCD adoption alone does not remove per-change human approval. Routine releases +must pass automated tests, scoped review, deployment-health checks and rollback; +policy/access/budget changes remain monthly decisions. The owner handoff is [ACTIVITY-WP-0040](../../activity-core/workplans/ACTIVITY-WP-0040-frontend-patterns-feedback.md). diff --git a/docs/evidence/2026-09-27-activity-core-activation.json b/docs/evidence/2026-09-27-activity-core-activation.json new file mode 100644 index 0000000..14db9ad --- /dev/null +++ b/docs/evidence/2026-09-27-activity-core-activation.json @@ -0,0 +1,334 @@ +{ + "date": "2026-09-27", + "exception_decision": "e5dd02cb-b5b2-45c8-a600-748ea2ffd31b", + "authority": "ADMINISTER @ realm:kubernetes/railiance01", + "activation": "APPROVED", + "image": "activity-core:fep-feedback-20260927", + "image_manifest": "sha256:77244c3b6977a84888746d1fde5ec9fb5ed576f29df0e6dab2462e6f2ab0e0d7", + "worker_rollout": "successful", + "cpu_requests_before_rollout_millicores": 3420, + "server_dry_run": "passed", + "client_diff": "reviewed", + "sync": { + "ok": true, + "ran": { + "definitions": true, + "schedules": true, + "event_types": false + }, + "definitions": { + "synced": 33 + }, + "event_types": { + "synced": 0 + }, + "schedules": { + "upserted": 15, + "paused": 12, + "deleted_orphans": 0, + "errors": 0 + }, + "errors": [] + }, + "schedules": [ + { + "name": "Frontend Patterns Daily Review", + "workflow_id": "activity-99f02c4c-161e-515d-926d-9e5d11d8411e:manual-2d639b97-578a-4f5a-b8b1-c7c527191644", + "workflow_status": "COMPLETED", + "result": { + "run_id": "bcd65846-521e-5c98-b9f3-67693d69dd58", + "tasks_spawned": 0 + }, + "schedule_id": "activity-schedule-99f02c4c-161e-515d-926d-9e5d11d8411e", + "paused": false, + "timezone": "Europe/Berlin", + "next_fires": [ + "2026-09-28T00:00:00+00:00", + "2026-09-29T00:00:00+00:00", + "2026-09-30T00:00:00+00:00" + ] + }, + { + "name": "Frontend Patterns Monthly Review", + "workflow_id": "activity-92e514a6-aeb8-5e22-9292-c62dd26dd757:manual-c9f5feef-34a0-40a6-b4bc-a192778ecbe9", + "workflow_status": "COMPLETED", + "result": { + "run_id": "eb8c48ec-5558-5739-96f7-5b197be3c9fc", + "tasks_spawned": 0 + }, + "schedule_id": "activity-schedule-92e514a6-aeb8-5e22-9292-c62dd26dd757", + "paused": false, + "timezone": "Europe/Berlin", + "next_fires": [ + "2026-10-01T07:00:00+00:00", + "2026-11-01T08:00:00+00:00", + "2026-12-01T08:00:00+00:00" + ] + }, + { + "name": "Frontend Patterns Weekly Review", + "workflow_id": "activity-562005f8-ef43-5a9d-83e2-f09e00e62b81:manual-79498418-a5be-4283-8d62-5abf2ebf1075", + "workflow_status": "COMPLETED", + "result": { + "run_id": "3981baba-3924-5244-bb82-e729a9e57b66", + "tasks_spawned": 0 + }, + "schedule_id": "activity-schedule-562005f8-ef43-5a9d-83e2-f09e00e62b81", + "paused": false, + "timezone": "Europe/Berlin", + "next_fires": [ + "2026-09-29T01:00:00+00:00", + "2026-10-06T01:00:00+00:00", + "2026-10-13T01:00:00+00:00" + ] + } + ], + "inventory": [ + { + "id": "99f02c4c-161e-515d-926d-9e5d11d8411e", + "name": "Frontend Patterns Daily Review", + "enabled": true, + "trigger_type": "cron", + "schedule_id": "activity-schedule-99f02c4c-161e-515d-926d-9e5d11d8411e", + "definition_source": "db", + "sources": [ + "db", + "temporal" + ], + "trigger": { + "timezone": "Europe/Berlin", + "misfire_policy": "catchup_latest", + "jitter_seconds": 0, + "trigger_type": "cron", + "cron_expression": "0 2 * * *" + }, + "cron_expression": "0 2 * * *", + "at": null, + "timezone": "Europe/Berlin", + "misfire_policy": "catchup_latest", + "catchup_window_seconds": null, + "jitter_seconds": 0, + "temporal": { + "status": "active", + "schedule_id": "activity-schedule-99f02c4c-161e-515d-926d-9e5d11d8411e", + "paused": false, + "last_fired_at": null, + "missed_catchup_window": 0 + }, + "drift_hints": [] + }, + { + "id": "92e514a6-aeb8-5e22-9292-c62dd26dd757", + "name": "Frontend Patterns Monthly Review", + "enabled": true, + "trigger_type": "cron", + "schedule_id": "activity-schedule-92e514a6-aeb8-5e22-9292-c62dd26dd757", + "definition_source": "db", + "sources": [ + "db", + "temporal" + ], + "trigger": { + "timezone": "Europe/Berlin", + "misfire_policy": "catchup_latest", + "jitter_seconds": 0, + "trigger_type": "cron", + "cron_expression": "0 9 1 * *" + }, + "cron_expression": "0 9 1 * *", + "at": null, + "timezone": "Europe/Berlin", + "misfire_policy": "catchup_latest", + "catchup_window_seconds": null, + "jitter_seconds": 0, + "temporal": { + "status": "active", + "schedule_id": "activity-schedule-92e514a6-aeb8-5e22-9292-c62dd26dd757", + "paused": false, + "last_fired_at": null, + "missed_catchup_window": 0 + }, + "drift_hints": [] + }, + { + "id": "562005f8-ef43-5a9d-83e2-f09e00e62b81", + "name": "Frontend Patterns Weekly Review", + "enabled": true, + "trigger_type": "cron", + "schedule_id": "activity-schedule-562005f8-ef43-5a9d-83e2-f09e00e62b81", + "definition_source": "db", + "sources": [ + "db", + "temporal" + ], + "trigger": { + "timezone": "Europe/Berlin", + "misfire_policy": "catchup_latest", + "jitter_seconds": 0, + "trigger_type": "cron", + "cron_expression": "0 3 * * 2" + }, + "cron_expression": "0 3 * * 2", + "at": null, + "timezone": "Europe/Berlin", + "misfire_policy": "catchup_latest", + "catchup_window_seconds": null, + "jitter_seconds": 0, + "temporal": { + "status": "active", + "schedule_id": "activity-schedule-562005f8-ef43-5a9d-83e2-f09e00e62b81", + "paused": false, + "last_fired_at": null, + "missed_catchup_window": 0 + }, + "drift_hints": [] + } + ], + "scheduled_smoke": { + "activity_id": "99f02c4c-161e-515d-926d-9e5d11d8411e", + "activity_name": "Frontend Patterns Daily Review", + "mode": "live", + "recreate_recurring": false, + "recurring_schedule_id": "activity-schedule-99f02c4c-161e-515d-926d-9e5d11d8411e", + "smoke_fire_at": "2026-09-27T11:28:45.298646+00:00", + "smoke_schedule_id": "activity-smoke-test-99f02c4c-161e-515d-926d-9e5d11d8411e", + "smoke_workflow_id_prefix": "activity-99f02c4c-161e-515d-926d-9e5d11d8411e:smoke-20260927T112845Z", + "wait_result": { + "result": { + "run_id": "182fef14-0795-5fb7-b807-2bdb3c6a8897", + "tasks_spawned": 0 + }, + "run_id": "01a0e29f-e638-7d82-8827-b79130948e04", + "status": "completed", + "workflow_id": "activity-99f02c4c-161e-515d-926d-9e5d11d8411e:smoke-20260927T112845Z-2026-09-27T11:28:45Z" + } + }, + "smoke_schedule_cleanup": "existing helper deleted one-shot in finally; recurring schedule preserved", + "reports": [ + { + "workplan_id": null, + "id": "c5446c0a-125b-4703-b964-006aaef46241", + "topic_id": "fe2aaa78-9c20-4feb-b3d2-4fe0529572a3", + "task_id": null, + "decision_id": null, + "event_type": "fep_feedback_intake", + "summary": "Deterministic report for instruction frontend-patterns-daily-report.", + "detail": { + "report": { + "status": "deterministic", + "summary": "Deterministic report for instruction frontend-patterns-daily-report.", + "deterministic": true, + "digest_preview": "{\"decisions\":{},\"duplicates\":0,\"eligible_tasks\":null,\"errors\":{},\"execution_ready\":false,\"executor_dependency\":\"GLAS-WP-0012 / HFACT-WP-0001\",\"generated_at\":\"2026-09-27T11:28:45.334840+00:00\",\"instrumented_repositories\":0,\"limits\":[\"Producer outcomes are not independently verified.\",\"No admitted budget-enforced repository executor; automatic edits disabled.\",\"Missing consumer instrumentation means coverage is unknown.\"],\"mode\":\"daily\",\"model_calls\":0,\"outcomes\":{},\"real_uses\":0,\"receipt_events\":0,\"repo\":\"frontend-patterns\",\"signals\":[],\"source_revisions\":[\"frontend-patterns@dedbad4fe152556437f617af4aa8447e8d8c489b\"],\"status\":\"no_consumers\",\"summary\":\"Frontend patterns daily: no_consumers; 0 real uses, 0 unverified outcome signals. Automatic edits disabled.\",\"synthetic_uses\":0,\"unselected_signals\":0,\"workplan\":\"FEP-WP-0008\"}" + }, + "activity_id": "99f02c4c-161e-515d-926d-9e5d11d8411e", + "scheduled_for": "2026-09-27T11:28:45.298646+00:00", + "instruction_id": "frontend-patterns-daily-report", + "review_advisory": false, + "output_validated": true, + "validation_error": null, + "review_gate_applied": false, + "activity_core_run_id": "182fef14-0795-5fb7-b807-2bdb3c6a8897", + "llm_response_metadata": null + }, + "author": "activity-core", + "session_id": null, + "created_at": "2026-09-27T11:28:46.542271Z", + "workstream_id": null + }, + { + "workplan_id": null, + "id": "c92d55f5-5b29-43e8-b377-d639a1d4fd2c", + "topic_id": "fe2aaa78-9c20-4feb-b3d2-4fe0529572a3", + "task_id": null, + "decision_id": null, + "event_type": "fep_feedback_intake", + "summary": "Deterministic report for instruction frontend-patterns-daily-report.", + "detail": { + "report": { + "status": "deterministic", + "summary": "Deterministic report for instruction frontend-patterns-daily-report.", + "deterministic": true, + "digest_preview": "{\"decisions\":{},\"duplicates\":0,\"eligible_tasks\":null,\"errors\":{},\"execution_ready\":false,\"executor_dependency\":\"GLAS-WP-0012 / HFACT-WP-0001\",\"generated_at\":\"2026-09-27T11:25:29.281251+00:00\",\"instrumented_repositories\":0,\"limits\":[\"Producer outcomes are not independently verified.\",\"No admitted budget-enforced repository executor; automatic edits disabled.\",\"Missing consumer instrumentation means coverage is unknown.\"],\"mode\":\"daily\",\"model_calls\":0,\"outcomes\":{},\"real_uses\":0,\"receipt_events\":0,\"repo\":\"frontend-patterns\",\"signals\":[],\"source_revisions\":[\"frontend-patterns@bed5302587a355a8a0f1286a78fdad68247fe933\"],\"status\":\"no_consumers\",\"summary\":\"Frontend patterns daily: no_consumers; 0 real uses, 0 unverified outcome signals. Automatic edits disabled.\",\"synthetic_uses\":0,\"unselected_signals\":0,\"workplan\":\"FEP-WP-0008\"}" + }, + "activity_id": "99f02c4c-161e-515d-926d-9e5d11d8411e", + "scheduled_for": "2026-09-27T11:25:29.071212+00:00", + "instruction_id": "frontend-patterns-daily-report", + "review_advisory": false, + "output_validated": true, + "validation_error": null, + "review_gate_applied": false, + "activity_core_run_id": "bcd65846-521e-5c98-b9f3-67693d69dd58", + "llm_response_metadata": null + }, + "author": "activity-core", + "session_id": null, + "created_at": "2026-09-27T11:25:30.196443Z", + "workstream_id": null + }, + { + "workplan_id": null, + "id": "96afea74-79b9-4eb5-b606-ef8e0458c16b", + "topic_id": "fe2aaa78-9c20-4feb-b3d2-4fe0529572a3", + "task_id": null, + "decision_id": null, + "event_type": "fep_improvement_review", + "summary": "Deterministic report for instruction frontend-patterns-weekly-report.", + "detail": { + "report": { + "status": "deterministic", + "summary": "Deterministic report for instruction frontend-patterns-weekly-report.", + "deterministic": true, + "digest_preview": "{\"decisions\":{},\"duplicates\":0,\"eligible_tasks\":null,\"errors\":{},\"execution_ready\":false,\"executor_dependency\":\"GLAS-WP-0012 / HFACT-WP-0001\",\"generated_at\":\"2026-09-27T11:25:29.884699+00:00\",\"instrumented_repositories\":0,\"limits\":[\"Producer outcomes are not independently verified.\",\"No admitted budget-enforced repository executor; automatic edits disabled.\",\"Missing consumer instrumentation means coverage is unknown.\"],\"mode\":\"weekly\",\"model_calls\":0,\"outcomes\":{},\"real_uses\":0,\"receipt_events\":0,\"repo\":\"frontend-patterns\",\"signals\":[],\"source_revisions\":[\"frontend-patterns@bed5302587a355a8a0f1286a78fdad68247fe933\"],\"status\":\"no_consumers\",\"summary\":\"Frontend patterns weekly: no_consumers; 0 real uses, 0 unverified outcome signals. Automatic edits disabled.\",\"synthetic_uses\":0,\"unselected_signals\":0,\"workplan\":\"FEP-WP-0008\"}" + }, + "activity_id": "562005f8-ef43-5a9d-83e2-f09e00e62b81", + "scheduled_for": "2026-09-27T11:25:29.392334+00:00", + "instruction_id": "frontend-patterns-weekly-report", + "review_advisory": false, + "output_validated": true, + "validation_error": null, + "review_gate_applied": false, + "activity_core_run_id": "3981baba-3924-5244-bb82-e729a9e57b66", + "llm_response_metadata": null + }, + "author": "activity-core", + "session_id": null, + "created_at": "2026-09-27T11:25:31.219271Z", + "workstream_id": null + }, + { + "workplan_id": null, + "id": "87ac36be-cecf-4298-b9f8-dba971c14b6e", + "topic_id": "fe2aaa78-9c20-4feb-b3d2-4fe0529572a3", + "task_id": null, + "decision_id": null, + "event_type": "fep_monthly_review", + "summary": "Deterministic report for instruction frontend-patterns-monthly-report.", + "detail": { + "report": { + "status": "deterministic", + "summary": "Deterministic report for instruction frontend-patterns-monthly-report.", + "deterministic": true, + "digest_preview": "{\"decisions\":{},\"duplicates\":0,\"eligible_tasks\":null,\"errors\":{},\"execution_ready\":false,\"executor_dependency\":\"GLAS-WP-0012 / HFACT-WP-0001\",\"generated_at\":\"2026-09-27T11:25:29.788511+00:00\",\"instrumented_repositories\":0,\"limits\":[\"Producer outcomes are not independently verified.\",\"No admitted budget-enforced repository executor; automatic edits disabled.\",\"Missing consumer instrumentation means coverage is unknown.\"],\"mode\":\"monthly\",\"model_calls\":0,\"outcomes\":{},\"real_uses\":0,\"receipt_events\":0,\"repo\":\"frontend-patterns\",\"signals\":[],\"source_revisions\":[\"frontend-patterns@bed5302587a355a8a0f1286a78fdad68247fe933\"],\"status\":\"no_consumers\",\"summary\":\"Frontend patterns monthly: no_consumers; 0 real uses, 0 unverified outcome signals. Automatic edits disabled.\",\"synthetic_uses\":0,\"unselected_signals\":0,\"window\":{\"end_exclusive\":\"2026-09-01T00:00:00+02:00\",\"start\":\"2026-08-01T00:00:00+02:00\"},\"workplan\":\"FEP-WP-0008\"}" + }, + "activity_id": "92e514a6-aeb8-5e22-9292-c62dd26dd757", + "scheduled_for": "2026-09-27T11:25:29.311896+00:00", + "instruction_id": "frontend-patterns-monthly-report", + "review_advisory": false, + "output_validated": true, + "validation_error": null, + "review_gate_applied": false, + "activity_core_run_id": "eb8c48ec-5558-5739-96f7-5b197be3c9fc", + "llm_response_metadata": null + }, + "author": "activity-core", + "session_id": null, + "created_at": "2026-09-27T11:25:30.494736Z", + "workstream_id": null + } + ], + "natural_recurring_runs_observed": false, + "automatic_improvements_enabled": false, + "real_consumers": 0, + "permanent_followup": "ACTIVITY-WP-0041", + "verification_note": "One standalone Temporal inspection printed valid results then hit an interpreter-finalization PyGILState error (exit 134). Independent ops API inventory and the official scheduled-smoke helper both completed successfully. The API deployment and worker stayed healthy." +} diff --git a/workplans/FEP-WP-0008-use-driven-improvement.md b/workplans/FEP-WP-0008-use-driven-improvement.md index 85676d5..4740a84 100644 --- a/workplans/FEP-WP-0008-use-driven-improvement.md +++ b/workplans/FEP-WP-0008-use-driven-improvement.md @@ -22,7 +22,7 @@ frontend-patterns `88fee7c` and local reuse-surface/activity-core/Glas/rein cont [Operating design](../docs/ReuseAndImprovementLoop.md) is the implementation contract. Exactly three delivery actions. Implementation has started with the local discovery entry; background -execution is not enabled. Existing M1/M2/M3 evidence gates remain intact. Qualified +reporting is enabled; automatic pattern-editing execution is not enabled. Existing M1/M2/M3 evidence gates remain intact. Qualified reference consumption and use-driven research may proceed before those gates under the user's instruction. This is not a request for another up-front approval round. @@ -152,3 +152,16 @@ remain disabled pending the estate deployment path and live sink verification. GLAS-WP-0012 / HFACT-WP-0001 own the unverified execution profile; no fallback is enabled. T02/T03 remain in progress: prepared schedules and reports do not satisfy the real-consumer, admitted execution or publication acceptance criteria. + +## Reporting activated — 2026-09-27 + +The founder approved the scoped direct deployment exception (decision +`e5dd02cb-b5b2-45c8-a600-748ea2ffd31b`). Three report sinks passed manual production +checks; all three Temporal schedules are active, with no drift; the daily +one-shot scheduled smoke completed and posted report +`c5446c0a-125b-4703-b964-006aaef46241`. First natural cadence observations remain +pending. [Evidence](../docs/evidence/2026-09-27-activity-core-activation.json). +ACTIVITY-WP-0041 is the live follow-up for eliminating deployment exceptions +through GitOps adoption and standing bounded release authority. The reference +still has zero enrolled consumers, and no pattern-editing executor is enabled. +T01/T02/T03 stay in progress against their original end-to-end acceptance.