Skip to content

v0.95.0

Choose a tag to compare

@github-actions github-actions released this 16 Jun 00:54
· 34 commits to main since this release

v0.95.0 — Log-management audit: 6 fixes (2 data-loss) in the never-swept rotation/move/settings subsystem

A multi-agent discovery audit aimed squarely at the newest, least-exercised code — the v0.43/v0.44 log-management and Settings-lifecycle subsystem, which had shipped without a defect sweep. Seven skeptical hunters, every finding adversarially verified for reachability (one candidate was correctly thrown out). Six genuine defects fixed:

  • Heavy log days no longer delete your newest archives. The rotation counter wasn't zero-padded, so once a day produced 10+ archives they sorted _1, _10, _11, _2, _3… — and retention pruning then deleted _10/_11/_12 (your most recent sessions) while keeping older ones. Archives now sort by their true (date, counter) order regardless of padding, so pruning always removes the genuinely oldest. (data-loss)
  • Moving the log to another drive no longer strands it. A cross-volume move copied the active log to the new drive but then failed relocating the archive folder (Windows can't Move a directory across volumes), leaving the log orphaned at the destination while the app insisted "nothing was applied." Moves are now cross-volume-safe and roll back cleanly on any failure, so the log is never stranded and the message is always truthful. (data-loss)
  • Moving the log into a folder that already has a logs\ subfolder no longer loses your history. That case used to silently skip relocating the archives (stranding them, un-prunable) while still re-pointing the app at the new location. The archives now merge into the destination, preserving any same-named files already there.
  • Re-acquired items reappear correctly in OCR-only mode. After clearing the live-gear cache with TTS capture off, an internal one-shot "replay" flag could get stuck on, which permanently disabled the mechanism that un-hides a deleted item when you pick it up and hover it again. The flag now retires correctly when there's no TTS channel.
  • Switching characters while viewing a past session now works. Picking a different character from the switcher during a read-only session preview silently did nothing on screen (and the "Switched to…" toast lied). It now exits the preview and shows the chosen character.
  • The session picker no longer shows "loading sessions…" forever when there are no past sessions — it now says "no past sessions yet."

Under the hood

  • +11 Core test assertions (993 → 1004), including a ≥10-same-day-rotation ordering test and a MoveArchives merge/collision/no-op test. Build is warning-free.
  • New cross-volume-safe, merge-not-strand LogStore.MoveArchives (headlessly tested).
  • All findings adversarially verified; 1 candidate correctly refuted (a "Battle.net launcher" hard-block that would have been a regression). One deeper data-loss issue in the rotated-archive replay path was confirmed and is deliberately deferred to its own release so it can ship with dedicated multi-session replay tests.