Files
RedBear-OS/local
vasilito 2f8e35a88a redbear-power: v1.40 persistent session state
The first item from the v1.39 deferred list: the user's
tab, sort mode, sort direction, tree mode, filter, and
fold set now survive a restart of redbear-power.

Architecture
  - New module session.rs (separate from config.rs which
    is read-only system-wide config).
  - config.rs: behavior config (refresh interval, theme,
    keybindings) — read once at startup, never written.
  - session.rs: mutable per-user runtime state — read at
    startup AND written on every tab change and on quit.

Storage
  - $XDG_CONFIG_HOME/redbear-power/session.toml (preferred)
  - ~/.config/redbear-power/session.toml (fallback)
  - Writes are atomic: temp file + rename(). A crash
    between write and rename leaves the prior session
    intact.

Save hooks
  - Every set_tab() call: tab is the high-signal event
    the user explicitly opted into.
  - On graceful quit (q/Esc): captures the final sort,
    filter, and fold set.

Failure modes
  - load() never errors. Missing file = defaults.
    Corrupt file = defaults + one-line warning.
  - save() never errors. Permission denied = eprintln!
    warning. The next launch reads the prior session
    (or defaults) and starts from there.

Tests
  - 6 new tests in session.rs (round-trip, missing-file,
    malformed-toml, atomic-save, default-state, end-to-end
    via App::save_session()).
  - 164/164 tests pass (was 158 in v1.39).

The improvement plan doc is also updated with §64
covering the v1.40 architecture, storage paths, save
policy, failure modes, and the v1.41 deferred list.
2026-06-21 12:18:13 +03:00
..