¶ EventHorizon transactional item and context integrity
Date: 2026-07-23
- Moved semantic item-state reconciliation into foreground turn resolution after narration.
- Item deltas are validated and applied atomically with the matching chat pair, resolved snapshot, and session advance.
- A timeout or malformed item-state response now fails the uncommitted turn instead of preserving item state that contradicts the completed action.
- Kept passive-effect lifecycle evaluation as bounded background work.
- Removed rolling recap duplication from decision prompts.
- Restricted narrator context to player-visible scene continuity and active effects; full inventory and recalled persona memories remain outside narration.
- Classified transactional item reconciliation as foreground inference and reserved turn-budget time for it.
- Commit:
2d444d2a60e2b2f5a6c324292efc6ec71703ac4e
cargo fmt --all -- --check
cargo test --locked: 320 backend tests and 5 frontend tests passed.
- Production image:
gitea.app.lan/eventhorizon/eventhorizon:sha-2d444d2a60e2
- Kubernetes rollout completed with 2/2 replicas ready and zero restarts.
/healthz: HTTP 200, status ok.
/readyz: HTTP 200, PostgreSQL and Qdrant ready.
No existing game-session rows, transcript messages, item records, or memories were edited. During post-rollout log inspection, optional player-metric jobs showed upstream model timeouts and requeued as designed; application, PostgreSQL, and Qdrant readiness remained healthy.