# GREE Controller v0.3.3 - build and validation report ## Scope of this release Version 0.3.3 prepares the project for repeatable Debian/Ubuntu LXC testing and centralizes SQLite statements. Changes include: - all operator-facing shell/Python utilities are under `scripts/`, - root-level `dev.sh` and `install-lxc.sh` were removed, - `scripts/dev.sh` contains the previous development workflow, - `scripts/install.sh` performs first systemd/LXC installation, - `scripts/update.sh` performs tested in-place updates with stopped SQLite backup, health check and automatic rollback, - `scripts/service.sh` wraps common service operations, - `scripts/install-lxc.sh` is a compatibility alias located inside `scripts/`, - `scripts/common.sh` provides shared deployment helpers, - `docs/LXC.md` documents the installed filesystem layout and update process, - every application SQLite statement and schema definition is now in `src/queries.rs`, - `src/db.rs` contains no embedded SQL statements, - Cargo package version updated to 0.3.3. ## LXC persistent paths ```text /opt/gree-controller/gree-controller /etc/gree-controller.env /var/lib/gree-controller/gree-controller.db /var/backups/gree-controller// /etc/systemd/system/gree-controller.service ``` The updater preserves `/etc/gree-controller.env` and backs up the stopped SQLite database before launching the new binary. ## Validation performed in the packaging environment | Check | Result | |---|---| | `bash -n scripts/*.sh` | PASS | | Python syntax for migration/HA integration | PASS | | JSON parsing for language packs, HA translations and manifests | PASS | | JavaScript syntax (`node --check web/app.js`) | PASS | | No root-level operator `.sh`/`.py` files | PASS | | SQL keyword scan outside `src/queries.rs` | PASS - no SQL statements found | | EN/PL localization files preserved | PASS | | `gree_controller` namespace preserved | PASS | `shellcheck` is not installed in the packaging environment, so a shellcheck pass could not be performed. The packaging environment also does not contain a Rust/Cargo toolchain, therefore the final compiler/type-check must be executed inside the target LXC. The provided installer does this by default. Recommended first-install validation: ```bash sudo ./scripts/install.sh ./scripts/service.sh status ./scripts/service.sh health ``` Recommended source/development validation: ```bash ./scripts/dev.sh --check ``` Recommended update validation with a newer archive: ```bash sudo ./scripts/update.sh ./scripts/service.sh health ```