Releases: mdopp/solarisbay
Releases · mdopp/solarisbay
Release list
v0.17.0
0.17.0 (2026-06-26)
Features
- chat: card media_player with transport + volume controls, same room grid (defc9ec), closes #541
- chat: card on/off control is a toggle switch, not an 'an'/'aus' button (88a0dba), closes #560
- chat: card on/off toggle + media_player power/source + failed-voice-turn traces (2df9601)
- chat: card-layout v2 — compact-all + full-width answers + uniform base-column grid (#552) (1b48c2b)
- chat: chat-cards epic #534 — state-filtering, room grouping, compact card, grid, room query, media_player (f4c4ae5)
- chat: compact light card — on/off badge + brightness slider one row (dcdd6eb), closes #538
- chat: concrete read-only HttpDavClient for CalDAV/CardDAV ingest (aa66ae0)
- chat: concrete read-only HttpDavClient for CalDAV/CardDAV ingest (d4e5bb8), closes #522
- chat: continuous conversation — a follow-up turn's spoken text ends in a question mark (e227c7c), closes #566
- chat: continuous conversation — follow-up turns end in '?' so HA re-opens the mic without re-wake (1e23cfe)
- chat: default device-less play to the current room (u99) (44baab0)
- chat: default music/radio to the current room's device (2f7a042)
- chat: deterministic engine-side confirmation gate for sensitive ha_call_service (d4aebd8)
- chat: deterministic engine-side confirmation gate for sensitive ha_call_service (b77858e), closes #570
- chat: enrich bands with genre+bio facts + artist_info query op (57f59ca)
- chat: enrich bands with genre+bio facts + artist_info query op (a457ffc), closes #592
- chat: group cards by room when >4, else label each card (eb2531d), closes #537
- chat: Jellyfin music ingest -> central knowledge OKF concepts (316143f)
- chat: Jellyfin music ingest -> central knowledge OKF concepts (e134bb5), closes #564
- chat: learned default playback device — ask once, store, reuse (c82f7c1), closes #622
- chat: learned default playback device (ask once, store, reuse) (e890b3c)
- chat: media_player card power on/off toggle + source select (492cf9e), closes #561
- chat: music_query structured artist->songs tool (per-user scoped) (b9adab9)
- chat: music_query tool over the structured store (46160b8), closes #588
- chat: notes_search fuzzy + ranked retrieval (non-embedding slice of #591) (ba073c7)
- chat: notes_search lightly-fuzzy + ranked, shared scorer (37ce410), closes #591
- chat: on-demand song lyrics — resolve song, fetch live from Jellyfin (3dcca18), closes #593
- chat: on-demand song lyrics — resolve song, fetch live from Jellyfin (#593) (fd9db46)
- chat: path-based ownership — users/<uid>/ private paths + OKF resident: leak fix + per-library music (72875f9)
- chat: path-based ownership — users/<uid>/ private paths + OKF resident: leak fix + per-library music (1dc3b32), closes #576
- chat: per-user privacy slice 1 — uid-filtered retrieval, default-deny (02a5bfa)
- chat: per-user privacy slice 1 — uid-filtered retrieval, default-deny (776bbb6), closes #576
- chat: persist a failed voice turn's trace so the error is visible (d85f504), closes #562
- chat: play_music — cast a Jellyfin library track on a media_player (cc15c4c)
- chat: play_music — cast a Jellyfin library track on a media_player (9b6ccc5), closes #604
- chat: play_radio — favorite station, ask+store, via radio-browser (df5e93a)
- chat: play_radio — per-user favorite station via radio-browser (07eca33)
- chat: podcast search by host/person via fyyd term fallback (40b713a)
- chat: quick-reply answers on every question + composer pre-fill (66fc771)
- chat: quick-reply chips — model offers 2-4 clickable answers above the input (6b3e9db), closes #555
- chat: quick-reply suggestion chips — model offers 2-4 clickable answers (df02fc1)
- chat: render cards only for entities matching the query state (3e294de), closes #536
- chat: research(query) tool — fan out to notes+web, trust-rank, cited summary (5572132), closes #574
- chat: research(query) tool — fan out to notes+web, trust-rank, cited summary (slice 1) (2e5f256)
- chat: resolve podcasts by host/person via fyyd term search (631a9da), closes #568
- chat: responsive side-by-side card grid — invisible auto-fill columns (123ba00), closes #539
- chat: room query cards all the room's actuators under one header (18fa71e), closes [#540](https://github.com/mdopp/solarisbay/issues/...
v0.16.0
0.16.0 (2026-06-21)
Features
- chat: anchor→OKF resolution, [[ ]] cross-links, and household energy page (#509) (508b965)
- chat: scoped HA cards, concept/entity page, follow-up chips, auto-anchors (#507) (392e6a6)
- chat: span concept-page backlinks across chat and vault [[ ]] links (8b76165), closes #505
- skill: find and play podcasts via the keyless fyyd.de index (72d75e5)
- skill: find and play podcasts via the keyless fyyd.de index (bc24f70), closes #513
- skill: Jellyfin media control + internet radio media skill, play_media legend (7db7519), closes #511 #512
- Solaris wakeword convergence + media control skill (def92ba)
Bug Fixes
v0.15.0
0.15.0 (2026-06-17)
Features
- chat: chat UI polish, definition kind taxonomy phase 1, and read-only HA cards phase 1 (#493) (c41616e)
- chat: HA group cards for multiple entities (#497) (bc76685), closes #478
- chat: OKF concept write-path core for ingest adapters (57aadc8), closes #447
- chat: scheduler and hooks editors with pickers, HA card sliders, colour, and climate (#496) (c8b7e0b)
- chat: separate Voice card from Model + let setting cards size to content (#471) (481262c)
- chat: skill taxonomy reorg + /skills and /commands editors, HA toggle cards, CI path-filter (#495) (3240846)
- db: add OKF knowledge-index tables (75c8280), closes #446
- engine: bound the durable household chat by head-truncation (#466) (7b9a24e)
- engine: discover read-only devices by query instead of packing the prompt (#463) (128cd28)
- ingest: calendar + contacts adapter — CalDAV/CardDAV to OKF concepts (1779e69), closes #207
- ingest: Immich photo adapter — assets/faces/EXIF-geo to OKF concepts (30ee597), closes #206
- ingest: Obsidian adapter — existing vault notes to OKF concepts (e80ccc6), closes #448
- Phase-1 household-knowledge ingestion — OKF write-path + adapters (8f46a44)
- skill: terser household replies + time-only clock answers (#464) (8ebc8aa)
- template: add trained Solaris wake-word model (#459) (65893c5)
- template: own the full voice pipeline in the solaris stack (08b6030)
- template: own the voice pipeline in the solaris stack (8d94695), closes #456
- template: Solaris owns the openWakeWord wake engine (#460) (7c50010)
Bug Fixes
- chat: attach per-turn step traces to the correct turn (#465) (8f3252f)
- chat: clear admin-only handling instead of a thin "admins" line (#470) (233e12c)
- chat: collapse the per-turn step trace by default (#492) (645f684)
- chat: give setting cards a min body height so they aren't a thin line (#468) (6d17c84)
- chat: keep long mobile streams alive and resume on a transport drop (f86bd03), closes #452
- chat: match skill slash-commands case-insensitively (#469) (8e030f9)
- chat: persist per-turn step-trace detail body so it survives reload + restart (7a61e1d), closes #451
- chat: persist step-trace detail + keep long mobile streams alive (4642945)
- chat: prune session_traces on delete and head-truncation (#490) (c4cc22d)
- chat: return message created_at so persisted traces render on reopen (#491) (f9c3392)
- chat: serve index.html with Cache-Control: no-cache (#473) (60bdcfa)
- chat: sort skills alphabetically + open setting cards from their top (#472) (666e379)
- chat: stop setting cards shrinking + sort the slash list alphabetically (#479) (734f346)
- engine: resolve guessed entity_ids so history isn't a false "never" (#467) (f63d14d)
- engine: surface ambient sensors so Solaris finds room temperature (#462) (73dc499)
- skill: emit the actual web-search URLs, not just a promise of a link (#489) (52fa029)
- template: make the chat proxy host SSE-friendly for long mobile streams (d6f0810), closes #452
- template: SSE-friendly chat proxy host for long mobile streams (1c6b40f)
v0.14.0
0.14.0 (2026-06-15)
Features
- chat: /persona and /model commands, drop Settings button + persona dropdown (788e840), closes #420
- chat: structured LLM-call trace modal + usable skill/soul editor (dae3e63), closes #416 #418
- chat: wire dynamic-skills promotion to the generic SB approval API (5a0f6ce), closes #427
- dynamic-skills SB-approval promotion + custom Solaris wake-word wiring (e1b78f2)
- template: wire custom "Solaris" wake word + ship model-gen recipe (9868db6), closes #407
Bug Fixes
- chat: household slash commands, /help parity, single durable household session (9281c3d), closes #421 #417 #419
- db: seed debug_mode from SOLARIS_DEBUG_MODE_DEFAULT env (ffc9748), closes #432
- engine: containment-check skill promotion path against symlink escape (7f7837e)
- engine: containment-check skill promotion path against symlink escape (b0cbfa4), closes #439
- gatekeeper: gate enrolment listing and scope session delete by owner (78a21fb), closes #437 #438
- gatekeeper: serialise concurrent same-uid enroll capture (5a3bbb0), closes #441
- post-Hermes skill cleanup + debug_mode default from env (e2a3357)
- security: auth-gate /enrolments + owner-gate session delete (#437, #438) (0e3cb56)
- skill: replace stale Hermes tool names and drop dead hermes-api check (91c001d), closes #431 #433
- skill: update admin-diagnose and admin-logs container name map (c35ddc7), closes #430
- template: drop {{VAR}} comment false-positive, clarify HA token absence (9b733dd), closes #424 #425
- template: forward GATEKEEPER_URL and PUSH_TOKEN to the chat container (912eb95), closes #440
- template: robustify HA long-lived token adoption (6c40065)
- template: robustify HA long-lived token adoption (717b9f5), closes #425
- wire gatekeeper push into chat container + serialise enroll capture (b519532)
v0.13.0
0.13.0 (2026-06-15)
Features
- chat: anchor the transcript to the bottom, fix mobile keyboard gap (c22a04c), closes #412
- chat: graphical VRAM headroom from ServiceBay's real GPU numbers (#401) (8f9fd5b)
- chat: guide self-enrolment by name not technical uid (#399) (2270373), closes #396
- chat: move settings + search into inline command cards, merge mobile header (0be8424), closes #410 #411
- chat: self-service voice enrolment for the household profile (#397) (10e9013), closes #396
- chat: voice onboarding reliability and chat-UI command-card consolidation (1fa1717)
- skill: pin the self-enrolment step order in the household soul (#400) (10071e6), closes #396
- skill: rename the household persona to Solaris, enrol on sentences (#403) (f99659b), closes #396
- solaris: rebrand stage 2 — coordinated repo-wide artifact rename + draft BRAND.md (75f3818)
- solaris: rebrand stage 2 — rename artifacts solilos→solaris, solbay→solarisbay (1b6530a), closes #408
- template: switch the household fast model to gemma4:e4b (#402) (ccb197c)
Bug Fixes
- chat: fold the turn trace into one step list, drop the redundant block (102bc86), closes #406
- chat: hand the model the exact 3-sentence enrol prompt to echo (f4de2d6), closes #404
- chat: persist a voice turn's trace into its durable Zuhause session (f6c0979), closes #405
- chat: remove the activity bubble on a stopped turn (f1fc218)
- chat: remove the live activity bubble on a stopped turn (d411611), closes #414
- template: wait for gatekeeper Wyoming STT before wiring it as Assist STT (8aaee5e), closes #395
v0.12.1
v0.12.0
0.12.0 (2026-06-13)
Features
- add a global Kokoro voice picker like the model picker (453ecd1), closes #368
- answer "wer bin ich?" from the resident voice-ID belief (2ab8ec5)
- answer "wer bin ich" from the voice-ID belief (372090d), closes #384
- chat: confirm home-securing actions, act decisively otherwise (971585d), closes #382
- chat: HA service legend in registry + home-securing confirmation policy (a96996b)
- chat: HA state-history search and list/run scenes scripts automations (0230b5d), closes #369 #370
- chat: handle denied access requests — drop biometric, provision nothing (6f12e7f)
- chat: inject per-domain HA service legend into the entity registry (20d120c), closes #381
- chat: make the household profile model admin-selectable in the picker (a7003f5), closes #366
- chat: onboarding approval + provisioning on SB access-request MCP (9ca171f)
- chat: onboarding approval + provisioning on SB access-request MCP (10d605b), closes #355
- chat: panel model management + Kokoro voice picker (846f119)
- chat: registration flow — enrol voice + file pending resident request (b4c3d80)
- chat: registration flow — enrol voice + file pending resident request (38f2de2), closes #376
- chat: voice-enrolment tool wrapping gatekeeper POST /enrol (0cd9cc9)
- chat: voice-enrolment tool wrapping gatekeeper POST /enrol (0cbcab9), closes #364
- engine: personalize turn prompt with the resident identity (f2876dc), closes #352
- gatekeeper: reverse enroll-stash — live-voice onboarding capture (7c508ca)
- gatekeeper: reverse enroll-stash for live-voice onboarding capture (cfb446a)
- pull Ollama models from the panel + VRAM headroom estimate (40410f5), closes #367
- resident-personalized turns, trace tool-step fix, HA history+run tools, admin-selectable household model (ac709c1)
- route an unknown speaker to the guest profile (5f14ae9)
- route an unknown speaker to the guest profile (ea85395), closes #351
- skill: add the resident-registration onboarding dialog (e9a4b1d), closes #354
- skill: guest-greeting onboarding dialog for unknown speakers (f1ca148)
- skill: guest-greeting onboarding dialog for unknown speakers (3d50acf), closes #375
- skill: resident-registration onboarding dialog (ca96960)
- voice: wire gatekeeper speaker-ID into the live Assist path (#350, approach b) (#362) (d556247)
Bug Fixes
- chat: drop alembic import from the pending-residents test (efcb9d8)
- chat: map natural cover service names to HA open_cover/close_cover/stop_cover (90211d5)
- chat: normalize natural cover service names to HA's open_cover/close_cover/stop_cover (88045a6), closes #379
- chat: render persisted tool trace steps as the tool, expand by default (1167276), closes #371
- db: chain the pending-resident-request migration after enroll_requests (0015) (7c32b8f)
v0.11.0
0.11.0 (2026-06-12)
Features
- chat: alarms ring a sound instead of speaking (040d203), closes #348
- chat: durable household voice session + live browser mirror (7a46fad), closes #345 #344
- chat: guest profile — ephemeral Q&A plus basic home control (e2a1005), closes #353
- chat: live collapsed activity bubble for a turn's llm and tool steps (8790976)
- chat: live collapsed activity bubble for a turn's llm and tool steps (63d6f5e), closes #347
- chat: record tool executions as interleaved trace steps with timings (c0b782e), closes #346
- template: prefer the Martin TTS bridge in the Sol pipeline (94031f3)
- tts: add the solilos-tts image — Kokoro-Martin German voice on GPU (f6c8af0)
Bug Fixes
- chat: catch perfect-tense and passive German device-action fabrications (41c2da3)
- chat: catch perfect-tense device-action fabrications in the guard (3ce1eb2), closes #360
- chat: discipline last, stream-safe contextvar, uid into tool tasks (235a4b2)
- chat: force the tool pass when a turn fabricates a device-action claim (afc156d), closes #356
- chat: pin the tool-discipline rule at the end of the system block (93aa7a0)
- chat: run the household profile at low temperature (a293326)
- skill: never narrate a device action — call the tool in this turn (c6fb7a2)
- template: converge the pipeline on tts_voice drift too (47581d1)
- template: the Martin bridge voice is martin, not kokoro (7438ad5)
- template: warm-load from the locally installed tags (dcc8d25), closes #339
- template: warm-load small models first — order decides co-residency (432e0f3), closes #340
- template: warm-load the chat models after every ollama deploy (d25a287)
v0.10.0
0.10.0 (2026-06-12)
Features
- chat: add the Sol Engine core replacing the Hermes gateways (3542115)
- chat: complete the Sol Engine — facade, crons, admin MCP, Hermes retired (34da56f)
- chat: decouple everyday-chat model preference from persona via settings toggle (eb711e3)
- chat: move the soul to the chat-owned volume with direct panel writes (cebeca8)
- db: add engine cron run stamps table (33a8ab4)
- db: add engine session, message and timer tables (08925df)
- gatekeeper: speak the engine facade instead of Hermes sessions (79fd562)
- Sol Engine Phase 0+1 — native agent core replaces the Hermes gateways (e492e1c)
- template: engine-only solilos pod with HA voice-pipeline wiring (cfa4eb0)
- template: keep all three models resident with a right-sized 32k context (9ecd96d)
- template: wire the chat container for the Sol Engine (08bd478)
Bug Fixes
- chat: target every assist satellite when a timer announces (d25643c)
- template: align the GPU render-path defaults with the v7 residency values (a8364b5)
- template: box-verified voice-wiring fixes and an abort-path guard (f303bbe)
- template: pin the pipeline to the wyoming engines and both PE selects (4279b65)
- template: retry async HA setup races in the voice wiring (1459462)