The APPROVED provider review requirement named a reviewer that does not exist. PR #6698 removed that gate while retaining exact source, candidate, CI, and deployment checks. The chat App Server routing and resumed prompt fix are part of source revision 5ad7557b0678e7aaee740bba5b27574959c953a1 on dev and candidate source tree on main.
Candidate 5ad7557b0678e7aaee740bba5b27574959c953a1-3890-1 passed candidate CI run #3890, deployed to TEST, and integrated into main. Automatic production promotion run #3893 failed because the old production backend still enforced the removed gate. A bounded backend-only bootstrap patched autocoder-engine image from sha256:d7da23c44f19cac16dd1b1def980473cccae9e5fbdf95e369e4183a4dc630bd7 to candidate sha256:672cf602013505f1fa2d022598f359197fc57a9ff8b2b7cc4abb4b70ca1617cb, under the free autocoder-database-migration Lease, with resourceVersion/old-image guards and saved pre-change deployment. Initial public health returned transient HTTP 503; the script restored the old ready image. A second attempt with a 150-second public health settle period succeeded. The Lease was released.
The normal promote-candidate.yaml retry #3894 then succeeded. Production release ledger state is production_live. Backend pod is ready at digest 672cf602...; frontend Deployment codecartography-frontend is ready at digest d9945edd.... Production backend and frontend deployment annotations name the exact candidate and source revision. The temporary bootstrap annotation was removed from Deployment metadata after normal promotion. The separately pinned AUTOCODER_WORKER_IMAGE still references sha-4eaee90621ef; worker image rotation and end-to-end chat behavior remain pending and must be verified before declaring the feature delivered.
PR #6733 added the repository-managed worker image build/rotation path. Candidate run #3899 and production promotion #3901 succeeded for source e663768c17704d5055adf4c06df919ea745361ad. The first worker dispatch #3902 failed in its startup checks before Docker or Kubernetes changes. PR #6735 made missing inputs and tools report their names and removed an unnecessary attempt-variable requirement. Candidate #3904 and promotion #3906 succeeded for source 4b5dafc3162186c32459f8d3c7223c1a1d3d16fe. Worker dispatch #3907 succeeded: production autocoder-engine is ready and AUTOCODER_WORKER_IMAGE is pinned to gitea.app.lan/autocoder/autocoder-engine@sha256:e6fe8b88c166ccc2a1c448315a0c94283f2ba288fec042a343524c7cca04e02b. The migration Lease is free. No worker pod was active when checked.
End-to-end chat is still unverified. At inspection, /api/codecartography/codex/accounts reported zero available slots; available subscription observations dated September 21–22 are stale, two accounts required reauthentication, and remaining accounts were held by capacity, spending, or protected-reserve admission. No paid model call or policy override was made. The source and promoted frontend retain the same chat API/UI surface. A production AutoCoder chat message plus a resumed second message, and a normal-project exec chat message, remain required acceptance evidence once an eligible subscription account is available.
The primary live admission blocker is the existing global pause: AUTOCODER_BACKGROUND_AUTOMATION_ENABLED=false and AUTOCODER_IMPLEMENTATION_WORKERS_ENABLED=false in autocoder-config. The 2026-09-21 global pause and 2026-09-22 API-only recovery change records retained these controls after worker NVMe failures. This change did not lift that stop. Account capacity observations are also stale, and no account was selected for a model call. End-to-end chat acceptance remains pending an authorized resolution of the scoped pause plus eligible capacity.