Repository navigation
feat(storage): add sqlite durable fencing - #560
Conversation
Implement ADR-0068 PR3 local SQLite transactional fencing for session, tape, checkpoint, and runtime writes. Verification: - uv run pytest tests/coding_agent/test_sqlite_local_durable_fencing.py tests/ui/test_session_owner_store.py tests/ui/test_session_manager_owner_checks.py tests/ui/test_session_manager_public_api.py tests/cli/test_entrypoint_contract.py tests/cli/test_local_runtime.py tests/cli/test_repl.py tests/ui/test_http_server.py::TestSessionCreation::test_build_session_manager_enables_owner_store_for_local_sqlite_bundle tests/ui/test_http_server.py::TestSessionCreation::test_build_session_manager_enables_owner_store_for_equivalent_local_sqlite_bundle_paths tests/ui/test_http_server.py::TestSessionCreation::test_build_session_manager_does_not_enable_owner_store_for_non_bundle_storage -q - uv run ruff check <touched files>; uv run ruff format --check <touched files>; git diff --check
|
Caution Review failedPull request was closed or merged during review 📝 WalkthroughWalkthroughThis PR implements SQLite-backed durable session ownership with epoch-based fencing and async lease renewal. It enables local-only deployments to prevent conflicting modifications through authority-scoped mutations, epoch-advancing ownership takeovers, and lease-expiry-based reclamation. The session manager routes tape, checkpoint, and runtime persistence through a fenced durability layer when local SQLite is detected, enforcing ownership at transaction boundaries. CLI and REPL session lifecycle becomes async to support ownership acquisition and lease renewal. ChangesDurable session ownership with SQLite fencing
Estimated code review effort🎯 4 (Complex) | ⏱️ ~75 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary
Verification
uv run pytest tests/coding_agent/test_sqlite_local_durable_fencing.py tests/ui/test_session_owner_store.py tests/ui/test_session_manager_owner_checks.py tests/ui/test_session_manager_public_api.py tests/cli/test_entrypoint_contract.py tests/cli/test_local_runtime.py tests/cli/test_repl.py tests/ui/test_http_server.py::TestSessionCreation::test_build_session_manager_enables_owner_store_for_local_sqlite_bundle tests/ui/test_http_server.py::TestSessionCreation::test_build_session_manager_enables_owner_store_for_equivalent_local_sqlite_bundle_paths tests/ui/test_http_server.py::TestSessionCreation::test_build_session_manager_does_not_enable_owner_store_for_non_bundle_storage -q=> 211 passed, 50 warningsuv run ruff check <touched files>uv run ruff format --check <touched files>git diff --checkReview
Summary by CodeRabbit
Release Notes
New Features
Tests