2.5 KiB
id, name, status, depends_on, scope, risk, impact, level, tags
| id | name | status | depends_on | scope | risk | impact | level | tags | |||
|---|---|---|---|---|---|---|---|---|---|---|---|
| sqlite-fix-scheduler-error-classification | Classify run_schedules' renew-failure arms (review 004 item 9) | pending | narrow | low | component | implementation |
|
Description
The SQLite run_schedules error flattening, per
docs/reviews/004-pre-release-general-review.md §"Findings recorded,
not fixed" item 9: the renew arm maps any renew failure — including
the closed-store Database error — to LeadershipLost
(scheduler.rs:216, lease.renew(LEADER_TTL_S).await.unwrap_or(false)),
misdirecting the documented respawn recipe at a dead store (an operator
respawns a leader against a store that is closed).
Decide the right arm set and implement it: closed-store vs
leadership-lost vs storage failure — what run_schedules returns on a
dead store, and what stays LeadershipLost.
Contract-adjacent — check the window state first. This is an error-classification change on a stable surface (what error a public scheduler entry point returns is contract-observable). As of the decomposition (2026-10-11) no publish tag exists, so the class-1 window is presumed open — verify, and if open, land with a dated ADR-023 §2-style annotation of the classification. If the window has closed (the user has published), raise with the user before changing the observable error surface, per AGENTS.md's ADR-wins discipline.
Acceptance Criteria
- The arm set is decided and recorded in Notes (which error maps
where, citing the contract text that pins
run_schedules' error surface); the closed-store arm no longer reportsLeadershipLost - The window state was verified and recorded; a dated annotation landed if class-1, or user sign-off if post-publish
- A test pins the closed-store arm (and the genuine leadership-lost arm's unchanged disposition)
- The documented respawn recipe's text (wherever it lives) matches the new classification
cargo test -p alkstore-sqlite, clippy-D warnings, fmt clean; workspace gates green server-less
References
- docs/reviews/004-pre-release-general-review.md §"Findings recorded, not fixed" item 9 (the finding, the "record, don't rush" note this task discharges)
- docs/architecture/core-contract.md (the scheduler error surface)
- alkstore-sqlite/src/scheduler.rs:205-216 (the flattening site)
Notes
To be filled by implementation agent
Summary
To be filled on completion