diff --git a/dev/ACTIVE_TASK.json b/dev/ACTIVE_TASK.json index ce754b7..b88e947 100644 --- a/dev/ACTIVE_TASK.json +++ b/dev/ACTIVE_TASK.json @@ -1,5 +1,5 @@ { - "task_file": "dev/tasks/DEV-000195-replayable-agent-canary-run-ids.json", - "task_id": "DEV-000195", + "task_file": "dev/tasks/DEV-000196-agent-canary-live-evidence.json", + "task_id": "DEV-000196", "task_revision": 1 } diff --git a/dev/tasks/DEV-000196-agent-canary-live-evidence.json b/dev/tasks/DEV-000196-agent-canary-live-evidence.json new file mode 100644 index 0000000..0cbcfb6 --- /dev/null +++ b/dev/tasks/DEV-000196-agent-canary-live-evidence.json @@ -0,0 +1,23 @@ +{ + "task_id": "DEV-000196", + "task_revision": 1, + "architecture_revision": "ADR-0018", + "base_repo_revision": "6854458e21ad7ec1c4b736dfabf916ae4f7fac12", + "risk_tier": "E", + "intent": "Record independently verified production evidence for the protected replayable Agent Execution dry-run canary.", + "requirement_ids": ["Agent Execution runtime and recovery", "durable canary evidence"], + "allowed_change_scope": {"modules": ["governance status", "evidence"], "paths": ["docs/PROJECT_STATUS.md", "docs/evidence/agent-execution-dry-run-canary-2026-08-23-v1.json", "dev/ACTIVE_TASK.json", "dev/tasks/DEV-000196-agent-canary-live-evidence.json"]}, + "forbidden_change_scope": {"paths": ["architecture/**", "security/**", "database/**", "deploy/**", "modules/**", "contracts/**", ".gitea/**"]}, + "allowed_architecture_delta": {"new_cross_module_dependencies": 0, "new_canonical_owners": 0, "new_privileges": 0, "new_third_party_dependencies": 0, "new_database_owner_roles": 0}, + "contracts": {"consume": ["existing protected canary contract", "existing durable Work execution records"], "may_change": ["status projection and evidence only"]}, + "semantic_owner": "governance", + "canonical_state": ["work.agent_dispatch_intents", "work.agent_leases", "work.agent_callback_heads"], + "state_transitions": ["none; evidence records already completed canary state"], + "side_effects_and_privileges": ["read-only status/evidence change after an explicit manual dry-run canary"], + "persistence_and_migrations": ["none"], + "failure_retry_restart": ["no runtime retry; retain the negative external-bridge finding"], + "assumptions": ["the production canary output and database rows were captured without secret values"], + "acceptance_scenarios": ["evidence contains callback_count 2", "evidence contains durable dispatch intent, ACTIVE lease and callback sequence 2", "status explicitly retains the external bridge gap"], + "required_tests": ["go test ./...", "go vet ./...", "go run ./cmd/devctl preflight -active dev/ACTIVE_TASK.json", "go run ./cmd/devctl check-diff -active dev/ACTIVE_TASK.json", "go run ./cmd/devctl check-architecture", "go run ./cmd/devctl independent", "git diff --check", "CI", "production public health check"], + "terminal_gap_states": ["BLOCKED_BY_MISSING_CAPABILITY", "BLOCKED_BY_SPEC_GAP"] +} diff --git a/docs/PROJECT_STATUS.md b/docs/PROJECT_STATUS.md index 4be9cba..dc2ea70 100644 --- a/docs/PROJECT_STATUS.md +++ b/docs/PROJECT_STATUS.md @@ -6,7 +6,7 @@ - `FAST_PROVIDER_STATUS = LIVE_SMOKE_SUPPORTED`: local CPU gateway authentication is configured through a protected file reference; four bounded local-only advisory cases completed through cognitive-worker. Evidence: `docs/evidence/wp-601-fast-gateway-live-smoke-2026-08-22-v1.json`. - `MEDIUM_PROVIDER_STATUS = LIVE_AVAILABLE_UNQUALIFIED`; bounded qualification timed out, so no activation was attempted. Evidence: `docs/evidence/wp-200-medium-qualification-2026-08-22-v3.json`. - `HEAVY_PROVIDER_STATUS = LIVE_QUALIFIED_UNACTIVATED`; the qualified GPU binding remains inactive. Evidence: `docs/evidence/wp-200-heavy-qualification-2026-08-22-v2.json`. -- `AGENT_EXECUTION_STATUS = RECOVERY_ONLY`; no independently operated bridge endpoint is configured. Durable recovery and status endpoints remain active. +- `AGENT_EXECUTION_STATUS = DURABLE_DRY_RUN_CANARY_VERIFIED`; the explicit production canary persisted a dispatch intent, an ACTIVE lease and callback head sequence 2. No independently operated bridge endpoint is configured, so bridge-backed execution remains unavailable. Evidence: `docs/evidence/agent-execution-dry-run-canary-2026-08-23-v1.json`. - `FLEET_EXECUTION_EVIDENCE = docs/evidence/audit-runtime-status-2026-08-23-v1.json`; FAST, MEDIUM and LIFEBOAT are ready, HEAVY is explicitly degraded by provider timeout, FAST remains preferred/selected, and LIFEBOAT is the fallback tier. - `TRUTH_RESEARCH_STATUS = LIVE_CANARY_PERSISTED`; the web research canary preserved an OBSERVED/COMPLETE/NO-CONFLICT source chain while leaving the claim UNVERIFIED and belief PROVISIONAL. Evidence: `docs/evidence/truth-runtime-canary-2026-08-23-v1.json`. - `LEARNING_REFLECTION_STATUS = LIVE_RECONCILED`; reflection worker returned no pending candidate and the durable state contains 31 RESOLVED candidates with no OPEN backlog. Evidence: `docs/evidence/reflection-runtime-reconciliation-2026-08-23-v1.json`. @@ -16,7 +16,7 @@ ## Current governance checkpoint -- `ACTIVE_TASK = dev/tasks/DEV-000190-live-audit-status-sync.json revision 1` +- `ACTIVE_TASK = dev/tasks/DEV-000196-agent-canary-live-evidence.json revision 1` - `LINEAGE_DECISION = docs/GOVERNANCE_LINEAGE_DECISION_2026-08-22.md`; historical packets remain provenance and are not current authority. - `REGISTRY_STATUS = YAML and JSON semantic mirrors agree` - `PRODUCTION_DOMAIN = docker.cin.su`; shared docker-test is not used for this project. diff --git a/docs/evidence/agent-execution-dry-run-canary-2026-08-23-v1.json b/docs/evidence/agent-execution-dry-run-canary-2026-08-23-v1.json new file mode 100644 index 0000000..3c708c1 --- /dev/null +++ b/docs/evidence/agent-execution-dry-run-canary-2026-08-23-v1.json @@ -0,0 +1,25 @@ +{ + "captured_at": "2026-08-23", + "environment": "production", + "endpoint": "internal agent-canary profile on docker.cin.su", + "run_id": "manual-run-1787444046393734499", + "dispatch_id": "manual-dispatch-1787444046393734499", + "canary_output": { + "callback_count": 2, + "store_writes": 0 + }, + "durable_database_verification": { + "dispatch_intent": "manual-dispatch-1787444046393734499", + "lease": { + "run_id": "manual-run-1787444046393734499", + "worker_id": "manual-worker", + "state": "ACTIVE" + }, + "callback_head": { + "run_id": "manual-run-1787444046393734499", + "last_sequence": 2 + } + }, + "interpretation": "The explicit protected dry-run canary is replayable and its dispatch, lease and callback chain are durable. This does not prove execution through an independently operated external bridge; the production agent worker remains recovery-only until that bridge is configured and qualified.", + "secrets_exposed": false +}