2.9 KiB
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:tinycss2stylesheet parser,lang/*.json: JSON parsing,scripts/*.sh:bash -n,scripts/generate_ha_migration.py: Python bytecode compilation,web/tailwind.input.csssemantic CSS section matches the committedweb/styles.css,- no
node_modulesdirectory 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
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.