3.0 KiB
CodeRabbit 103: Selected Scheduling Corrections
Status: active
Branch: opencode/sched-verify-plan
Base under review: current HEAD (898a250c at plan start)
Scope: selected findings from random shit/rabbitreview/103.txt; no merge,
push, main-worktree edits, ORM, client-page redesign, broad DTO changes, or
valid Python 3.14 syntax rewrites.
Invariants
- Every schedule mutation is a synchronous compound operation executed while
the complete
FileScheduleStore.transaction()is held. Its async public method only delegates; no arbitrary coroutine is awaited under the store'sthreading.RLock. - History interval identity is based on aware UTC endpoints. A half-specified or naive interval is rejected; an entry with no interval keeps its existing created-time identity.
- Event-loop lock retries back off briefly without changing cancellation-safe cleanup, task registration, or shutdown joining.
- Existing crash ordering, revision checks, admission authority, and no-replay recovery semantics remain unchanged.
Work sequence
- Reproduce the selected test weaknesses and inspect current callers, then add red-first regression coverage for API/poll transaction ordering, interval identity, and the selected test-boundary hazards.
- Refactor schedule mutations into synchronous transaction-wrapped operations while preserving public async signatures and behavior. Verify concurrent admin/poll behavior and existing torn-write tests.
- Normalize and validate history interval identity; add equivalent-offset, invalid-endpoint, and duplicate-prevention tests.
- Add nonzero asynchronous lock backoff and rerun lifecycle, shutdown, deadlock, cancellation, and settlement pins.
- Move pure
walk_expression_pathstraversal to the shared input-binding model layer, update imports/docs/tests, applyexpected_revision >= 1, consistentOccurrenceKindidentity annotations, and PEP 604 dispatch unions. - Harden selected pagination, protocol, durability, subprocess, timer, and controlled revision-race tests. Keep test-only cleanup separate from production correctness.
- Correct the four selected documentation statements and lint every changed Markdown file.
- Run focused suites, Ruff, formatting, basedpyright, and diff-check; obtain a fresh independent review when available; re-review confirmed fixes and interactions before final handoff.
- Archive this completed plan under
docs/historical/superpowers/plans/and update any live links if needed.
Verification targets
Focused checks include tests/wf_api/test_schedules.py,
tests/scheduling/test_history_reconcile.py, tests/scheduling/test_poll.py,
tests/scheduling/test_lifecycle.py, tests/scheduling/test_lock_identity.py,
tests/wf_api/test_resume_attempt.py, tests/wf_transport_rpc_http/,
tests/artifacts/test_store.py, and tests/core/test_input_sources.py, plus
the existing lifecycle/resume/shutdown/recovery pins. Full-repository failures
will be compared with the actual feature base before being called pre-existing.