Commit Graph

2 Commits

Author SHA1 Message Date
Brian Krabach 85d3bb1312 fix: use deepcopy for DEFAULT_SETTINGS and narrow exception catch in settings module
- Replace DEFAULT_SETTINGS.copy() with copy.deepcopy(DEFAULT_SETTINGS) in
  load_settings() and save_settings() to prevent mutation of module-level
  mutable defaults (hidden_sessions list was shared via shallow copy)
- Replace except (json.JSONDecodeError, Exception) with
  except (FileNotFoundError, json.JSONDecodeError) to only suppress expected
  errors and let unexpected exceptions (PermissionError etc.) propagate
- Add two regression tests:
  test_load_does_not_mutate_default_settings: verifies deepcopy isolation
  test_load_propagates_non_json_errors: verifies narrow exception handling
2026-03-29 22:43:24 -07:00
Brian Krabach ffecfa69cb feat: add server-side settings module 2026-03-29 22:36:19 -07:00