DSH-1 ended with a negative result: the Frame's system WebEngine can't be
loaded, and bundling our own failed (no sandbox, ICU resources, Vulkan
abort, empty page). Reverts the tab (60deb43), the container packages
(0676998) and the bundler's WebEngine support (b823ff3, e2cfa8e), and
updates the docs.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A second dashboard surface shows a WebEngineView at homeassistant.url, or
a hint when none is set. HaWebUi (QML singleton owned by Dashboard) holds
the URL and a persistent WebEngine profile under
~/.local/share/frameassistant/webengine so the HA login survives restarts.
QtWebEngineQuick::initialize() runs in main() before the app object (D39).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Config parses and validates the JSON settings (D34): required device name
and broker host, defaults, type checks, device id from ha_unique_id or
derived from the name (D31), warnings for unknown keys and for a password
in a file others can read. Dashboard::prepare() loads it in overlay and
desktop mode; --config selects another file (D22). New static library
frameassistant_lib for app logic; tst_config covers it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Template stripped to the overlay platform (examples, demo UI and Frame
test package removed), renamed to FrameAssistant, and working rules for
the project recorded in CLAUDE.md.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>