65 lines
2.9 KiB
Markdown
65 lines
2.9 KiB
Markdown
# GREE Controller v0.4.1 - build and validation report
|
|
|
|
## Scope
|
|
|
|
Version 0.4.1 is a Web UI redesign release. Backend HVAC logic, protocol handling, SQLite layout and Home Assistant API behavior are intentionally unchanged from v0.4.0.
|
|
|
|
## UI redesign
|
|
|
|
The embedded interface was rebuilt around a Supabase-inspired dashboard language while keeping original GREE Controller branding and information architecture:
|
|
|
|
- compact neutral surfaces instead of oversized cards,
|
|
- thin theme-aware borders and 6-8 px radii,
|
|
- restrained green brand accent,
|
|
- no decorative shadows or background gradients,
|
|
- full desktop sidebar for Dashboard, Devices, Zones, History, Schedules, Automations, Settings and Events,
|
|
- existing five-item bottom navigation retained on phones,
|
|
- compact inputs, selects, segmented controls and dialog controls,
|
|
- custom inline navigation SVG icons with no external icon dependency,
|
|
- themed, narrow scrollbars with transparent tracks,
|
|
- Light, Dark and System themes driven from the same CSS token set,
|
|
- updated PWA theme colors and service-worker cache version.
|
|
|
|
## Offline Tailwind tooling
|
|
|
|
Added:
|
|
|
|
- `package.json`,
|
|
- `tailwind.config.js`,
|
|
- `web/tailwind.input.css`,
|
|
- `scripts/build-web.sh`.
|
|
|
|
Tailwind is development/build tooling only. The production controller serves the committed `web/styles.css`, which is embedded in the Rust binary. The browser never contacts a Tailwind CDN and the installed LXC service does not require Node.js.
|
|
|
|
If local Tailwind dependencies are installed, `dev.sh`, `install.sh` and `update.sh` rebuild the CSS automatically. Otherwise they use the committed prebuilt CSS.
|
|
|
|
The packaging environment could not download the npm Tailwind dependency because external npm access timed out. This does not affect the shipped UI because `web/styles.css` is already present and validated. `scripts/build-web.sh --install` can install the optional local build dependency on a development host with npm access.
|
|
|
|
## Validation performed
|
|
|
|
Passed:
|
|
|
|
- `web/app.js`: `node --check`,
|
|
- `web/index.html`: Python HTML parser,
|
|
- `web/styles.css`: `tinycss2` stylesheet parser,
|
|
- `lang/*.json`: JSON parsing,
|
|
- `scripts/*.sh`: `bash -n`,
|
|
- `scripts/generate_ha_migration.py`: Python bytecode compilation,
|
|
- `web/tailwind.input.css` semantic CSS section matches the committed `web/styles.css`,
|
|
- no `node_modules` directory is included,
|
|
- project-owned SQL remains centralized in `src/queries.rs`.
|
|
|
|
## Rust build
|
|
|
|
The packaging environment does not provide a working Cargo toolchain, so `cargo test --all-targets` and the release build were not executed here. On the target LXC, `scripts/install.sh` / `scripts/update.sh` run the Rust tests and release build before replacing the installed service.
|
|
|
|
## Expected LXC update
|
|
|
|
```bash
|
|
unzip gree-controller-v0.4.1.zip
|
|
cd gree-controller
|
|
sudo ./scripts/update.sh
|
|
```
|
|
|
|
Runtime configuration and SQLite data remain under `/etc/gree-controller.env` and `/var/lib/gree-controller/` and are preserved by the updater.
|