Verify live reporting repair and monthly review readiness

Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a0e738-9e15-7600-87e6-90dec3a7beef
This commit is contained in:
tegwick 2026-09-28 11:31:52 +02:00
parent 58e8ef675e
commit 80dc3e5d85
11 changed files with 217 additions and 16 deletions

View file

@ -103,7 +103,8 @@ improvement. It owns discovery, instrumentation and execution integration; month
human review owns operating-policy decisions. The capability entry is prepared;
automatic collection and three activity-core reporting schedules passed scheduled
smoke checks; the first natural daily run failed after a worker image change removed
the domain resolver. A tested repair is staged pending release authorization.
the domain resolver. The approved grant-preserving repair is deployed and all three
scheduled sink smokes pass; natural recurrence and October 1 evidence remain due.
Hosted consumer integration and admitted pattern-editing execution remain blocked;
there are no enrolled consumers yet.
This operational loop can improve draft guidance without claiming M1/M2/M3 or

View file

@ -1,9 +1,10 @@
# Activity-core receipt loop
Current diagnosis (2026-09-28): the first natural daily run fired but failed because
the replacement worker image lacks the domain resolver. A tested repair image is
published and awaits the scoped attended-release exception; prior smoke success
is historical. See [repair evidence](evidence/2026-09-28-reporting-repair.json).
Current state (2026-09-28): repaired through the user-approved, scoped GitOps
exception. The grant-aware worker now includes the domain resolver; daily, weekly
and monthly scheduled smoke runs produced validated receipts. The first natural
daily failure remains historical evidence; subsequent natural cadence and the
October 1 packet remain due. See [live proof](evidence/2026-09-28-reporting-live.json).
FEP-WP-0008 owns this integration. The initial delivery is deterministic collection
and reporting. Automatic investigation and publication are a separate, outstanding
@ -170,3 +171,28 @@ Hosted discovery is still unregistered (404) and its routed write credential is
unavailable to the current operator session. Public source publication passed.
The [consumer hook](../feedback/ConsumerIntegration.md) is prepared, but no real
consumer was fabricated or enrolled. These obligations remain WP-0008 T01/T02.
## Approved repair completed — 2026-09-28
User decision `abdea390-1039-4da1-b129-33aad00b4396` approved the exact attended
repair. Activity Core source `4bd07a4` and platform pin `986b002` were pushed;
ArgoCD root synced only the activity-core Application, then the child synced only
its worker Deployment. ArgoCD is Synced/Healthy at the intended revision. Live
Python source hashes, resolver registry and grant identity match the tested image.
All three Temporal scheduled smokes completed with no tasks or model calls, and
all three State Hub receipts validate. Temporary smoke schedules are removed;
recurring schedules remain active. [Live evidence](evidence/2026-09-28-reporting-live.json)
and [next fires](evidence/2026-09-28-reporting-postrepair-schedules.json).
The monthly sink now carries review health, decisions/defaults and measured effort
with unknown-cycle counts. Today's actual monthly smoke covers August; the separately
labeled October fixture checks September data. October 1 09:00 Berlin remains the
first natural monthly packet, not completed early. Health fields are explicitly dated
owner snapshots, not independently sampled live attestations. The current input is
[versioned here](../feedback/monthly-review-input.json); stale snapshots are flagged.
ACTIVITY-WP-0040 T02 retains natural cadence evidence; ACTIVITY-WP-0041 and
RPF-WP-0048 retain continuous-health observation and standing release authority.
Their old September 27 observation interval is invalidated by the reporting failure.
The scoped exception does not enable automatic pattern editing or routine releases.

View file

@ -0,0 +1,19 @@
{
"activity_id": "92e514a6-aeb8-5e22-9292-c62dd26dd757",
"activity_name": "Frontend Patterns Monthly Review",
"mode": "live",
"recreate_recurring": false,
"recurring_schedule_id": "activity-schedule-92e514a6-aeb8-5e22-9292-c62dd26dd757",
"smoke_fire_at": "2026-09-28T09:26:26.213347+00:00",
"smoke_schedule_id": "activity-smoke-test-92e514a6-aeb8-5e22-9292-c62dd26dd757",
"smoke_workflow_id_prefix": "activity-92e514a6-aeb8-5e22-9292-c62dd26dd757:smoke-20260928T092626Z",
"wait_result": {
"result": {
"run_id": "6bbcc7a1-0407-59af-a2f4-2437ce8c4f62",
"tasks_spawned": 0
},
"run_id": "01a0e756-4619-7898-a53e-8f26940dafe1",
"status": "completed",
"workflow_id": "activity-92e514a6-aeb8-5e22-9292-c62dd26dd757:smoke-20260928T092626Z-2026-09-28T09:26:26Z"
}
}

