shrink root README into a landing page with a docs map and focused contributor guidance add TV_POWER_RUNBOOK as the canonical TV power rollout and canary runbook add CHANGELOG and move project history out of README-style docs refactor src README into a developer-focused guide (architecture, runtime files, MQTT, debugging) prune redundant older HDMI docs and keep a canonical HDMI_CEC_SETUP path update copilot instructions to a high-signal policy format with strict anti-shadow-README design rules align references across docs to current files, scripts, and TV power behavior
30 lines
1.7 KiB
Markdown
30 lines
1.7 KiB
Markdown
# Changelog
|
|
|
|
## April 2026
|
|
|
|
- Added Phase 1 TV power coordination on `infoscreen/groups/{group_id}/power/intent`.
|
|
- Added `POWER_CONTROL_MODE` with `local`, `hybrid`, and `mqtt` behavior.
|
|
- Added `src/power_intent_state.json` and `src/power_state.json` for power IPC and telemetry.
|
|
- Added `infoscreen/{client_id}/power/state` publishing from `simclient.py`.
|
|
- Added turn-off guard logic to avoid unintended TV-off races at event boundaries.
|
|
- Added [TV_POWER_RUNBOOK.md](TV_POWER_RUNBOOK.md) and test tooling in `scripts/test-power-intent.sh`.
|
|
|
|
## March 2026
|
|
|
|
- Hardened event-trigger screenshots (`event_start`, `event_stop`) against periodic overwrite races.
|
|
- Improved `latest.jpg` and `meta.json` synchronization for reliable dashboard updates.
|
|
- Added self-healing for stale or invalid pending screenshot trigger metadata.
|
|
- Improved display environment fallbacks (`DISPLAY=:0`, `XAUTHORITY`) for non-interactive starts.
|
|
- Allowed periodic idle captures in development mode so dashboard previews stay fresh without active events.
|
|
- Added content-type-aware trigger delays for event screenshots.
|
|
- Changed screenshot transmission to a 1-second polling tick so triggered sends fire within <=1s.
|
|
- Migrated dashboard payload to grouped schema v2 (`message`, `content`, `runtime`, `metadata`).
|
|
|
|
## November 2025
|
|
|
|
- Implemented the two-process screenshot pipeline (`display_manager.py` capture, `simclient.py` transmission).
|
|
- Added Wayland/X11 screenshot tool fallback chains.
|
|
- Extended dashboard payloads with screenshot and system metadata.
|
|
- Extended scheduler event type support for `presentation`, `webuntis`, `webpage`, and `website`.
|
|
- Added website autoscroll support via CDP injection and extension fallback.
|