Repository navigation
fix: fail loud on unfenced durable config - #568
Conversation
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (12)
📝 WalkthroughWalkthroughThis PR implements durable fencing configuration validation by introducing centralized storage configuration constants and helpers, refactoring session manager and HTTP server initialization to use them, and adding comprehensive tests validating fencing enablement and configuration error handling for both local SQLite and PostgreSQL backends. ADRs 0015, 0060, and 0068 are marked as accepted. ChangesDurable Fencing Configuration and Validation
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Poem
✨ 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 |
Fix the #568 test regression where module-level HTTP SessionManager defaults became fenced and sync test cleanup started raising RuntimeError. Verification: - uv run pytest tests/ui/test_developer_console.py tests/ui/test_security.py tests/integration/test_wire_http_integration.py tests/ui/test_http_server_workspace_transfer.py tests/integration/test_durable_runtime_smoke.py tests/ui/test_http_server.py tests/ui/test_http_server_failover.py -q - uv run pytest tests/ -q (33 failed, 3622 passed, 4 skipped, 0 errors) - uv run ruff check tests/conftest.py tests/ui/test_http_server.py tests/ui/test_http_server_failover.py tests/ui/test_security.py tests/ui/test_developer_console.py tests/integration/test_wire_http_integration.py tests/ui/test_http_server_workspace_transfer.py tests/integration/test_durable_runtime_smoke.py - uv run ruff format --check tests/conftest.py tests/ui/test_http_server.py tests/ui/test_http_server_failover.py tests/ui/test_security.py tests/ui/test_developer_console.py tests/integration/test_wire_http_integration.py tests/ui/test_http_server_workspace_transfer.py tests/integration/test_durable_runtime_smoke.py - git diff --check Co-authored-by: Codex <codex@openai.com>
Summary
local_storage.pyservedefault empty storage config through the same sqlite bundle path used bySessionManager, so default sqlite fencing activates instead of silently running unfencedVerification
uv run pytest tests/ui/test_http_server.py -k build_session_manager -v(11 passed)uv run pytest tests/coding_agent/test_durable_fencing_adr_contract.py tests/coding_agent/test_sqlite_local_durable_fencing.py tests/coding_agent/test_pg_durable_fencing.py -v(41 passed)uv run pytest tests/ui/test_http_server.py tests/ui/test_http_server_failover.py tests/ui/test_session_manager_owner_checks.py -k "events or owner or failover or local_sqlite_bundle or partial_sqlite or default_sqlite_bundle" -v(74 passed)uv run ruff check src/coding_agent/local_storage.py src/coding_agent/server/session_manager.py src/coding_agent/server/http_server.py tests/ui/test_http_server.py tests/ui/test_http_server_failover.py tests/ui/test_session_manager_runtime.py tests/coding_agent/test_sqlite_local_durable_fencing.py tests/coding_agent/test_pg_durable_fencing.py tests/coding_agent/test_durable_fencing_adr_contract.pyuv run ruff format --check src/coding_agent/local_storage.py src/coding_agent/server/session_manager.py src/coding_agent/server/http_server.py tests/ui/test_http_server.py tests/ui/test_http_server_failover.py tests/ui/test_session_manager_runtime.py tests/coding_agent/test_sqlite_local_durable_fencing.py tests/coding_agent/test_pg_durable_fencing.py tests/coding_agent/test_durable_fencing_adr_contract.pygit diff --checkSummary by CodeRabbit
Release Notes
New Features
Bug Fixes
Documentation
Tests