View file

@ -1,5 +1,5 @@
{
"checked_at": "2026-09-28T09:25:41.617137+00:00",
"checked_at": "2026-09-28T09:27:28.340970+00:00",
"authorization_decision": "abdea390-1039-4da1-b129-33aad00b4396",
"activity_source_revision": "4bd07a4f44f38bb4f27cfb381cfe53d555c2c6fe",
"platform_source_revision": "986b0023aaeca961dfcc5be1c7c5ec796d8f2d0a",
@ -40,8 +40,70 @@
"created_at": "2026-09-28T09:25:09.785868Z",
"workstream_id": null
},
"weekly_monthly_verification": "pending at this checkpoint",
"weekly_monthly_verification": "passed; live report-only Temporal smokes, zero spawned tasks/model calls",
"natural_daily_run_repaired_retroactively": false,
"unattended_pattern_executor": false,
"healthy_observation": "Prior interval invalidated; post-repair observation may begin after complete smoke proof, not backdated."
"healthy_observation": "All three post-repair sink smokes passed by 2026-09-28T09:26:27.806413Z; continuous healthy observation and admitted release identity remain unproven.",
"weekly_receipt": {
"workplan_id": null,
"id": "d2d87cae-725f-4f85-b546-94a6506e152c",
"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-28T09:25:53.235527+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@a18d83f74aa8cf0119125793ff24e9f10ff1b630\"],\"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-28T09:25:53.823131+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": "dd1ba4b1-bcbc-5c77-9d6a-270f55bb3416",
"llm_response_metadata": null
},
"author": "activity-core",
"session_id": null,
"created_at": "2026-09-28T09:25:53.587534Z",
"workstream_id": null
},
"monthly_receipt": {
"workplan_id": null,
"id": "f4fd73bf-ab4e-41c0-af9c-f8bf8759aa99",
"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-28T09:26:26.428736+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\",\"review\":{\"as_of\":\"2026-09-28T09:25:41.617137+00:00\",\"basis\":\"owner snapshot; not live attestation\",\"decisions\":[],\"default\":\"Retain current policy/budgets; no new authority or maturity claim.\",\"evidence_ref\":\"docs/evidence/2026-09-28-reporting-live.json\",\"health\":{\"collection\":\"daily scheduled smoke passed; natural repeat pending\",\"executor\":\"not admitted\",\"publication\":\"repair deployed; 0.1 reference unchanged\",\"rollback\":\"automatic proof pending\",\"schedule\":\"enabled; failed natural run, repair smoke passed\",\"verification\":\"no consumer outcomes verified\"},\"measured_effort\":{\"cost_usd\":{\"known\":0,\"unknown_cycles\":0},\"execution_minutes\":{\"known\":0,\"unknown_cycles\":0},\"reported_tokens\":{\"known\":0,\"unknown_cycles\":0},\"research_minutes\":{\"known\":0,\"unknown_cycles\":0}},\"research_cycles\":0,\"stale\":false},\"signals\":[],\"source_revisions\":[\"frontend-patterns@58e8ef675e9ba5a0de4e9d5ff8a43e8ea1e4c24f\"],\"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-28T09:26:26.213347+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": "6bbcc7a1-0407-59af-a2f4-2437ce8c4f62",
"llm_response_metadata": null
},
"author": "activity-core",
"session_id": null,
"created_at": "2026-09-28T09:26:27.806413Z",
"workstream_id": null
},
"recurring_schedules_preserved": true,
"smoke_schedules_removed": true
}

View file

