This commit is contained in:
Mateusz Gruszczyński
2026-08-23 23:44:35 +02:00
parent f569b7db14
commit 6e3075fae5
13 changed files with 313 additions and 591 deletions
+32 -32
View File
@@ -1,49 +1,49 @@
# GREE Controller v0.4.2 - build and validation report
# GREE Controller v0.4.3 - build and validation report
## Scope
Version 0.4.2 expands climate history and removes the Node/Tailwind build pipeline.
Version 0.4.3 restores the classic rounded GREE Controller UI while keeping the neutral light/dark palette and green accents introduced in the previous release. It also removes three Rust dead-code warnings reported by the LXC release build.
### History changes
## UI changes
- Added a dedicated `zone_readings` SQLite table.
- History samples include GREE indoor temperature, optional Home Assistant room temperature, calculated control temperature, effective profile target, device setpoint, Home Assistant outdoor temperature, power, HVAC mode, fan speed, demand, control source and active preset.
- Zone history is sampled no faster than every 15 seconds (or the configured device poll interval when longer) to avoid unnecessary SQLite growth.
- Added `GET /api/history` for one zone or all zones.
- History UI now supports a detailed per-zone view and common multi-zone comparison charts.
- Existing `readings` data and tables remain intact; the new table is created automatically on startup.
- Restored the classic large rounded cards and panels.
- Restored circular thermostat +/- and power controls.
- Restored compact desktop navigation and five-item mobile bottom navigation.
- Kept the v0.4.2 climate-history functionality and multi-series charts.
- Kept neutral dark/light surfaces.
- Dark accent: `#3ecf8e`.
- Light accent: `#24b47e`.
- UI is plain committed CSS in `web/styles.css`; no frontend package manager or CSS build step is used.
- Theme-aware scrollbars remain enabled and compact horizontal control scrollbars remain hidden.
### Web asset changes
## Rust warning cleanup
- `web/styles.css` is now the only CSS source used by the application.
- Removed `package.json`, `tailwind.config.js`, `web/tailwind.input.css` and `scripts/build-web.sh`.
- Removed all Node/npm/Tailwind build hooks from `dev.sh`, `install.sh` and `update.sh`.
- The CSS remains fully local and is embedded in the Rust binary with `include_str!`.
Removed code that was superseded by bucketed zone history:
## Validation performed
- `Db::list_zone_readings`
- `queries::LIST_ZONE_READINGS_BY_ZONE`
- `queries::LIST_ZONE_READINGS_ALL`
Passed in the packaging environment:
The active history path is `Db::list_zone_history` with the bucketed SQL queries.
- JavaScript syntax: `node --check web/app.js` and `web/sw.js`.
- JSON syntax for EN/PL language files and the PWA manifest.
- EN/PL translation-key parity (300 keys each).
- Shell syntax for all scripts in `scripts/`.
- Python syntax for the Home Assistant migration generator.
- HTML parsing and CSS brace-balance checks.
- SQLite schema creation plus insert/throttle/read tests for `zone_readings`.
- SQL centralization check: new SQL statements are in `src/queries.rs`.
- No Node/npm/Tailwind build files remain in the release tree.
## Validation performed in packaging environment
## Rust compilation
- HTML structure sanity checks.
- JavaScript syntax check with Node's parser only; Node is not part of the application/runtime.
- JSON validation for language files and HA manifest.
- Shell syntax checks for `scripts/*.sh`.
- Python syntax check for migration helper.
- Verified no `list_zone_readings` or `LIST_ZONE_READINGS_*` references remain.
- Verified no frontend build/package files are required.
- ZIP integrity test and SHA-256 manifest generation.
The packaging environment does not contain Cargo/Rust, so a full Rust compile could not be executed here. The LXC installer/updater still runs `cargo test --all-targets` before replacing the installed binary, unless `--skip-tests` is explicitly used.
A Rust toolchain is not available in the packaging environment, so the authoritative Rust tests and warning check run on the LXC through `scripts/update.sh` before installation.
## Recommended LXC update
Expected LXC validation:
```bash
unzip gree-controller-v0.4.2.zip
cd gree-controller
sudo ./scripts/update.sh
cargo test --all-targets
cargo build --release
```
The updater preserves `/etc/gree-controller.env` and `/var/lib/gree-controller/gree-controller.db` and rolls back automatically if the new service fails its health check.
The three warnings supplied from v0.4.2 have been removed at source rather than suppressed.