Deployed and verified on 2026-07-23.
- Main commit:
c4aa461e09d2ea75a4953a6f47fe12f5ca5dbef3
- Image:
gitea.app.lan/eventhorizon/eventhorizon:sha-c4aa461e09d2
- Autodeploy run: 2357, succeeded
- Frontend run: 2358, succeeded
- Deployment: 2/2 updated and available replicas, zero restarts at validation
Quick-action suggestion generation had been classified as optional background inference. It shared a single concurrency gate and the provider circuit with automatic metric, evaluator, and memory jobs. When those jobs occupied the gate or opened the circuit, the suggestion endpoint returned HTTP 503 before making a model request.
The browser attempted generation once, hid the empty quick-action area, and emitted only a console warning. Production telemetry showed no quick-action model attempts during the affected period while foreground narration continued successfully.
- Quick-action suggestions are now interactive inference rather than background-optional work.
- An active suggestion request prevents new background inference from starting until the user-visible request completes.
- Existing bounded background work may finish, but it can no longer suppress suggestion generation through the background gate or circuit.
- The browser retries only typed HTTP 503 responses, using two bounded delays of 750 ms and 2 seconds.
- Retries stop when the selected game session changes.
- The quick-action area shows a loading state and a manual retry control if automatic attempts are exhausted.
- REQ-0488 was updated to make interactive priority, typed retry behavior, and visible exhaustion state durable product requirements.
- Rust formatting and diff validation passed.
- Focused inference-priority and quick-action contract tests passed.
- Full locked suite passed: 312 backend tests and 5 frontend tests.
- Rust 1.88 release WASM build and wasm-bindgen packaging passed.
- Kubernetes manifests rendered successfully.
- Docker static build validation reported no warnings.
- Both CI workflows succeeded.
- Live
/healthz returned healthy and /readyz reported PostgreSQL and Qdrant ready.
- The production-served WASM contains the new unavailable/manual-retry state.
- No artificial paid suggestion request was issued during deployment validation. Final model-response confirmation occurs on the next normal game session load or completed turn.
Deploy the previous known-good image through the repository-managed workflow. This change has no database migration or persisted-data transformation.