v3.0.0 — Hexagonal Architecture
Major architectural refactor to hexagonal (ports & adapters) pattern. All business logic now lives in the services layer, shared by GUI, CLI, and API adapters.
New
- Services layer — 7 service classes (Device, Display, Image, LED, Media, Overlay, Theme) + SystemService
- CLI Typer — migrated from argparse to Typer with OOP command classes
- REST API — FastAPI adapter (optional
[api]extra) - FontResolver — extracted font resolution infrastructure from overlay service
trcc doctor— dependency and udev rule health check
Refactored
overlay_renderermerged intoservices/overlaymedia_playerstripped to pure decoders (no playback state)- Module renames for consistency:
paths→data_repository,sensor_enumerator→system_sensors,sysinfo_config→system_config,cloud_downloader→theme_cloud,driver_lcd→device_lcd - Dead code removed:
theme_io,constants,device_base,device_implementations
Stats
- 2081 tests across 29 files
- 80 files changed, -1146 net lines (cleaner, smaller)
- ruff clean, pyright 0 errors
Install
pip install trcc-linux==3.0.0