@ -0,0 +1,35 @@
[
{
"mode": "daily",
"schedule_id": "activity-schedule-99f02c4c-161e-515d-926d-9e5d11d8411e",
"paused": false,
"next_fires": [
"2026-09-29T00:00:00+00:00",
"2026-09-30T00:00:00+00:00",
"2026-10-01T00:00:00+00:00"
],
"smoke_schedule_removed": true
},
{
"mode": "weekly",
"schedule_id": "activity-schedule-562005f8-ef43-5a9d-83e2-f09e00e62b81",
"paused": false,
"next_fires": [
"2026-09-29T01:00:00+00:00",
"2026-10-06T01:00:00+00:00",
"2026-10-13T01:00:00+00:00"
],
"smoke_schedule_removed": true
},
{
"mode": "monthly",
"schedule_id": "activity-schedule-92e514a6-aeb8-5e22-9292-c62dd26dd757",
"paused": false,
"next_fires": [
"2026-10-01T07:00:00+00:00",
"2026-11-01T08:00:00+00:00",
"2026-12-01T08:00:00+00:00"
],
"smoke_schedule_removed": true
}
]

View file

@ -1,5 +1,5 @@
{
"status": "approved_candidate_not_yet_deployed",
"status": "deployed_verified",
"base_image": "forgejo.coulomb.social/coulomb/activity-core@sha256:713bddad10a41950f446100a8b370fca8ccdd0b8969cccae751e3870c9c63ccd",
"candidate_image": "forgejo.coulomb.social/coulomb/activity-core@sha256:afd8a7af73132becba432e7b315d70f88d66676020169d5d8811641304136437",
"upstream_source_revision": "428f2d71b0f5ade11457e16d7b6341f571f6735f",
@ -14,12 +14,17 @@
"frontend-patterns"
],
"monthly_fixture_ref": "docs/evidence/2026-09-28-monthly-packet-fixture.json",
"production_mutation": false,
"production_mutation": true,
"deployment_gate": "Existing 24-hour healthy observation invalidated by required-context failure; attended exact repair exception or admitted owner release lane required.",
"gitops_tests_passed": 17,
"server_dry_run": "passed; nine existing managed resources",
"registry_digest_readback": true,
"worker_image_patch": "integrations/activity-core/worker-image.patch",
"rollback_revision": "428f2d71b0f5ade11457e16d7b6341f571f6735f",
"authorization_decision": "abdea390-1039-4da1-b129-33aad00b4396"
"authorization_decision": "abdea390-1039-4da1-b129-33aad00b4396",
"live_evidence_ref": "docs/evidence/2026-09-28-reporting-live.json",
"base_source_manifest_sha256": "5ebffd3831fac0269c89ac76ca1badb94ae6228ea8980b8d09480d81d0d5af59",
"candidate_source_manifest_sha256": "b00897cc73bb56137d7569e57b39b341cc99aa1e7630d3d0862b56cf2e952a7d",
"live_source_manifest_sha256": "b00897cc73bb56137d7569e57b39b341cc99aa1e7630d3d0862b56cf2e952a7d",
"runtime_probe": "integrations/activity-core/check_runtime.py"
}

View file

@ -0,0 +1,19 @@
{
"activity_id": "562005f8-ef43-5a9d-83e2-f09e00e62b81",
"activity_name": "Frontend Patterns Weekly Review",
"mode": "live",
"recreate_recurring": false,
"recurring_schedule_id": "activity-schedule-562005f8-ef43-5a9d-83e2-f09e00e62b81",
"smoke_fire_at": "2026-09-28T09:25:53.823131+00:00",
"smoke_schedule_id": "activity-smoke-test-562005f8-ef43-5a9d-83e2-f09e00e62b81",
"smoke_workflow_id_prefix": "activity-562005f8-ef43-5a9d-83e2-f09e00e62b81:smoke-20260928T092553Z",
"wait_result": {
"result": {
"run_id": "dd1ba4b1-bcbc-5c77-9d6a-270f55bb3416",
"tasks_spawned": 0
},
"run_id": "01a0e755-c514-71d8-88f1-889f028073d0",
"status": "completed",
"workflow_id": "activity-562005f8-ef43-5a9d-83e2-f09e00e62b81:smoke-20260928T092553Z-2026-09-28T09:25:53Z"
}
}

View file

