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).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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