Peter Steinberger
72fea5e305
chore: bump version to 2026.1.26
2026-01-27 09:10:47 +00:00
Gustavo Madeira Santana
913530402d
fix: local updates for PR #2471
...
Co-authored-by: kennyklee <kennyklee@users.noreply.github.com>
2026-01-26 23:46:02 -05:00
Kenny Lee
4c2d8eedb0
fix(macos): auto-scroll to bottom when sending message while scrolled up
...
When the user sends a message while reading older messages, scroll to
bottom so they can see their sent message and the response.
Fixes #2470
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 23:46:02 -05:00
Peter Steinberger
1b219cc5cb
fix(macos): gate project-local node_modules bins to DEBUG
2026-01-27 04:17:40 +00:00
Gustavo Madeira Santana
c2a4863b15
Build: stop tracking bundled artifacts ( #2455 ) (thanks @0oAstro)
...
Co-authored-by: 0oAstro <0oAstro@users.noreply.github.com>
2026-01-26 23:08:25 -05:00
Peter Steinberger
fb14146033
fix: harden ssh target handling
2026-01-26 21:11:48 +00:00
Shadow
8b91ceb7c9
macOS: preserve custom SSH usernames ( #2046 )
...
Co-authored-by: Alexis Gallagher <algal@users.noreply.github.com>
2026-01-25 21:46:15 -06:00
Shadow
159f6bfddd
macOS: bump Textual to 0.3.1 ( #2033 )
...
Co-authored-by: Garric G. Nahapetian <garricn@users.noreply.github.com>
2026-01-25 21:02:18 -06:00
Peter Steinberger
8f6542409a
chore: bump versions for 2026.1.25
2026-01-25 22:13:04 +00:00
Nimrod Gutman
b6581e77f6
refactor(gateway): share request encoding
2026-01-25 11:48:22 +00:00
Nimrod Gutman
81e915110e
fix(node): avoid invoke result deadlock
2026-01-25 11:48:22 +00:00
Dan Guido
48aea87028
feat: add prek pre-commit hooks and dependabot ( #1720 )
...
* feat: add prek pre-commit hooks and dependabot
Pre-commit hooks (via prek):
- Basic hygiene: trailing-whitespace, end-of-file-fixer, check-yaml, check-added-large-files, check-merge-conflict
- Security: detect-secrets, zizmor (GitHub Actions audit)
- Linting: shellcheck, actionlint, oxlint, swiftlint
- Formatting: oxfmt, swiftformat
Dependabot:
- npm and GitHub Actions ecosystems
- Grouped updates (production/development/actions)
- 7-day cooldown for supply chain protection
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* docs: add prek install instruction to AGENTS.md
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 10:53:23 +00:00
Peter Steinberger
0163f53f5d
fix: regenerate protocol models
2026-01-25 01:12:49 +00:00
iHildy
b76cd6695d
feat: add beta googlechat channel
2026-01-24 23:30:45 +00:00
Peter Steinberger
9f8e66359e
fix: default direct gateway port + docs ( #1603 ) (thanks @ngutman)
2026-01-24 21:10:54 +00:00
Nimrod Gutman
5330595a5a
feat(macos): add direct gateway transport
2026-01-24 21:02:13 +00:00
Peter Steinberger
bcedeb4e1f
chore: bump 2026.1.24
2026-01-24 15:00:00 +00:00
Peter Steinberger
eaeb52f70a
chore: update protocol artifacts
2026-01-24 11:28:24 +00:00
Peter Steinberger
795b592286
fix: sync protocol swift models
2026-01-24 06:01:19 +00:00
Peter Steinberger
e51bf46abe
fix: regenerate protocol swift models
2026-01-24 05:41:00 +00:00
Peter Steinberger
d2bfcd70e7
fix: stabilize tests and sync protocol models
2026-01-24 00:25:58 +00:00
Peter Steinberger
69f645c662
fix: auto-save voice wake words across apps
2026-01-23 23:59:08 +00:00
Peter Steinberger
4ee70be690
chore: bump version to 2026.1.23
2026-01-23 22:14:56 +00:00
Shiva Prasad
fdbaae6a33
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
cad7ed1cb8
fix(exec-approvals): stabilize allowlist ids ( #1521 )
2026-01-23 19:00:45 +00:00
Peter Steinberger
9f6ea67415
fix: gateway summary lookup + test browser opens
2026-01-23 05:54:51 +00:00
Peter Steinberger
279f799388
fix: harden Mattermost plugin gating ( #1428 ) (thanks @damoahdominic)
2026-01-23 01:23:23 +00:00
Dominic Damoah
01579aa7d7
Merge branch 'main' into feat/mattermost-channel
2026-01-22 18:17:40 -05:00
Peter Steinberger
370896e994
fix(macos): prefer linked channel in health summaries
2026-01-22 23:09:28 +00:00
Peter Steinberger
c721947346
feat(macos): add attach-only launchd override
2026-01-22 23:08:56 +00:00
Peter Steinberger
1d55dc0fe3
fix: export sessions preview payload init
2026-01-22 12:23:59 +00:00
Peter Steinberger
058f00ba0b
chore: update protocol Swift models
2026-01-22 11:02:15 +00:00
Peter Steinberger
cadaf2c835
feat: add sessions preview rpc and menu prewarm
2026-01-22 10:21:50 +00:00
Peter Steinberger
72455b902f
test: cover exec approval prompt gating
2026-01-22 10:00:55 +00:00
Peter Steinberger
ced9efd964
fix: avoid duplicate exec approval prompts
2026-01-22 09:53:36 +00:00
Peter Steinberger
cc8506ae79
fix: refresh menu sessions on reconnect
2026-01-22 08:48:13 +00:00
Dominic Damoah
91278d8b4e
Merge branch 'main' into feat/mattermost-channel
2026-01-22 03:11:53 -05:00
Peter Steinberger
87baca82db
style: polish exec approvals prompt
2026-01-22 08:05:55 +00:00
Dominic Damoah
fe77d3eb56
Merge branch 'main' into feat/mattermost-channel
2026-01-22 02:49:17 -05:00
Peter Steinberger
d30e9b7d56
fix: keep chat pinned on stream
2026-01-22 07:35:50 +00:00
Peter Steinberger
bc8e5ad6b3
fix: stabilize avatar tests on Windows
2026-01-22 07:24:12 +00:00
Peter Steinberger
d83ea7f2da
fix: stabilize session previews
2026-01-22 07:15:16 +00:00
Peter Steinberger
8a20f44228
fix: improve gateway ssh auth handling
2026-01-22 06:54:08 +00:00
Peter Steinberger
a056042caa
chore: refresh macOS package pins
2026-01-22 06:40:02 +00:00
Peter Steinberger
30ca87094d
fix: macOS auto bind loopback-first
2026-01-22 06:35:59 +00:00
Peter Steinberger
5ff4ac7fb7
fix: use gateway subcommand for launchd
2026-01-22 05:43:02 +00:00
Peter Steinberger
9ead312118
feat(macos): move location access to permissions tab
2026-01-22 04:50:03 +00:00
Peter Steinberger
9450873c1b
fix: align exec approvals default agent
2026-01-22 04:05:54 +00:00
Peter Steinberger
3ad0d2fe23
chore: bump version to 2026.1.21
2026-01-22 01:59:16 +00:00
Peter Steinberger
75dd1781b7
fix(macos): clear stale gateway failures
2026-01-22 01:48:41 +00:00
Peter Steinberger
db61451c67
fix: handle Windows safe-bin exe names
2026-01-22 01:30:06 +00:00
Peter Steinberger
758f30eb7d
refactor: satisfy swiftlint
2026-01-22 00:59:41 +00:00
Peter Steinberger
4997a5b93f
fix: improve macOS exec approvals
2026-01-22 00:46:31 +00:00
Nimrod Gutman
1092b30531
fix(node): handle invoke approvals and errors
2026-01-22 00:46:31 +00:00
Dominic Damoah
bf6df6d6b7
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
28e547f120
fix: stabilize ci
2026-01-21 22:59:11 +00:00
Peter Steinberger
717fb9e413
refactor(macos): drop CLI install UI
2026-01-21 20:26:25 +00:00
Peter Steinberger
ad7ef27f66
refactor(macos): tidy settings layout
2026-01-21 20:26:25 +00:00
Peter Steinberger
e4b3c8b98d
fix(macos): switch connection mode to menu
2026-01-21 20:10:38 +00:00
Peter Steinberger
6c0a01dc90
fix: bundle mac model catalog
2026-01-21 19:58:19 +00:00
Ameno Osman
56799a21be
macOS: allow SSH agents without identity file
2026-01-21 17:19:51 +00:00
Peter Steinberger
49d53ff0bb
fix: honor wildcard exec approvals on macOS
2026-01-21 10:27:19 +00:00
Peter Steinberger
3210c91f6b
chore: release 2026.1.20
2026-01-21 08:23:49 +00:00
Peter Steinberger
15d1421cf2
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
899bbd40d7
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
34a126a6d7
fix: allow mobile node client ids ( #1354 ) (thanks @vignesh07)
2026-01-21 05:07:26 +00:00
Peter Steinberger
de0a488985
refactor: unify gateway connectivity state
2026-01-21 05:01:32 +00:00
Vignesh Natarajan
b46855d8c4
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
feaad8250b
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
832dfb02fe
fix: omit null payloadJSON in node invoke results
2026-01-21 04:13:47 +00:00
Peter Steinberger
b30359e9cd
fix(macos): ignore launchd token in remote mode
2026-01-21 03:34:51 +00:00
Peter Steinberger
d3898ee8df
test(macos): cover gateway host resolution
2026-01-21 03:34:51 +00:00
Peter Steinberger
294886b54f
fix(macos): return bind host
2026-01-21 02:29:41 +00:00
Peter Steinberger
778800be70
fix(macos): prefer tailnet ip for auto bind
2026-01-21 02:28:21 +00:00
Peter Steinberger
b333c4a994
fix: address config settings viewbuilder updates
2026-01-21 01:33:31 +00:00
Peter Steinberger
450d2d25e2
feat: add sectioned config layout in mac app
2026-01-21 01:22:19 +00:00
Peter Steinberger
e447233533
chore: sync protocol outputs
2026-01-21 00:19:53 +00:00
Peter Steinberger
4fad74738a
fix: prefer loopback for auto bind fallback
2026-01-20 23:48:26 +00:00
Peter Steinberger
4999f15688
refactor: consolidate mac debug CLI
2026-01-20 19:17:31 +00:00
Peter Steinberger
26fcca087b
fix(macos): resolve AnyCodable alias conflicts
2026-01-20 17:27:45 +00:00
Peter Steinberger
842be7b864
chore: bump version to 2026.1.20
2026-01-20 16:36:37 +00:00
Peter Steinberger
4fda10c508
refactor(macos): split exec approvals handler
2026-01-20 16:24:44 +00:00
Peter Steinberger
844ff2ee8f
style(macos): fix swiftformat lint
2026-01-20 16:19:37 +00:00
Peter Steinberger
2394703593
fix(macos): disambiguate AnyCodable usage
2026-01-20 16:05:08 +00:00
Peter Steinberger
533766207f
fix: silence macos warning noise
2026-01-20 15:48:52 +00:00
Peter Steinberger
48ab168df2
fix: bridge gateway anycodable payloads
2026-01-20 15:48:52 +00:00
Peter Steinberger
bef9d5bdc8
chore: refresh swift package resolved
2026-01-20 15:48:52 +00:00
Peter Steinberger
1f7cb4b853
fix: shorten bonjour gateway service type
2026-01-20 15:10:06 +00:00
Peter Steinberger
fa51294f65
fix: sync mobile gateway auth v3
2026-01-20 13:30:40 +00:00
Peter Steinberger
fdb171cb15
refactor: centralize channel ui metadata
2026-01-20 13:11:49 +00:00
Peter Steinberger
409a16060b
feat: enrich presence with roles
2026-01-20 13:04:20 +00:00
Peter Steinberger
87343c374e
feat: route exec approvals via gateway
2026-01-20 13:04:19 +00:00
Peter Steinberger
d8cc7db5e6
feat: wire role-scoped device creds
2026-01-20 13:04:19 +00:00
Peter Steinberger
dfbf6ac263
feat: enforce device-bound connect challenge
2026-01-20 13:04:19 +00:00
Peter Steinberger
9a2bf57e1c
refactor: extend channel plugin boundary
2026-01-20 12:07:54 +00:00
Tyler Yust
7870ce8177
Step 3 + Review
2026-01-20 12:07:54 +00:00
Peter Steinberger
d88b239d3c
feat: add device token auth and devices cli
2026-01-20 10:30:53 +00:00
Peter Steinberger
9dbc1435a6
fix: enforce ws3 roles + node allowlist
2026-01-20 09:24:01 +00:00
Ryan Lisse
e14ff8f407
fix(ios): replace FileManager.default with FileManager() for Swift 6.2 compatibility
2026-01-20 07:37:01 +00:00
Ryan Lisse
87d995bcde
refactor(macos): replace FileManager.default for Swift 6
2026-01-20 07:37:01 +00:00