@ -1,9 +1,9 @@
{
"schema_version": 1,
"as_of": "2026-09-28T09:25:41.617137+00:00",
"as_of": "2026-09-28T09:30:25.018209+00:00",
"health": {
"schedule": "enabled; failed natural run, repair smoke passed",
"collection": "daily scheduled smoke passed; natural repeat pending",
"collection": "three scheduled sink smokes passed; natural cadence pending",
"verification": "no consumer outcomes verified",
"publication": "repair deployed; 0.1 reference unchanged",
"rollback": "automatic proof pending",

View file

@ -24,6 +24,9 @@ The isolated checkout needs the owner's existing locked development environment.
The Docker build itself needs no new dependency installation: it extends the pinned
runtime and proves resolver registration plus typed grant support during construction.
The review compares all Python source hashes against the base, not only image labels.
Run `check_runtime.py` with the image’s Python (via stdin) to capture those hashes,
registered resolver names and a synthetic typed-grant identity; it performs no network
requests or application mutations.
The monthly extension reads this repository's `feedback/monthly-review-input.json`,
its cited evidence and learning ledger at the same resolved Git revision. It reports
@ -49,6 +52,7 @@ rollout. Do not retry the failed historical run as though it had succeeded natur
The owner's [release runbook](../../../activity-core/docs/gitops-release.md) requires
24 healthy hours and authenticated release authority. The domain failure invalidates
continuous-health claims; no admitted routine identity exists. An exact attended repair
exception is required before production promotion. Staging this artifact is not that
exception. No access/budget/policy expansion is part of the repair.
continuous-health claims; no admitted routine identity exists. The user granted exact attended repair
exception `abdea390-1039-4da1-b129-33aad00b4396`; promotion and all three live
scheduled sink smokes subsequently passed. See [live proof](../../docs/evidence/2026-09-28-reporting-live.json).
That exception does not establish standing release authority. No access/budget/policy expansion is part of the repair.

View file

@ -0,0 +1,7 @@
import hashlib,json
from pathlib import Path
import activity_core.context_resolvers
from activity_core.context_resolvers.base import CONTEXT_RESOLVER_REGISTRY
from activity_core.repository_grant import RepositoryGrant
root=Path('/app/src/activity_core')
print(json.dumps({'registered':sorted(CONTEXT_RESOLVER_REGISTRY),'source_hashes':{str(p.relative_to(root)):hashlib.sha256(p.read_bytes()).hexdigest() for p in root.rglob('*.py')},'grant_id':RepositoryGrant.model_validate({'version':'1','allowed_paths':['docs/'],'commit_count':{'min':1,'max':1},'publish':False}).grant_id}))

View file

@ -244,3 +244,26 @@ or pattern-editing authority was introduced.
The user subsequently approved the exact attended worker repair; State Hub decision
`abdea390-1039-4da1-b129-33aad00b4396`. Promotion and post-rollout proof are now authorized;
this is not standing authority or approval to restore the older grant-unaware image.
## Scoped worker repair verified — 2026-09-28
The approved repair is deployed: activity-core `4bd07a4`, platform pin `986b002`,
exact candidate digest `afd8a7af…`. ArgoCD root and child selectively synchronized
the Application pin and worker Deployment only. Live hashes preserve all other
Python source and the typed grant identity. Daily/weekly/monthly scheduled smokes
completed with validated State Hub receipts and zero model calls/spawned tasks.
[Live evidence](../docs/evidence/2026-09-28-reporting-live.json).
All three recurring schedules remain enabled; temporary smoke schedules are gone.
The monthly sink now includes dated owner-snapshot health, bounded decision/default
fields and monthly measured effort with unknown counts. Today's monthly smoke covers
August; the future-clock October fixture covers September. The actual October 1
packet and subsequent natural cadence are still required, owned with ACTIVITY-WP-0040
T02. Healthy pod status did not prevent the missing-resolver regression; old observation
claims are invalidated. Standing authority remains ACTIVITY-WP-0041/RPF-WP-0048 work.
T03 remains wait for real unassisted improvement, admitted executor, automatic
publication/rollback and natural monthly evidence. T01/T02 remain wait for hosted
registration access and actual eligible consumer integration/outcomes. No new tasks
or workplans, no manufactured use, and no new pattern-execution grant.