Skip to content

Hauser v0.4.0-beta.10

Pre-release
Pre-release

Choose a tag to compare

@ralleur ralleur released this 27 Aug 15:31
· 35 commits to main since this release

Release identity

Version 0.4.0-beta.10
Git tag v0.4.0-beta.10 (annotated, ad73b5dc)
Source commit f5fda5460a5df7eaa2c8eb58e7ed9aefcad38eed
Image ghcr.io/ralleur/hauser@sha256:ae87b24af625e49ad211f11e22881393523150f9c28f36e0b615ba5e2b98ce84
Also tagged :v0.4.0-beta.10 and :0.4.0-beta.10 (same manifest; the Supervisor resolves the unprefixed tag)
Platforms linux/amd64, linux/arm64
Container smoke verify-container.sh against the published digest: setup_required=PASS, migration_v1_to_v4=PASS, cycles=2, backup_restore=PASS, invalid_config=PASS, invalid_migration=PASS
Source offer /api/build-info on the published image returns revision=f5fda5460a5df7eaa2c8eb58e7ed9aefcad38eed, sourceUrl=https://github.com/ralleur/hauser, license=AGPL-3.0-only
Build run https://github.com/ralleur/hauser/actions/runs/33063271176

What changed

This release makes the room-image assistant work inside the Home Assistant
App, and gives rooms that have no background or no devices yet somewhere to
start.

Fixed — the room-image assistant failed with a 403 in the Home Assistant App

Every write the assistant makes — starting a ChatGPT sign-in, uploading a
photograph, creating variants — was answered with HTTP 403 ORIGIN_FORBIDDEN
when Hauser ran as a Home Assistant App. The App can only configure the
loopback origins (http://localhost:4173,http://127.0.0.1:4173), while the
browser reaches Hauser under the host's own address, so a legitimate request
never matched the static allowlist and the assistant was unusable for anyone
who had not edited the origin list by hand.

The room-image origin check now accepts, in addition to the configured list, a
request whose Origin matches its own effective origin — protocol, host and
port, compared exactly, using the same same-origin comparison the rest of the
server already applies. The security boundary is unchanged in every other
respect: foreign origins, a differing port or protocol, null, malformed
values, a missing Origin on a write, and duplicate Origin headers all stay
rejected. Nothing is hard-coded to a particular address or hostname.

Fixed — room-image errors appeared in German in an English install

The assistant, the image-set library and the access panel displayed the
server's error text verbatim, and the server writes German only. They now show
the translated message for the operation that failed.

Fixed — a published image set could break the next server start

The expiry pass marked already published variant_set jobs as expired without
detaching the asset, which the metadata validation forbids — so the service
refused to start with "incoherent room-image job metadata". Records that carry
an asset are now left untouched.

Added — rooms without a background explain how to get one

A room with no image set assigned showed an empty tile. The home screen now
carries an onboarding card with a before/after band, the three steps the
assistant takes, and three ways out: generate an image, pick one yourself, or
dismiss the card. The assistant and the library are loaded only when one of
them is opened.

Added — rooms without devices offer a way to add one

Instead of a blank area, an empty room shows an Add device placeholder tile
that opens the same room editor as a long press on the room tile.

Added — the people on the pinboard can be named and added

Tapping a name renames that person, a header button adds another, and each gets
a note colour from a fixed palette. Existing tasks stay with their person.

Changed — the room-image assistant leads with the photograph

The OpenAI access step now appears only when access is missing and stays
reachable as a chip in the header afterwards; the consent text is one line with
the long form behind an info button. Choosing the photograph is the first thing
the assistant asks for, and offers the camera directly on touch devices.
Cropping and zoom moved to step two next to the style variants, because the
perspective correction changes the framing anyway. The focus picker is gone —
the generated sets already match the panel format exactly, so it changed
nothing.

Changed — the standby button sits in the title bar by default

The setting in the long-press menu now switches to the large floating button
instead of away from it.

Upgrading

Home Assistant App users: Settings → Add-ons → Hauser → Update. Docker and
Compose users: pull ghcr.io/ralleur/hauser:0.4.0-beta.10. No configuration
migration is required.