v0.25.3
Scheduled-task run history
Scheduled/cron items now keep a bounded run history of recent cycle outcomes, visible in Settings → Scheduled tasks. Each item shows a collapsible "Run history — N fired · M skipped · K errors (last L)" summary that expands to the recent cycles, newest-first, each tagged Fired / Skipped (gate) / Skipped (off-hours) / Error with a timestamp and the gate exit code or error note.
This closes the observability gap from the gate feature: a gate skip is now durably recorded over time, not just reflected in the single most-recent lastSkipReason / lastGateExitCode fields. It also surfaces automatically in CronList.
Under the hood: Scheduler.fire() appends one event per completed cycle to a ring buffer capped at 50 entries, persisted through the existing item-save path (survives restarts). A gate that can't be evaluated but fires open is recorded as Fired with an explanatory note.