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).
File:
src/state/app_state.py:158,166,177Impact:
/modelswitching is session-scoped only; next launch reverts to the configured default./verbosetoggle resets.settings.jsonviaonChangeAppState.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_*_changelistener. Cover with a round-trip test (change → assert file content → restart → assert state).