diff --git a/dev/ACTIVE_TASK.json b/dev/ACTIVE_TASK.json index a908e1e..b044ed2 100644 --- a/dev/ACTIVE_TASK.json +++ b/dev/ACTIVE_TASK.json @@ -1 +1 @@ -{"task_file":"dev/tasks/GEN2-DEPLOY-001-supervisor-and-production-rollback.json","task_id":"GEN2-DEPLOY-001","task_revision":1} +{"task_file":"dev/tasks/GEN2-027-production-canary-and-controlled-gen2-traffic-transition.json","task_id":"GEN2-027","task_revision":1} diff --git a/docs/evidence/gen2-deploy-001-production-recovery-2026-08-29.json b/docs/evidence/gen2-deploy-001-production-recovery-2026-08-29.json new file mode 100644 index 0000000..92784e4 --- /dev/null +++ b/docs/evidence/gen2-deploy-001-production-recovery-2026-08-29.json @@ -0,0 +1,44 @@ +{ + "evidence_id": "gen2-deploy-001-production-recovery-2026-08-29", + "task_id": "GEN2-DEPLOY-001", + "production_revision_before": "36fc8ec", + "production_revision_after": "2083096aedaec73191e0bc9e2566f596e1810d82", + "topology": { + "supervisor": "assistant-supervisor-1", + "public_traffic": "Supervisor reverse proxy on creator web host port", + "control_api": "Supervisor loopback-only host control port", + "durable_state": "assistant_assistant_supervisor_state:/var/lib/supervisor/release-state.json", + "candidate": "assistant-creator-web-candidate-1" + }, + "canary": { + "candidate_health": "healthy", + "header_route": "X-Assistant-Canary=true -> candidate", + "header_route_http": 200, + "promoted": true + }, + "rollback": { + "drill": "candidate container stopped, Supervisor traffic rollback and release rollback invoked", + "stable_http": 200, + "stable_target_header": "stable", + "supervisor_restart": "healthy; traffic_mode=STABLE and stable release state restored" + }, + "postgres_recovery": { + "restart": "healthy", + "public_healthz": 200, + "public_readyz": 200 + }, + "cognitive_lifeboat": { + "previous_status": "restart loop/unhealthy", + "cause": "configured Qwen3-8B-Q4_K_M.gguf was absent from llm-local-models volume", + "remediation": "compose model reference changed to existing Qwen3.8-27B-UD-Q2_K_XL.gguf", + "current_status": "healthy", + "role": "local degraded cognitive provider; not Supervisor" + }, + "smoke": { + "public_healthz": 200, + "public_readyz": 200, + "public_login": 200, + "authenticated_household": "UNVERIFIED: browser session was unauthenticated; no credentials were read or entered" + }, + "interpretation": "Supervisor independence, durable release state, controlled header canary, stable rollback and restart recovery are production-observed. Authenticated household acceptance remains an explicit gap." +}