Skip to content

0.18.0 — Stop button for running scans

Choose a tag to compare

@diegoeis diegoeis released this 17 May 01:31
· 60 commits to main since this release

Cancel a long-running scan without restarting Obsidian, without leaving frontmatter half-written.

New Features

  • Stop button next to Run now / Run this rule: while a scan is in progress, the Run button stays visible in a disabled / loading state and a red Stop button appears next to it. Clicking Stop finishes the file currently being processed (so frontmatter is never left half-written) and skips every remaining file in the queue.
  • Stop running scan command in the command palette: hidden when idle, visible only while a scan is in progress. Same semantics as the in-UI Stop button.
  • Stopped notice: the completion notice now reports stopped runs explicitly, e.g. Conditional Properties: 5 modified / 6 scanned — stopped (skipped 94 of 100).

Internal

  • New plugin-level flags _scanRunning / _cancelScan and helpers isScanRunning(), requestStopScan(), onScanStateChange(cb). Each scan iteration checks _cancelScan before starting the next file.
  • Settings tab subscribes to scan-state changes so both Run buttons (vault-wide and per-rule) flip between idle/running automatically without re-rendering the whole tab.
  • Concurrent runScan / runScanForRules calls short-circuit with { busy: true } instead of silently double-running.

Out of Scope

  • Scheduler runs (automatic every-N-minutes) remain unstoppable from the UI — they have no surface to show a Stop button. A manual run during a scheduler tick is rejected as busy.
  • Run conditional rules on current file is single-file and stays uninterruptible (atomic by nature).

Compatibility

  • Minimum Obsidian version: 1.5.0 (unchanged).