Skip to content

Hauser v0.4.0-beta.7

Pre-release
Pre-release

Choose a tag to compare

@ralleur ralleur released this 25 Aug 07:23
· 47 commits to main since this release

Release identity

Version 0.4.0-beta.7
Git tag v0.4.0-beta.7 (annotated, e7e66551)
Source commit 53eb36dac938604ea7cd8aa49319842dfa0d523a
Image ghcr.io/ralleur/hauser@sha256:4d831a9b29378add81519dee619d74609de06e6aa71bdfc8eff65040c2bcdc19
Also tagged :v0.4.0-beta.7 and :0.4.0-beta.7 (same manifest; the Supervisor resolves the unprefixed tag)
Platforms linux/amd64, linux/arm64
Config schema v3, with the v1 → v3 migration path included

What changed

License change — AGPL-3.0-or-later

Starting with this release, Hauser is licensed under AGPL-3.0-or-later instead
of MIT. Everything released up to and including v0.4.0-beta.6 stays MIT and
can be forked from there; this applies going forward only, nothing has been
withdrawn or retagged. Running Hauser unmodified in your own home creates no
new obligation at all — AGPL only asks someone who modifies Hauser and offers
it to other people over a network to share the source of that modified
version. Contributions now require agreement to a CLA. Full
reasoning in ADR-025.

Fixed — reconfigure "Save changes" silently failed (#7, #9)

The setup wizard's reconfigure flow (Settings → Rooms & Devices) never sent
the If-Match / X-Hauser-Shared-Config-If-Match ETag preconditions that
POST /api/setup/activate has always required when reconfiguring. Every
reconfigure save was rejected with 428 CONFIG_PRECONDITION_REQUIRED before
anything was written — no console error, no visible feedback near the
button — and any rooms or devices found by Reload rooms and devices
reverted to the previously active configuration on leaving the screen. This
predates beta.5; it was not a regression. The wizard now captures both
ETags from the initial configuration load and sends them back on save.

Installation or update

Back up before changing images. For the App, create a Home Assistant backup
that includes Hauser; for Compose, run ./scripts/backup.sh.

Fresh Compose install:

git clone https://github.com/ralleur/hauser.git
cd hauser
docker compose up -d

Update from v0.4.0-beta.6:

./scripts/backup.sh
git pull
docker compose pull
docker compose up -d

Previous immutable image for rollback: ghcr.io/ralleur/hauser:v0.4.0-beta.6.

Verification evidence

  • Tests (1439), typecheck, production build and static demo build: green in
    CI (Tests, builds and container contract, run 97715280558).
  • Container health, setup-required start and persistence: verified by
    scripts/verify-container.sh against a commit-bound local image
    (ci-53eb36dac938) in the same CI job. This is a build-time contract check,
    not a pull/smoke test of the published multi-arch digest above.
  • Release metadata, license boundary and dependency audit: verified by
    scripts/verify-release-metadata.sh, scripts/verify-license-boundary.sh
    and npm audit --omit=dev --audit-level=high in CI.
  • The linux/amd64 and linux/arm64 manifest was built and pushed to GHCR
    successfully (Publish immutable GHCR image, run 97717399282); that job
    does not separately pull and re-test the published digest.
  • The reconfigure-save fix itself is covered by an updated unit test
    asserting the If-Match / X-Hauser-Shared-Config-If-Match headers are
    sent (household-config-v3.test.ts). It has not yet been exercised
    end-to-end against a live Home Assistant instance by the maintainer or an
    external user — reports on #7 or #9 are welcome once you've updated.

Known limitations

  • The vacuum path (beta.5) follows the documented Home Assistant service
    set and is still not verified against real hardware.
  • The reconfigure-save fix in this release has unit-test coverage only; it
    has not yet been confirmed against a live Home Assistant instance.
  • An external, real-home installation covering this release remains the next
    beta-stabilisation evidence gate.
  • This package remains an experimental technical beta without a support SLA.

Security and support

See SECURITY.md. Hauser is a hobby project without an SLA —
do not expose it directly to the internet without an authentication and TLS
boundary in front of it.