Commit Graph

1703 Commits

Author SHA1 Message Date
Peter Steinberger
ff38c091c9 fix: auto-save voice wake words across apps 2026-01-23 23:59:08 +00:00
Peter Steinberger
750dc7191c chore: bump version to 2026.1.23 2026-01-23 22:14:56 +00:00
Shiva Prasad
d5504559dd macOS: fix trigger word input disappearing when typing and on add (#1506)
Fixed issue where trigger words would disappear when typing or when adding new trigger words. The problem was that `swabbleTriggerWords` changes were triggering `VoiceWakeRuntime.refresh()` which sanitized the array by removing empty strings in real-time.

Solution: Introduced local `@State` buffer `triggerEntries` with stable UUID identifiers for each trigger word entry. User edits now only affect the local state buffer and are synced back to `AppState` on explicit actions (submit, remove, disappear). This prevents premature sanitization during editing.

The local state is loaded on view appear and when the view becomes active, ensuring it stays in sync with `AppState`.
2026-01-23 20:08:12 +00:00
Peter Steinberger
9f5cee9493 fix(exec-approvals): stabilize allowlist ids (#1521) 2026-01-23 19:00:45 +00:00
Peter Steinberger
a9b0f99d48 fix: gateway summary lookup + test browser opens 2026-01-23 05:54:51 +00:00
Peter Steinberger
3b9dfac62f fix: harden Mattermost plugin gating (#1428) (thanks @damoahdominic) 2026-01-23 01:23:23 +00:00
Dominic Damoah
d3a0acd8b1 Merge branch 'main' into feat/mattermost-channel 2026-01-22 18:17:40 -05:00
Peter Steinberger
d95791ce29 fix(macos): prefer linked channel in health summaries 2026-01-22 23:09:28 +00:00
Peter Steinberger
270e014d3e feat(macos): add attach-only launchd override 2026-01-22 23:08:56 +00:00
Peter Steinberger
c2837c1b5f fix: export sessions preview payload init 2026-01-22 12:23:59 +00:00
Peter Steinberger
73cafb63c6 chore: update protocol Swift models 2026-01-22 11:02:15 +00:00
Peter Steinberger
4c5068fe81 feat: add sessions preview rpc and menu prewarm 2026-01-22 10:21:50 +00:00
Peter Steinberger
59c095dba1 test: cover exec approval prompt gating 2026-01-22 10:00:55 +00:00
Peter Steinberger
5db7f27d1d fix: avoid duplicate exec approval prompts 2026-01-22 09:53:36 +00:00
Peter Steinberger
108b6fa41a fix: refresh menu sessions on reconnect 2026-01-22 08:48:13 +00:00
Dominic Damoah
8af1af5802 Merge branch 'main' into feat/mattermost-channel 2026-01-22 03:11:53 -05:00
Peter Steinberger
104211b865 style: polish exec approvals prompt 2026-01-22 08:05:55 +00:00
Dominic Damoah
f873523e1b Merge branch 'main' into feat/mattermost-channel 2026-01-22 02:49:17 -05:00
Peter Steinberger
6c3a15f45b fix: keep chat pinned on stream 2026-01-22 07:35:50 +00:00
Peter Steinberger
9ac47ca07a fix: stabilize avatar tests on Windows 2026-01-22 07:24:12 +00:00
Peter Steinberger
51f378570d fix: stabilize session previews 2026-01-22 07:15:16 +00:00
Peter Steinberger
cc9668589a fix: improve gateway ssh auth handling 2026-01-22 06:54:08 +00:00
Peter Steinberger
1af37e1d6d chore: refresh macOS package pins 2026-01-22 06:40:02 +00:00
Peter Steinberger
fadc5be9b4 fix: macOS auto bind loopback-first 2026-01-22 06:35:59 +00:00
Peter Steinberger
434b5eb489 fix: use gateway subcommand for launchd 2026-01-22 05:43:02 +00:00
Peter Steinberger
099e30d643 feat(macos): move location access to permissions tab 2026-01-22 04:50:03 +00:00
Peter Steinberger
82cec75f25 fix: align exec approvals default agent 2026-01-22 04:05:54 +00:00
Peter Steinberger
567415d38f chore: bump version to 2026.1.21 2026-01-22 01:59:16 +00:00
Peter Steinberger
f69309a22d fix(macos): clear stale gateway failures 2026-01-22 01:48:41 +00:00
Peter Steinberger
9e96b74a13 fix: handle Windows safe-bin exe names 2026-01-22 01:30:06 +00:00
Peter Steinberger
eadd76658b refactor: satisfy swiftlint 2026-01-22 00:59:41 +00:00
Peter Steinberger
f97c7ad73d fix: improve macOS exec approvals 2026-01-22 00:46:31 +00:00
Nimrod Gutman
883efdaaaa fix(node): handle invoke approvals and errors 2026-01-22 00:46:31 +00:00
Dominic Damoah
1d34352691 feat: add Mattermost channel support
Add Mattermost as a supported messaging channel with bot API and WebSocket integration. Includes channel state tracking (tint, summary, details), multi-account support, and delivery target routing. Update documentation and tests to include Mattermost alongside existing channels.
2026-01-21 18:40:56 -05:00
Peter Steinberger
6b7bcc9e8e fix: stabilize ci 2026-01-21 22:59:11 +00:00
Peter Steinberger
a79decb724 refactor(macos): drop CLI install UI 2026-01-21 20:26:25 +00:00
Peter Steinberger
611de141c8 refactor(macos): tidy settings layout 2026-01-21 20:26:25 +00:00
Peter Steinberger
6ca1e2f988 fix(macos): switch connection mode to menu 2026-01-21 20:10:38 +00:00
Peter Steinberger
b6d0c09d59 fix: bundle mac model catalog 2026-01-21 19:58:19 +00:00
Ameno Osman
eca3c1186a macOS: allow SSH agents without identity file 2026-01-21 17:19:51 +00:00
Peter Steinberger
6a038a597d fix: honor wildcard exec approvals on macOS 2026-01-21 10:27:19 +00:00
Peter Steinberger
731d7c193c chore: release 2026.1.20 2026-01-21 08:23:49 +00:00
Peter Steinberger
57fc9a11c0 Merge pull request #1357 from vignesh07/fix/node-invoke-timeout
fix(node): enforce timeout for node.invoke handlers
2026-01-21 05:49:36 +00:00
Peter Steinberger
eb539c9a60 Merge pull request #1358 from vignesh07/fix/ios-talkmode-simulator
fix(ios): prevent Talk mode crash on simulator
2026-01-21 05:42:17 +00:00
Peter Steinberger
0c9237a15e fix: allow mobile node client ids (#1354) (thanks @vignesh07) 2026-01-21 05:07:26 +00:00
Peter Steinberger
773939746e refactor: unify gateway connectivity state 2026-01-21 05:01:32 +00:00
Vignesh Natarajan
dd9ea3a4b9 fix(ios): prevent Talk mode crash on simulator
- Disable Talk mode start on iOS simulator (no audio input)
- Validate audio input format before installing tap to avoid
  AVFAudio assertion crashes on misconfigured devices.

Tested:
- Launched app on iOS simulator and tapping Talk no longer crashes
  (shows error path instead).
2026-01-20 20:52:42 -08:00
Vignesh Natarajan
b3c3cfd11e fix(node): enforce node.invoke timeout in node client
Use the timeout provided on node invoke requests to ensure node
clients always respond with a result.

This prevents gateway-side node.invoke calls from hanging until the
gateway timeout when a node command stalls.

Tests:
- swift test --filter GatewayNodeSessionTests
2026-01-20 20:50:20 -08:00
Peter Steinberger
d47ebd8ea1 fix: omit null payloadJSON in node invoke results 2026-01-21 04:13:47 +00:00
Peter Steinberger
9382e169d9 fix(macos): ignore launchd token in remote mode 2026-01-21 03:34:51 +00:00