Summary
Wire the deferred UI and run-loop parts of the scheduled-tools pause / stop-all feature from docs/design/scheduled-tools.md. The deterministic backend is already implemented and merged.
Already done (backend)
ScheduledToolHost: host-pause gate (user-computer-profile.scheduled-tools-paused), per-relationship paused skip, due-checks against tool-relationship.last-started (stamped before each run), and StopAllRunningExecutions cancellation.
ScheduledToolPauseStateService: persist/read the pause flag, change event, and stop-all delegation.
- Schema:
tool-relationship.paused + last-started, user-computer-profile.scheduled-tools-paused.
- Deterministic tests for the above.
Remaining scope (this issue)
- Periodic
ScheduledToolRunner + MainWindowViewModel start/stop wiring (immediate run on startup, fixed poll interval, serialized non-overlapping invocations, cancel on shutdown).
- Pause-icon binding on the clock / scheduled-tools button (pause icon when paused).
- Boolean left-right toggle editor control (shared with entity-editor clone).
tool-relationship entity-type view fields: editable paused toggle + visible last-started.
Acceptance
- The runner starts on workspace open and stops on shutdown without overlapping runs.
- The main-window button shows the pause icon whenever paused.
- Per-relationship and host pause toggles edit through the boolean toggle control and persist.
Summary
Wire the deferred UI and run-loop parts of the scheduled-tools pause / stop-all feature from
docs/design/scheduled-tools.md. The deterministic backend is already implemented and merged.Already done (backend)
ScheduledToolHost: host-pause gate (user-computer-profile.scheduled-tools-paused), per-relationshippausedskip, due-checks againsttool-relationship.last-started(stamped before each run), andStopAllRunningExecutionscancellation.ScheduledToolPauseStateService: persist/read the pause flag, change event, and stop-all delegation.tool-relationship.paused+last-started,user-computer-profile.scheduled-tools-paused.Remaining scope (this issue)
ScheduledToolRunner+MainWindowViewModelstart/stop wiring (immediate run on startup, fixed poll interval, serialized non-overlapping invocations, cancel on shutdown).tool-relationshipentity-type view fields: editablepausedtoggle + visiblelast-started.Acceptance