Skip to content

v2.23.1

Choose a tag to compare

@zoltanam zoltanam released this 16 Jul 21:40

Fixed

Background fleet memory auto-scan now actually runs.

With auto-scan enabled, server memories could stay stale indefinitely — the scan never ran a single cycle. The loop slept the full configured interval (24h by default) before its first scan, and the last-run marker lived only in memory, resetting on every launch. Since the app rarely stays open for a whole interval, each restart restarted the clock and the first cycle never arrived.

  • Persistent schedule — the last-run timestamp is now stored in ~/.servonaut/memory_scan_state.json (atomic write, fails soft), so the schedule survives restarts.
  • Catch-up on launch — after a short startup grace, if the interval has already elapsed since the last run, the scan runs immediately instead of waiting out another full interval. A cycle skipped because the instance list hasn't loaded retries shortly after rather than burning a full interval.
  • Live status updates — a background cycle now updates the Fleet Memory table in real time (per-instance progress + repopulate) and refreshes the instance-list memory column, without interrupting you with a dialog. The Fleet Memory status line shows a real "next in ~Xh" countdown that persists across restarts.

Upgrade: pipx upgrade servonaut (or pip install -U servonaut). Shortly after your next launch, any stale servers get a catch-up memory scan automatically.