Skip to content

AppState model/verbose/expanded-view changes are never persisted; user preferences reset on restart #280

Description

@ericleepi314

File: src/state/app_state.py:158,166,177

def _on_main_loop_model_change(...):
    # TODO: persist to user settings via ``src.settings`` once the
    # writer-side has a single chokepoint.

def _on_verbose_change(...):
    # TODO: persist to global config.

def _on_expanded_view_change(...):
    # TODO: persist to global config as showExpandedTodos +
    # showSpinnerTree (TS: onChangeAppState.ts:123-136).

Impact:

  • /model switching is session-scoped only; next launch reverts to the configured default.
  • /verbose toggle resets.
  • Expanded-view (todos/spinner-tree) display preference resets.
  • TS parity persists these to settings.json via onChangeAppState.ts:123-136.

Fix sketch: Add a src.settings.write_user_setting(key, value) chokepoint (or use the existing writer if one exists), call it from each _on_*_change listener. Cover with a round-trip test (change → assert file content → restart → assert state).

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions