v8.2.9 — Config Migration & Test Isolation
Fixes
- Config key format migration — device keys changed from
"0:vid_pid"to index-only"0"withvid_pidstored inside the dict. Auto-migration on config load prevents upgrade breakage (brightness/rotation resetting) - Test isolation —
tmp_configfixture made autouse so tests never write to real~/.trcc/config.json - Resume test race condition — asserts at synchronous boundary instead of racing against background thread
- API test_save_theme — fixed mock target (
load_confignotsettings)
Improvements
- SystemService strict DI —
SensorEnumeratorinjected via constructor, composition roots wire it - vid_pid cache —
device_config_key()caches vid_pid per index, auto-stored on firstsave_device_setting() - 4667 tests pass, ruff + pyright clean, 0.9% average CPU