Fixes
- Windows:
map_defaultscrash —WindowsSensorEnumeratorwas missingmap_defaults(),read_one(),set_poll_interval(), and disk/network I/O reading. Any command touching system metrics (trcc test-lcd,trcc info, GUI startup) crashed withAttributeError - Windows:
charmapcodec crash —trcc reportandtrcc setup-winusbcrashed with Unicode encoding error on Windows consoles using default codepage. CLI now forces UTF-8 stdout/stderr on Windows - Windows: GUI used Linux sensor enumerator — GUI and API hardcoded the Linux
SensorEnumeratorinstead of routing to the platform-correct adapter viaControllerBuilder
Architecture
- SensorEnumerator ABC — new port in
core/ports.pywith 9 abstract methods. All 4 platform sensor adapters (Linux, Windows, macOS, BSD) now inherit from this ABC - Pure hexagonal DI —
lcd_device.pyandled_device.pyhave zero adapter imports. StrictRuntimeErrorif dependencies aren't injected viaControllerBuilder - 5239 tests (up from 5217) — new coverage for strict DI enforcement, builder methods, and ABC contract verification