core-agent-ide/codex-rs/state
jif-oai 87bbfc50a1
feat: prevent double backfill (#11377)
## Summary

Add a DB-backed lease to prevent duplicate `.sqlite` backfill workers
from running concurrently.

### What changed
- Added StateRuntime::try_claim_backfill(lease_seconds) that atomically
claims backfill only when:
  - backfill is not complete, and
  - no fresh running worker currently owns it.
- Updated backfill_sessions to use the claim API and exit early when
another worker already holds the lease.
- Added runtime tests covering:
  - singleton claim behavior,
  - stale lease takeover,
  - claim blocked after complete.
- Set backfill lease to 900s in production and 1s in tests.

### Why

This avoids duplicate backfill work and reduces backfill status churn
under concurrent startup, while preserving
current best-effort fallback behavior.
2026-02-11 00:24:20 +00:00
..
migrations feat: mem v2 - PR5 (#11372) 2026-02-10 23:22:55 +00:00
src feat: prevent double backfill (#11377) 2026-02-11 00:24:20 +00:00
BUILD.bazel feat: sqlite 1 (#10004) 2026-01-28 15:29:14 +01:00
Cargo.toml feat: drop sqlx logging (#10398) 2026-02-02 19:26:58 +00:00