Releases: linit01/helmsman
Release list
0.12.3: sidebar toggle on narrow screens
Fixes the Helmsman panel trapping you on a portrait phone in the HA companion app. Custom panels own the full-screen header and HA hides the sidebar when narrow, but the panel had no menu button — so the only escape was rotating to landscape. The toolbar now renders a hamburger button on narrow screens, wired to HA's hass-toggle-menu event. Also refreshes the stale benchmark confirmation text.
0.12.2: fidelity fix, numeric_state repair, multi-sample benchmark
Fixes the fidelity gate false-rejecting correct drafts (sun.sun below_horizon already means 'after sunset and before sunrise'), and makes fidelity non-fatal: a valid draft is never discarded over a critic objection — it is shown with a caveat if the critic still objects. Adds a fixer that converts 'state' triggers misused for numeric thresholds (to: 'above 25') into real numeric_state triggers, which never-fire otherwise. The benchmark now drafts each fixture twice and only counts a fixture clean if every run is, so a single lucky roll no longer decides a model's ranking. Includes the 0.12.1 fidelity work.
0.12.0: benchmark on draft quality
The model benchmark now scores draft quality instead of review eagerness. It drafts a fixed set of golden fixtures (sun/night condition, weekday time condition, numeric trigger) single-shot and ranks models by clean first-try drafts, then valid-after-repair, then fewest fixer repairs, and only finally speed. This fixes the old benchmark recommending a fast, eager model that needs the fixer safety net over a disciplined one. Verified against a live server: now recommends qwen2.5-coder:14b over an 8B that produced invalid output. Also folds in fixer hardening: drops flattened bare 'and' conditions, converts single sun-word time bounds to the sun.sun state, and collapses duplicate conditions.
0.11.1: repair invalid sunset/sunrise time conditions
Fixes drafts that failed with 'Invalid time specified: sunset'. The model was emitting a redundant, invalid time condition using sunset/sunrise alongside the correct sun.sun night check. Helmsman now repairs that deterministically before validation (converting a night/day sun-word pair to a sun.sun state condition, or dropping an invalid sun-word bound while keeping a real clock time), and the author prompt gained a worked example plus explicit rules against the pattern. Requires 0.11.0's fidelity gate.
0.11.0: fidelity gate
Draft automations now pass a semantic fidelity gate: after the structural, entity-existence, and HA-validation gates, a critic pass checks the generated config against the original request clause by clause and feeds any unmet requirement back into the self-correction loop. This catches drafts that drop a clause (e.g. "after sunset") or trigger on a real-but-wrong entity. The author prompt is also hardened to decompose the request and never trigger on an automation.* entity for a physical-device request.
v0.10.3
Draft validation rejections now log their payload to the panel's log table, same as reviews. Plus 0.10.2: the sanitizer repairs choose-options flattened into bare action steps (converted to if/then) and drops stray structural words from block lists.
v0.10.1
Unloaded is not missing: registered entities without a state are a warning pointing at their integration, never a missing-entity error or a replacement offer; the first audit waits for HA to fully start instead of racing integrations mid-boot. Review passes are time-bounded: one budget covers all self-correction attempts per automation.
v0.9.7
Rejected proposal payloads now log at warning level and appear in the panel's Recent log entries — no debug logging or file access needed to diagnose a failed review. Plus 0.9.6: sidebar needs-attention count fixed, no-op suggestions rejected, empty-dict entries sanitized.
v0.9.5
Sidebar shows the needs-attention count — 'Helmsman (2)' — updated after every audit. Review sanitizer now also strips string-form null ghosts ('None'/'null') that small models emit as condition entries, which survived the 0.9.2 JSON-null fix. Rejected proposals are logged at debug level for diagnosis.
v0.9.4
The AI now sees an automation's recent runtime errors from the HA log on its first review attempt — combined with self-correction, a 'no fix' outcome means the model had all available evidence. The panel shows recent Helmsman and automation log entries in a collapsible table. LLM proposals are sanitized of null entries before validation.