Files
gree-controller/BUILD_REPORT.md
T
2026-08-28 12:56:36 +02:00

2.8 KiB

GREE Controller v0.8.6 - audit remediation report

Source baseline: GREE Controller v0.8.5 audited on 2026-08-28.

Implemented remediation

This build addresses the ownership, safety, lifecycle and scheduling findings from the v0.8.5 control-logic audit, including the critical K1-K9 findings and high-priority H1-H14 findings.

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;
  • 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;
  • active Temporary sessions freeze their active mode/target and defer house/group mode/preset changes until handback;
  • whole-house/group ON no longer sends a bare power=true when there is no valid effective Heat/Cool decision;
  • generic Settings cannot mutate house master/mode outside the House transition APIs;
  • configuration export/import strips ephemeral runtime ownership, safely stops detached devices, reconciles gates and repolls devices;
  • direct climate automations for thermostat-managed devices now modify durable zone state instead of competing one-shot frames;
  • schedule boundaries and time automations participate in the common next-deadline wakeup;
  • continuous temperature hold requires fresh observations and is reset across controller restarts/manual takeover;
  • disabling a device or zone now follows the safe shutdown/cleanup path;
  • 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.

Validation executed in this environment

  • JavaScript syntax checks for web application files;
  • JSON parsing for language and Home Assistant manifest files;
  • Python syntax compilation for Home Assistant integration files;
  • shell syntax checks for scripts/*.sh;
  • regenerated and verified FILE_MANIFEST.sha256;
  • final ZIP integrity check.

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.