This commit is contained in:
Mateusz Gruszczyński
2026-08-28 13:09:11 +02:00
parent 7b5c9e4528
commit 9a5e4892f4
10 changed files with 38 additions and 68 deletions
+8 -6
View File
@@ -1,4 +1,4 @@
# GREE Controller v0.8.6 - audit remediation report
# GREE Controller v0.8.7 - audit remediation and cleanup report
Source baseline: GREE Controller v0.8.5 audited on 2026-08-28.
@@ -9,7 +9,7 @@ This build addresses the ownership, safety, lifecycle and scheduling findings fr
Main changes:
- separated ordinary Quick Thermostat handback state from Temporary Quick Thermostat lifecycle;
- made `activated_at` authoritative for fresh Temporary sessions, with legacy fallback only for generation 0 data;
- made `activated_at` the sole authoritative marker for Temporary-session ownership;
- added explicit Temporary lifecycle states and preserved/restored the underlying Quick/manual state;
- delayed capture of `restore_zone_enabled` until actual takeover for delayed/at sessions;
- manual/direct device takeover now outranks Temporary completion and pauses condition/runtime accounting;
@@ -24,7 +24,8 @@ Main changes:
- active delayed/at Temporary sessions can be edited without accidentally rescheduling their historical start;
- Temporary schedule-boundary deadlines are refreshed after schedule edits;
- conflicting same-cycle automations are resolved deterministically, and blocked automations do not consume cooldown;
- UI exposes scheduled/waiting-master/paused-manual/active Temporary states and uses the same fresh-session activation rule as the backend.
- UI exposes scheduled/waiting-master/paused-manual/active Temporary states and uses the same `activated_at` ownership rule as the backend.
- removed the legacy Temporary-session `generation=0` / `local_thermostat_power` activation fallback and the compatibility-only model field/test path.
## Validation executed in this environment
@@ -33,9 +34,10 @@ Main changes:
- Python syntax compilation for Home Assistant integration files;
- shell syntax checks for `scripts/*.sh`;
- regenerated and verified `FILE_MANIFEST.sha256`;
- final ZIP integrity check.
- fixed compiler-reported Rust ownership error E0382 in `src/api.rs` by evaluating the `start_kind == "now"` predicate before moving `start_kind` into `TemporaryQuickThermostat`.
- final ZIP integrity check;
- verified that no Temporary-session references to `generation`, `generation=0`, or the removed local-power activation fallback remain in `src/` or `web/`;
- retained the compiler fix for Rust E0382 in `src/api.rs` by evaluating the `start_kind == "now"` predicate before moving `start_kind` into `TemporaryQuickThermostat`.
## Rust toolchain note
This environment does not contain `cargo`, `rustc`, `rustfmt` or `rust-analyzer`, so the Rust build and Rust test suite could not be executed here. The Rust changes were additionally checked for balanced delimiters and consistency of the modified model initializers, but a real `cargo test` remains required before production deployment.
This environment does not contain `cargo`, `rustc`, `rustfmt` or `rust-analyzer`, so the Rust build and Rust test suite for v0.8.7 could not be executed here. The modified Rust files were checked for balanced delimiters and all removed model-field references were verified absent. Run `bash scripts/update.sh` on the target host to execute the full Rust test suite before service replacement.