BOLT-1636: extend scheduled-command cancellation to tag schedules
blockedRichie requested 2026-08-14: continue BOLT-1636 cancellation work. Enumerate the existing cancelCommand/cancelBatch behavior and the Schedule-domain TagSchedule model/lifecycle; determine whether a scheduled command can be causally linked to a tag schedule and implement the smallest safe common cancellation path. Preserve schedule semantics: do not delete unrelated/repeating tag schedules; deletion/cancellation needs an explicit schedule identity or relationship. Add targeted coverage, branch winston/bolt-1636-tag-schedule-cancellation, open PR, and monitor CI.
Event Timeline
created
status_change
queued → in_progress
failed
lease expired — re-queued for retry
in_progress → queued
status_change
queued → completed
subagent_completed
subagent done: TASK_COMPLETE: Gateway interrupted after applying local review-fix changes; no commit or push completed.
status_change
completed → in_progress
failed
lease expired — re-queued for retry
in_progress → queued
status_change
queued → in_progress
progress
Pushed 9170ca9a727 to PR #14397: durable cancellation records are created atomically with TagSchedule soft delete and processed/retried by Schedule worker. Focused tests and local static checks passed; CI/review rerun active.
failed
lease expired — max retries reached, marking failed (poison pill)
in_progress → failed
status_change
failed → in_progress
failed
lease expired — max retries reached, marking failed (poison pill)
in_progress → failed
status_change
failed → in_progress
failed
lease expired — max retries reached, marking failed (poison pill)
in_progress → failed
status_change
failed → in_progress
failed
lease expired — max retries reached, marking failed (poison pill)
in_progress → failed
status_change
failed → blocked
progress
Addressed all four remaining PR #14397 review threads and pushed 8c9696d77ef. Durable cancellation record/worker and test isolation were in 9170ca9a727; this commit adds failed-event assertion and bounded BullMQ failed-job retention. Focused Device and Schedule tests pass; CI rerunning.
subagent_completed
subagent done: [NO_TASK_COMPLETE_MARKER] PR #14397: four review threads addressed and resolved; pushed 8c9696d77ef; focused Device and Schedule tests passed; CI running.
status_change
blocked → in_progress
failed
lease expired — max retries reached, marking failed (poison pill)
in_progress → failed
progress
Generalized PR #14397 outbox as ScheduleCommandOutbox (device/tag source and cancel/dispatch actions); pushed 6a21d913e01. Local build, focused tests, lint, and migration reset passed; CI restarted.
status_change
failed → in_progress
progress
PR #14397 Unit Tests check has 8,579 passing tests; failure is external DeepSource coverage-upload installer exit 127. Two newly opened CodeRabbit concurrency findings require code review/fix.
subagent_completed
subagent done: [NO_TASK_COMPLETE_MARKER] [SUBSTRATE-ABORT] Claude session failed: Internal error
failed
lease expired — max retries reached, marking failed (poison pill)
in_progress → failed
progress
Fixed PR #14397 Unit Tests DeepSource installer failure: pinned and SHA-verified DeepSource CLI v0.10.1 direct release download, avoiding the upstream latest resolver that returned `error` as a successful response. Verified YAML parsing and the exact download/checksum/extract flow; pushed e66a2127502. CI restarted.
subagent_completed
subagent done: [NO_TASK_COMPLETE_MARKER] fixed DeepSource CLI installer and pushed e66a2127502; CI restarted
status_change
failed → in_progress
failed
lease expired — max retries reached, marking failed (poison pill)
in_progress → failed
status_change
failed → in_progress
failed
lease expired — max retries reached, marking failed (poison pill)
in_progress → failed
status_change
failed → in_progress
failed
lease expired — max retries reached, marking failed (poison pill)
in_progress → failed
status_change
failed → in_progress
failed
lease expired — max retries reached, marking failed (poison pill)
in_progress → failed
status_change
failed → in_progress
failed
lease expired — max retries reached, marking failed (poison pill)
in_progress → failed
status_change
failed → blocked
subagent_completed
subagent done: [NO_TASK_COMPLETE_MARKER] CI completed successfully; all PR #14397 checks green and no unresolved review threads.
subagent_completed
subagent done: [NO_TASK_COMPLETE_MARKER] Pushed 1526c6619ed durable tag dispatch cancellation review fixes; focused tests/build/lint pass; CI running.
status_change
blocked → in_progress
failed
lease expired — max retries reached, marking failed (poison pill)
in_progress → failed
status_change
failed → in_progress
status_change
in_progress → blocked
subagent_completed
subagent done: [NO_TASK_COMPLETE_MARKER] Addressed all 13 PR #14397 review threads and pushed 46ff3eae9ae; focused Schedule/Device tests, builds, and lint pass; GitHub CI and CodeRabbit pending.
status_change
blocked → in_progress
progress
Pushed 46ff3eae9ae: all 13 PR #14397 review threads are resolved. Focused Schedule (20) + Device (4) tests, domain builds, and lint pass. CodeRabbit passed; GitHub Actions are pending.
subagent_completed
subagent done: [NO_TASK_COMPLETE_MARKER] Pushed 46ff3eae9ae resolving PR #14397 review feedback; local verification passed; GitHub CI remains in progress.
failed
lease expired — max retries reached, marking failed (poison pill)
in_progress → failed
status_change
failed → in_progress
failed
lease expired — max retries reached, marking failed (poison pill)
in_progress → failed
progress
Bypassed failed ACP run and committed/pushed generated Device schema artifacts at 7d49d003116. Local schema publish, diff check, pre-commit lint/typecheck/build passed; PR #14397 CI rerun queued.
status_change
failed → in_progress
failed
lease expired — max retries reached, marking failed (poison pill)
in_progress → failed
status_change
failed → in_progress
status_change
in_progress → blocked
status_change
blocked → in_progress
failed
lease expired — max retries reached, marking failed (poison pill)
in_progress → failed
status_change
failed → blocked