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:
parent
58e8ef675e
commit
80dc3e5d85
11 changed files with 217 additions and 16 deletions
3
SCOPE.md
3
SCOPE.md
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
19
docs/evidence/2026-09-28-monthly-repair-smoke.json
Normal file
19
docs/evidence/2026-09-28-monthly-repair-smoke.json
Normal 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"
|
||||
}
|
||||
}
|
||||
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
35
docs/evidence/2026-09-28-reporting-postrepair-schedules.json
Normal file
35
docs/evidence/2026-09-28-reporting-postrepair-schedules.json
Normal 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
|
||||
}
|
||||
]
|
||||
|
|
@ -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"
|
||||
}
|
||||
|
|
|
|||
19
docs/evidence/2026-09-28-weekly-repair-smoke.json
Normal file
19
docs/evidence/2026-09-28-weekly-repair-smoke.json
Normal 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"
|
||||
}
|
||||
}
|
||||
|
|
@ -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",
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
7
integrations/activity-core/check_runtime.py
Normal file
7
integrations/activity-core/check_runtime.py
Normal 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}))
|
||||
|
|
@ -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.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue