Files
lda-wf/docs/historical/superpowers/plans/2026-09-10-rabbitreview-103-remediation.md
T

3.0 KiB

CodeRabbit 103: Selected Scheduling Corrections

Status: complete 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's threading.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_paths traversal to the shared input-binding model layer, update imports/docs/tests, apply expected_revision >= 1, consistent OccurrenceKind identity 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.