Prepare approved reporting repair and monthly review inputs

Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a0e738-9e15-7600-87e6-90dec3a7beef
This commit is contained in:
tegwick 2026-09-28 11:22:19 +02:00
parent 9baf6f1829
commit a18d83f74a
16 changed files with 663 additions and 1 deletions

View file

@ -1,5 +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).
FEP-WP-0008 owns this integration. The initial delivery is deterministic collection
and reporting. Automatic investigation and publication are a separate, outstanding
execution dependency; a weekly report is not evidence of an improvement cycle.
@ -134,3 +139,34 @@ September 27 14:07Z smoke receipt. See [recheck](evidence/2026-09-28-loop-rechec
Enabled schedules and prior smoke success do not prove this recurring execution.
WP-0008 T03 retains cadence/sink diagnosis; no outage cause or live fix is claimed.
The roster remains empty and mutation execution remains unadmitted.
## Diagnosed failure and prepared repair — 2026-09-28
Temporal fired the daily definition at 00:00Z. Worker run
`01a0e54f-c690-7caa-bae6-81cd5ed32416` failed with required context source
`frontend-patterns` not registered. Source `428f2d7` changed the worker from the
frontend overlay to the grant-aware API image; the running image has neither the
resolver module nor its registration. ArgoCD and pod readiness were healthy, so
those probes did not establish domain functionality.
[Diagnosis](evidence/2026-09-28-reporting-diagnosis.json),
[schedule readback](evidence/2026-09-28-reporting-schedules.json), and
[repair contract](../integrations/activity-core/README.md) pin the evidence.
The prepared overlay keeps the current grant-aware base and changes only the
domain resolver and its registration. Hash comparison preserves all other Python
source and the grant identity. The candidate also adds monthly owner-snapshot
health, decisions and measured research effort with unknown counts; it never grants
execution authority. Missing review inputs degrade the report visibly.
58 focused tests and 17 GitOps tests pass. Server dry-run passes for the same nine
resources; the actual resource diff is only the worker image. The published digest
is `afd8a7af73132becba432e7b315d70f88d66676020169d5d8811641304136437`.
The October 1 built-image fixture is 1,699 characters and contains no consumers,
unknown eligible-task denominator and unknown cost observations. This is fixture
proof, not an actual October run. Production promotion remains separately gated.
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.

View file

@ -0,0 +1,31 @@
{
"checked_at": "2026-09-28T09:21:05.990563+00:00",
"public_index_url": "https://forgejo.coulomb.social/coulomb/frontend-patterns/raw/branch/main/registry/indexes/capabilities.yaml",
"public_index_http_status": 200,
"hosted_registration_http_status": 404,
"credential_route": "reuse-surface-hub-write-token",
"credential_owner": "railiance-platform / OpenBao",
"registration_status": "blocked: routed credential unavailable to current operator session",
"credential_output_retained": false,
"consumer_roster_count": 0,
"candidate_scan": "Local workplan titles for frontend/UI/navigation/dashboard/portal/editor/wizard/cockpit across active/ready/blocked/proposed plans. A title scan is not an exhaustive task-level eligibility review.",
"candidates": [
{
"repo": "hub-core",
"workplan": "HUB-WP-0006",
"status": "blocked",
"reason_not_enrolled": "No active consumer decision/outcome inspected or authorized by this session."
},
{
"repo": "rapp-openbao",
"workplan": "RAPP-OPENBAO-WP-0002",
"status": "blocked",
"reason_not_enrolled": "Operator access policy, not a qualified frontend architecture consumption task."
}
],
"finished_examples_not_reopened": [
"vergabe-teilnahme VT-WP-0003/0004",
"state-hub STATE-WP-0048"
],
"consumer_instruction_ref": "feedback/ConsumerIntegration.md"
}

View file

@ -0,0 +1,73 @@
{
"basis": "built-image fixture; future October 1 clock; no production execution",
"bytes": 1699,
"report": {
"repo": "frontend-patterns",
"mode": "monthly",
"generated_at": "2026-10-01T07:00:00+00:00",
"status": "no_consumers",
"execution_ready": false,
"model_calls": 0,
"eligible_tasks": null,
"instrumented_repositories": 0,
"source_revisions": [
"frontend-patterns@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
],
"receipt_events": 0,
"duplicates": 0,
"real_uses": 0,
"synthetic_uses": 0,
"outcomes": {},
"decisions": {},
"signals": [],
"errors": {},
"limits": [
"Producer outcomes are not independently verified.",
"No admitted budget-enforced repository executor; automatic edits disabled.",
"Missing consumer instrumentation means coverage is unknown."
],
"workplan": "FEP-WP-0008",
"executor_dependency": "GLAS-WP-0012 / HFACT-WP-0001",
"window": {
"start": "2026-09-01T00:00:00+02:00",
"end_exclusive": "2026-10-01T00:00:00+02:00"
},
"review": {
"basis": "owner snapshot; not live attestation",
"as_of": "2026-09-28T09:15:00.370856+00:00",
"stale": false,
"health": {
"schedule": "daily fired; collection failed",
"collection": "deployed resolver missing",
"verification": "no consumer outcomes verified",
"publication": "0.1 pinned; repair not deployed",
"rollback": "automatic proof pending",
"executor": "not admitted"
},
"evidence_ref": "docs/evidence/2026-09-28-reporting-diagnosis.json",
"decisions": [],
"default": "Retain current policy/budgets; no new authority or maturity claim.",
"research_cycles": 18,
"measured_effort": {
"research_minutes": {
"known": 43.011,
"unknown_cycles": 11
},
"execution_minutes": {
"known": 3.222,
"unknown_cycles": 11
},
"reported_tokens": {
"known": 0,
"unknown_cycles": 18
},
"cost_usd": {
"known": 0,
"unknown_cycles": 18
}
}
},
"unselected_signals": 0,
"summary": "Frontend patterns monthly: no_consumers; 0 real uses, 0 unverified outcome signals. Automatic edits disabled."
}
}

View file

@ -0,0 +1,22 @@
{
"checked_at": "2026-09-28T09:15:00.370856+00:00",
"workplan": "FEP-WP-0008",
"deployed_source_revision": "428f2d71b0f5ade11457e16d7b6341f571f6735f",
"worker_image": "forgejo.coulomb.social/coulomb/activity-core@sha256:713bddad10a41950f446100a8b370fca8ccdd0b8969cccae751e3870c9c63ccd",
"pod_created_at": "2026-09-27T19:58:36Z",
"worker_ready": true,
"argo_health": "Healthy",
"daily_schedule_id": "activity-schedule-99f02c4c-161e-515d-926d-9e5d11d8411e",
"failed_workflow_id": "activity-99f02c4c-161e-515d-926d-9e5d11d8411e:${firstScheduledTime}-2026-09-28T00:00:00Z",
"failed_workflow_run_id": "01a0e54f-c690-7caa-bae6-81cd5ed32416",
"error": [
"temporalio.exceptions.ApplicationError: Required context source type 'frontend-patterns' is not registered"
],
"worker_module_inspection": {
"frontend_patterns_module_exists": false,
"package_init_imports_frontend_patterns": false
},
"diagnosis": "Source 428f2d7 changed worker from frontend overlay 77244c3 to grant-aware image 713bddad; resolver absent. Schedule fired, required-context failure stopped collection. Healthy pod/Argo status did not cover domain functionality.",
"repair": "Overlay resolver onto current grant-aware image; do not roll back to the older image that lacks grants.",
"production_mutation": false
}

View file

@ -0,0 +1,25 @@
{
"status": "approved_candidate_not_yet_deployed",
"base_image": "forgejo.coulomb.social/coulomb/activity-core@sha256:713bddad10a41950f446100a8b370fca8ccdd0b8969cccae751e3870c9c63ccd",
"candidate_image": "forgejo.coulomb.social/coulomb/activity-core@sha256:afd8a7af73132becba432e7b315d70f88d66676020169d5d8811641304136437",
"upstream_source_revision": "428f2d71b0f5ade11457e16d7b6341f571f6735f",
"tests_passed": 58,
"changed_python_files": [
"context_resolvers/__init__.py",
"context_resolvers/frontend_patterns.py"
],
"all_other_python_source_hashes_unchanged": true,
"grant_identity_preserved": true,
"registry_added": [
"frontend-patterns"
],
"monthly_fixture_ref": "docs/evidence/2026-09-28-monthly-packet-fixture.json",
"production_mutation": false,
"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"
}

View file

@ -0,0 +1,134 @@
[
{
"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": "database",
"sources": [
"database",
"temporal"
],
"trigger": {
"cron_expression": "0 2 * * *",
"trigger_type": "cron",
"misfire_policy": "catchup_latest",
"jitter_seconds": 0,
"timezone": "Europe/Berlin"
},
"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": "2026-09-28T00:00:00+00:00",
"missed_catchup_window": 0
},
"drift_hints": [],
"version": 1,
"created_at": "2026-09-27T11:23:29.549570+00:00",
"updated_at": "2026-09-27T11:23:29.549570+00:00",
"side_effect": false,
"trigger_config_public": {
"cron_expression": "0 2 * * *",
"trigger_type": "cron",
"misfire_policy": "catchup_latest",
"jitter_seconds": 0,
"timezone": "Europe/Berlin"
}
},
{
"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": "database",
"sources": [
"database",
"temporal"
],
"trigger": {
"cron_expression": "0 9 1 * *",
"trigger_type": "cron",
"misfire_policy": "catchup_latest",
"jitter_seconds": 0,
"timezone": "Europe/Berlin"
},
"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": [],
"version": 1,
"created_at": "2026-09-27T11:23:29.549570+00:00",
"updated_at": "2026-09-27T11:23:29.549570+00:00",
"side_effect": false,
"trigger_config_public": {
"cron_expression": "0 9 1 * *",
"trigger_type": "cron",
"misfire_policy": "catchup_latest",
"jitter_seconds": 0,
"timezone": "Europe/Berlin"
}
},
{
"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": "database",
"sources": [
"database",
"temporal"
],
"trigger": {
"cron_expression": "0 3 * * 2",
"trigger_type": "cron",
"misfire_policy": "catchup_latest",
"jitter_seconds": 0,
"timezone": "Europe/Berlin"
},
"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": [],
"version": 1,
"created_at": "2026-09-27T11:23:29.549570+00:00",
"updated_at": "2026-09-27T11:23:29.549570+00:00",
"side_effect": false,
"trigger_config_public": {
"cron_expression": "0 3 * * 2",
"trigger_type": "cron",
"misfire_policy": "catchup_latest",
"jitter_seconds": 0,
"timezone": "Europe/Berlin"
}
}
]