Bug Fixes
Issue #76 — Unable to save settings (HTTP 500)
Root cause: The web UI GET endpoint masks api_bearer_token as '********'. When saving, this masked value overwrites the real token. save_settings() then validates the 8-char masked string against a 32-char minimum, causing HTTP 500.
Fix (defense-in-depth):
routes.py: Strip masked/emptyapi_bearer_tokenbefore mergesettings.py: Safety net — skip validation for masked/empty tokens
Tests
- 4 new unit tests in
tests/test_issue76_masked_token.py
Closes #76