Peter Steinberger
83460df96f
chore: update molt.bot domains
2026-01-27 12:21:01 +00:00
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
Peter Steinberger
754494d1a0
fix(android): align node protocol payloads
2026-01-19 16:53:31 +00:00
Peter Steinberger
079c29ceb8
refactor(android): drop legacy bridge transport
2026-01-19 15:45:50 +00:00
Peter Steinberger
79c93b2cf8
style: resolve swift lint warnings
2026-01-19 13:37:28 +00:00
Peter Steinberger
b826bd668c
fix: pass android lint and swiftformat
2026-01-19 11:14:27 +00:00
Peter Steinberger
e6a4cf01ee
feat: migrate android node to gateway ws
2026-01-19 11:05:59 +00:00
Peter Steinberger
adfb000587
fix: keep device pairing requests on later
2026-01-19 10:09:10 +00:00
Peter Steinberger
3776de906f
fix: stabilize gateway ws + iOS
2026-01-19 10:09:04 +00:00
Peter Steinberger
795985d339
refactor: migrate iOS gateway to unified ws
2026-01-19 10:08:33 +00:00
Peter Steinberger
2f8206862a
refactor: remove bridge protocol
2026-01-19 10:08:29 +00:00
Peter Steinberger
b347d5d9cc
feat: add gateway tls support
2026-01-19 10:08:01 +00:00
Peter Steinberger
73e9e787b4
feat: unify device auth + pairing
2026-01-19 10:07:56 +00:00
Peter Steinberger
6b8299eb33
chore: update package resolutions
2026-01-19 05:40:04 +00:00
Peter Steinberger
d9384785a3
fix: stabilize ci checks
2026-01-19 00:34:26 +00:00
Peter Steinberger
15311c138a
macOS: fix onboarding test helper call
2026-01-19 00:19:44 +00:00
Peter Steinberger
3ce1ee84ac
Usage: add cost summaries to /usage + mac menu
2026-01-19 00:05:06 +00:00
Peter Steinberger
1ea3ac0a1d
Merge pull request #1197 from chriseidhof/channels
...
The link should be skills
2026-01-18 23:59:17 +00:00
Peter Steinberger
c639b386da
fix: hide menubar usage errors
2026-01-18 23:18:10 +00:00
Peter Steinberger
024691e4e7
feat(mac): manage node service in remote mode
2026-01-18 22:50:02 +00:00
Peter Steinberger
ed5ece4120
fix: remove unreachable approval fallback
2026-01-18 22:26:12 +00:00
Chris Eidhof
af96bac2dd
The link should be skills
2026-01-18 22:44:41 +01:00
Peter Steinberger
145b2e5f52
fix: menu preview label colors
2026-01-18 19:04:01 +00:00
Peter Steinberger
c0457e0cc4
fix(mac): load menu session previews
2026-01-18 18:28:48 +00:00
Peter Steinberger
f16b0cf80d
fix: stabilize ci protocol + openai batch retry
2026-01-18 17:05:27 +00:00
Peter Steinberger
a4ee933022
fix: hide macOS usage errors
2026-01-18 16:52:53 +00:00
Peter Steinberger
cf7437cb4c
fix: unblock macOS exec host build
2026-01-18 16:44:26 +00:00
Peter Steinberger
081123c0e4
feat: route macOS node exec via app IPC
2026-01-18 16:41:44 +00:00
Peter Steinberger
0b350d78d5
fix: harden macOS signing flow
2026-01-18 16:28:39 +00:00
Peter Steinberger
49d8ad3049
feat: surface node core/ui versions in macOS
2026-01-18 16:00:36 +00:00
Peter Steinberger
3686bde783
feat: add exec approvals tooling and service status
2026-01-18 15:23:41 +00:00
Peter Steinberger
0e31c8153c
fix: bump Peekaboo revision
2026-01-18 14:26:19 +00:00
Peter Steinberger
f3ef609839
fix: show exec approval alerts for local mac node
2026-01-18 13:42:23 +00:00
Peter Steinberger
b015c7e5ad
fix: sync protocol outputs
2026-01-18 08:58:41 +00:00
Peter Steinberger
4de3c3a028
feat: add exec approvals editor in control ui and mac app
2026-01-18 08:54:38 +00:00
Peter Steinberger
d776cfb4e1
fix: skip launchd for remote mode
2026-01-18 08:35:14 +00:00
Peter Steinberger
9db682750d
chore: point Peekaboo to main
2026-01-18 08:29:00 +00:00
Peter Steinberger
359d2af8a8
fix: resolve mac build errors
2026-01-18 08:00:58 +00:00
Peter Steinberger
e5cca6e432
chore: switch Peekaboo to SPM
2026-01-18 07:47:31 +00:00
Peter Steinberger
ae0b4c4990
feat: add exec host routing + node daemon
2026-01-18 07:46:00 +00:00
Peter Steinberger
ac1b2d8c40
chore(gate): fix lint and protocol
2026-01-18 06:31:02 +00:00
Peter Steinberger
efdb33c975
feat: add exec host approvals flow
2026-01-18 04:27:41 +00:00
Peter Steinberger
0674f1fa3c
feat: add exec approvals allowlists
2026-01-18 01:34:31 +00:00
Peter Steinberger
75588fe732
test: expand semver parsing coverage
2026-01-17 17:54:41 +00:00
Peter Steinberger
ec9ba5b784
fix: show full gateway version string in status ( #1111 ) (thanks @artuskg)
2026-01-17 17:45:14 +00:00
Artus KG
cee4149884
macos: handle empty install version safely
2026-01-17 17:45:14 +00:00
Artus KG
7929f57460
macos: keep CLI install build suffix
2026-01-17 17:45:04 +00:00
Peter Steinberger
f6681be6f4
style: tidy macOS config UI formatting
2026-01-17 17:22:42 +00:00
Peter Steinberger
c79ac3fe81
test: cover semver suffix variants
2026-01-17 17:15:08 +00:00
Peter Steinberger
30c945fe92
fix: cover semver patch suffix parsing ( #1110 ) (thanks @zerone0x)
2026-01-17 16:50:05 +00:00
zerone0x
3e4b0d0505
fix(macos): parse semver patch correctly when version has prerelease suffix
...
Strip prerelease (`-beta.1`) and build (`-4`) suffixes from the patch
component before parsing as integer. Previously `2026.1.11-4` parsed to
`patch: 0` because `Int("11-4")` returns nil; now correctly yields
`patch: 11`.
Fixes #1107
Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-18 00:31:20 +08:00
Peter Steinberger
869ef0c5ba
refactor(macos): centralize process pipe draining
2026-01-17 08:53:10 +00:00
Peter Steinberger
eef3df9fa5
fix(macos): drain subprocess pipes before wait ( #1081 )
...
Thanks @thesash.
Co-authored-by: Sash Catanzarite <sashcatanzarite@Sash-MacBook-Pro-14in-3.local>
2026-01-17 08:24:59 +00:00
Peter Steinberger
a82217a5f3
chore: format + regenerate protocol
2026-01-17 03:40:49 +00:00
Peter Steinberger
fdaeada3ec
feat: mirror delivered outbound messages ( #1031 )
...
Co-authored-by: T Savo <TSavo@users.noreply.github.com>
2026-01-17 02:03:18 +00:00
Peter Steinberger
99aba3a5c4
test: drop legacy connections settings smoke test
2026-01-17 01:13:45 +00:00
Peter Steinberger
58e02087b5
docs: align channels naming in mac tests
2026-01-17 01:13:45 +00:00
Peter Steinberger
7ecf733342
fix: align channel config schemas and env precedence
2026-01-17 00:43:05 +00:00
Shadow
3ec221c70e
macOS: fix config form rendering
2026-01-17 00:43:05 +00:00
Shadow
1ad26d6fea
Config: schema-driven channels and settings
2026-01-17 00:43:05 +00:00
Peter Steinberger
33d17957e5
test: cover doctor launchctl env overrides ( #1037 )
...
* test: cover doctor launchctl env overrides
* style(macos): fix swiftformat lint
2026-01-16 19:40:45 +00:00
Nima Karimi
25ae5f897e
fix(macos): check config file mode for gateway token/password resolution ( #1022 )
...
* fix: honor config gateway mode for credentials
* chore: oxfmt doctor platform notes
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-01-16 19:29:48 +00:00
Peter Steinberger
949fa1051f
fix: wire markdown variant renderer
2026-01-16 09:19:25 +00:00
Peter Steinberger
4965727f39
chore: run format and fix sandbox browser timeouts
2026-01-16 09:18:58 +00:00
Peter Steinberger
7c34883267
refactor: consolidate chat markdown rendering
2026-01-16 09:16:43 +00:00
Peter Steinberger
a35083808c
chore: update macOS package lock
2026-01-16 09:06:23 +00:00
Peter Steinberger
1791c1a765
feat: render native chat markdown via Textual
2026-01-16 09:02:27 +00:00
Peter Steinberger
e9a47a02d1
fix: stabilize macOS audio test and default browser detection
2026-01-16 08:25:39 +00:00
Peter Steinberger
66377fc030
fix: update macOS IPC tests
2026-01-16 07:58:35 +00:00
Peter Steinberger
d42b69df74
Merge pull request #982 from wes-davis/fix/gateway-connection-diagnostics
...
macOS: keep gateway connected (stop port flapping)
2026-01-16 07:36:46 +00:00
Peter Steinberger
1ec1f6dcbf
fix: sync remote ssh targets
2026-01-16 07:33:15 +00:00
Peter Steinberger
e96b939732
feat: add system.which bin probe
2026-01-16 07:31:41 +00:00
Peter Steinberger
ed7dec0975
feat: use dropdowns for access controls
2026-01-16 07:00:05 +00:00
Peter Steinberger
c5003e5441
fix: clear lint blockers
2026-01-16 06:35:05 +00:00
Peter Steinberger
23981496f9
fix: resolve bridge warnings
2026-01-16 06:15:45 +00:00
Peter Steinberger
842fc8d08b
fix: repair launchd status parsing
2026-01-16 06:01:28 +00:00
Peter Steinberger
3bc9c330eb
fix: unblock mac node bridge TLS
2026-01-16 05:50:55 +00:00
Peter Steinberger
b7fcc8584f
style: apply swiftformat fixes
2026-01-16 05:42:18 +00:00
Peter Steinberger
2b8ce3f06b
feat: add json output for daemon lifecycle
2026-01-16 05:40:47 +00:00
Peter Steinberger
1ab1e312b2
feat: add TLS for node bridge
2026-01-16 05:28:40 +00:00
Peter Steinberger
b2b331230b
feat: mac node exec policy + remote skills hot reload
2026-01-16 03:45:06 +00:00
Peter Steinberger
abcca86e4e
chore: format and sync protocol outputs
2026-01-16 03:30:56 +00:00
Nima Karimi
d42f767d0c
SwiftFormat: format macOS sources
2026-01-16 01:56:23 +00:00
Nima Karimi
9b8ae62399
macOS: prefer bridge tunnel port in remote mode
2026-01-16 01:56:06 +00:00
Wes
509215e935
macOS: stop flapping gateway port
2026-01-15 17:12:14 -08:00
Peter Steinberger
8daab932a2
chore(macos): prep Sparkle release 2026.1.14-1
2026-01-15 11:15:41 +00:00
Peter Steinberger
84e9401d53
fix(ci): repair format + android tests
2026-01-15 09:50:18 +00:00
Peter Steinberger
6ccb19e274
chore: regen protocol swift models ( #936 ) (thanks @thewilloftheshadow)
2026-01-15 09:33:31 +00:00
Peter Steinberger
b77b47bb98
fix: use canonical main session keys in apps
2026-01-15 08:59:05 +00:00
Peter Steinberger
5f87f7bbf5
fix: macos wizard auth bootstrap
2026-01-15 08:47:45 +00:00
Peter Steinberger
66de8aedeb
fix: satisfy swiftformat lint ( #852 ) (thanks @mneves75)
2026-01-15 06:38:15 +00:00
Peter Steinberger
e9d6dec2f4
fix: make log dir overrideable in tests ( #909 ) (thanks @roshanasingh4)
2026-01-15 06:13:20 +00:00
Roshan Singh
aaae327563
macOS: ensure /tmp/clawdbot exists for launchd logs
2026-01-15 06:10:05 +00:00
Peter Steinberger
139f80a291
chore: format sources and update protocol outputs
2026-01-15 05:17:19 +00:00
Peter Steinberger
31d3aef8d6
fix: prevent config clobbering
2026-01-15 04:06:11 +00:00
Peter Steinberger
a6e780b2f6
feat: add browser snapshot modes
2026-01-15 03:50:57 +00:00
Peter Steinberger
50fa106d87
refactor: centralize dashboard url + ws close code
2026-01-14 23:42:12 +00:00
Peter Steinberger
983e1b2303
fix: dashboard auth query items ( #918 ) - thanks @rahthakor
...
Co-authored-by: Rahul Thakor <rahthakor@users.noreply.github.com>
2026-01-14 23:36:23 +00:00
rahthakor
400e901c9c
fix(mac): pass auth token to dashboard URL
2026-01-14 23:34:48 +00:00
Nimrod Gutman
912ebffc63
fix(macos): update cron testing channel arg ( #896 )
2026-01-14 08:53:23 -06:00
Peter Steinberger
9930ba91c5
fix(telegram): honor timeoutSeconds (thanks @Snaver) ( #863 )
2026-01-14 10:10:05 +00:00
Peter Steinberger
8778c39ed0
fix: restore GatewayAgentChannel enum location
2026-01-13 10:10:25 +00:00
Peter Steinberger
afde0a17b7
fix: macOS app release 2026.1.12-2
2026-01-13 10:06:07 +00:00
Peter Steinberger
6fdfe8ea73
fix: finalize channels rename cleanup
2026-01-13 08:40:40 +00:00
Peter Steinberger
84bfaad6e6
fix: finish channels rename sweep
2026-01-13 08:40:40 +00:00
Peter Steinberger
9ec0016258
chore: regenerate protocol models
2026-01-13 05:18:07 +00:00
Peter Steinberger
d8f14078f0
refactor: simplify cron job editor payloads
2026-01-13 05:13:49 +00:00
Peter Steinberger
38244b8e94
test: cover cron delete-after-run in macos
2026-01-13 05:12:48 +00:00
Peter Steinberger
9308762d0b
style: swiftformat macos swift files
2026-01-13 05:12:48 +00:00
Peter Steinberger
75a7855223
feat: cron ISO at + delete-after-run
2026-01-13 04:55:48 +00:00
Peter Steinberger
b41e75a15d
feat: cron agent binding + doctor UI refresh
2026-01-13 04:25:41 +00:00
Peter Steinberger
50260fd385
fix: sync protocol outputs
2026-01-13 04:04:22 +00:00
Peter Steinberger
6f496b7739
fix(macos): treat tests as preview
2026-01-12 20:38:34 +00:00
Peter Steinberger
7dc44b04c1
fix: close memory index and refresh protocol outputs
2026-01-12 18:49:24 +00:00
Peter Steinberger
bf7e813573
chore: release 2026.1.11-4
2026-01-12 10:52:34 +00:00
Peter Steinberger
5a29ec78ca
chore: release 2026.1.11-3
2026-01-12 10:35:50 +00:00
Peter Steinberger
c1f8f1d9d0
chore: release 2026.1.11-2
2026-01-12 10:14:24 +00:00
Peter Steinberger
c13de0b41d
chore: release 2026.1.11-1
2026-01-12 09:46:34 +00:00
Peter Steinberger
6bd689a847
chore: release 2026.1.11
2026-01-12 09:27:43 +00:00
Peter Steinberger
83c206d68a
test: isolate macos gateway connection control
2026-01-12 09:08:07 +00:00
Peter Steinberger
1f63ee565f
fix(macos): surface wizard cli errors
2026-01-12 08:33:25 +00:00
Peter Steinberger
3ab9d99eed
fix(macos): add gateway connect timeout
2026-01-12 08:24:19 +00:00
Peter Steinberger
8b60003601
fix(macos): harden onboarding wizard session handling
2026-01-12 08:16:47 +00:00
Peter Steinberger
4c5f78ca01
feat(macos): add wizard debug CLI
2026-01-12 07:41:13 +00:00
Peter Steinberger
121c9bd6f3
style: run swift lint/format
2026-01-12 05:42:10 +00:00
Peter Steinberger
51d5f16770
refactor: remove mac attach-only setting
2026-01-12 04:58:38 +00:00
Peter Steinberger
d26518687a
fix(macos): restore gateway launch agent build
2026-01-12 04:58:38 +00:00
Peter Steinberger
221c0b4cf8
fix: tighten gateway listener detection
2026-01-12 03:34:42 +00:00
Peter Steinberger
7acd26a2fc
Move provider to a plugin-architecture ( #661 )
...
* refactor: introduce provider plugin registry
* refactor: move provider CLI to plugins
* docs: add provider plugin implementation notes
* refactor: shift provider runtime logic into plugins
* refactor: add plugin defaults and summaries
* docs: update provider plugin notes
* feat(commands): add /commands slash list
* Auto-reply: tidy help message
* Auto-reply: fix status command lint
* Tests: align google shared expectations
* Auto-reply: tidy help message
* Auto-reply: fix status command lint
* refactor: move provider routing into plugins
* test: align agent routing expectations
* docs: update provider plugin notes
* refactor: route replies via provider plugins
* docs: note route-reply plugin hooks
* refactor: extend provider plugin contract
* refactor: derive provider status from plugins
* refactor: unify gateway provider control
* refactor: use plugin metadata in auto-reply
* fix: parenthesize cron target selection
* refactor: derive gateway methods from plugins
* refactor: generalize provider logout
* refactor: route provider logout through plugins
* refactor: move WhatsApp web login methods into plugin
* refactor: generalize provider log prefixes
* refactor: centralize default chat provider
* refactor: derive provider lists from registry
* refactor: move provider reload noops into plugins
* refactor: resolve web login provider via alias
* refactor: derive CLI provider options from plugins
* refactor: derive prompt provider list from plugins
* style: apply biome lint fixes
* fix: resolve provider routing edge cases
* docs: update provider plugin refactor notes
* fix(gateway): harden agent provider routing
* refactor: move provider routing into plugins
* refactor: move provider CLI to plugins
* refactor: derive provider lists from registry
* fix: restore slash command parsing
* refactor: align provider ids for schema
* refactor: unify outbound target resolution
* fix: keep outbound labels stable
* feat: add msteams to cron surfaces
* fix: clean up lint build issues
* refactor: localize chat provider alias normalization
* refactor: drive gateway provider lists from plugins
* docs: update provider plugin notes
* style: format message-provider
* fix: avoid provider registry init cycles
* style: sort message-provider imports
* fix: relax provider alias map typing
* refactor: move provider routing into plugins
* refactor: add plugin pairing/config adapters
* refactor: route pairing and provider removal via plugins
* refactor: align auto-reply provider typing
* test: stabilize telegram media mocks
* docs: update provider plugin refactor notes
* refactor: pluginize outbound targets
* refactor: pluginize provider selection
* refactor: generalize text chunk limits
* docs: update provider plugin notes
* refactor: generalize group session/config
* fix: normalize provider id for room detection
* fix: avoid provider init in system prompt
* style: formatting cleanup
* refactor: normalize agent delivery targets
* test: update outbound delivery labels
* chore: fix lint regressions
* refactor: extend provider plugin adapters
* refactor: move elevated/block streaming defaults to plugins
* refactor: defer outbound send deps to plugins
* docs: note plugin-driven streaming/elevated defaults
* refactor: centralize webchat provider constant
* refactor: add provider setup adapters
* refactor: delegate provider add config to plugins
* docs: document plugin-driven provider add
* refactor: add plugin state/binding metadata
* refactor: build agent provider status from plugins
* docs: note plugin-driven agent bindings
* refactor: centralize internal provider constant usage
* fix: normalize WhatsApp targets for groups and E.164 (#631 ) (thanks @imfing)
* refactor: centralize default chat provider
* refactor: centralize WhatsApp target normalization
* refactor: move provider routing into plugins
* refactor: normalize agent delivery targets
* chore: fix lint regressions
* fix: normalize WhatsApp targets for groups and E.164 (#631 ) (thanks @imfing)
* feat: expand provider plugin adapters
* refactor: route auto-reply via provider plugins
* fix: align WhatsApp target normalization
* fix: normalize WhatsApp targets for groups and E.164 (#631 ) (thanks @imfing)
* refactor: centralize WhatsApp target normalization
* feat: add /config chat config updates
* docs: add /config get alias
* feat(commands): add /commands slash list
* refactor: centralize default chat provider
* style: apply biome lint fixes
* chore: fix lint regressions
* fix: clean up whatsapp allowlist typing
* style: format config command helpers
* refactor: pluginize tool threading context
* refactor: normalize session announce targets
* docs: note new plugin threading and announce hooks
* refactor: pluginize message actions
* docs: update provider plugin actions notes
* fix: align provider action adapters
* refactor: centralize webchat checks
* style: format message provider helpers
* refactor: move provider onboarding into adapters
* docs: note onboarding provider adapters
* feat: add msteams onboarding adapter
* style: organize onboarding imports
* fix: normalize msteams allowFrom types
* feat: add plugin text chunk limits
* refactor: use plugin chunk limit fallbacks
* feat: add provider mention stripping hooks
* style: organize provider plugin type imports
* refactor: generalize health snapshots
* refactor: update macOS health snapshot handling
* docs: refresh health snapshot notes
* style: format health snapshot updates
* refactor: drive security warnings via plugins
* docs: note provider security adapter
* style: format provider security adapters
* refactor: centralize provider account defaults
* refactor: type gateway client identity constants
* chore: regen gateway protocol swift
* fix: degrade health on failed provider probe
* refactor: centralize pairing approve hint
* docs: add plugin CLI command references
* refactor: route auth and tool sends through plugins
* docs: expand provider plugin hooks
* refactor: document provider docking touchpoints
* refactor: normalize internal provider defaults
* refactor: streamline outbound delivery wiring
* refactor: make provider onboarding plugin-owned
* refactor: support provider-owned agent tools
* refactor: move telegram draft chunking into telegram module
* refactor: infer provider tool sends via extractToolSend
* fix: repair plugin onboarding imports
* refactor: de-dup outbound target normalization
* style: tidy plugin and agent imports
* refactor: data-drive provider selection line
* fix: satisfy lint after provider plugin rebase
* test: deflake gateway-cli coverage
* style: format gateway-cli coverage test
* refactor(provider-plugins): simplify provider ids
* test(pairing-cli): avoid provider-specific ternary
* style(macos): swiftformat HealthStore
* refactor(sandbox): derive provider tool denylist
* fix(sandbox): avoid plugin init in defaults
* refactor(provider-plugins): centralize provider aliases
* style(test): satisfy biome
* refactor(protocol): v3 providers.status maps
* refactor(ui): adapt to protocol v3
* refactor(macos): adapt to protocol v3
* test: update providers.status v3 fixtures
* refactor(gateway): map provider runtime snapshot
* test(gateway): update reload runtime snapshot
* refactor(whatsapp): normalize heartbeat provider id
* docs(refactor): update provider plugin notes
* style: satisfy biome after rebase
* fix: describe sandboxed elevated in prompt
* feat(gateway): add agent image attachments + live probe
* refactor: derive CLI provider options from plugins
* fix(gateway): harden agent provider routing
* fix(gateway): harden agent provider routing
* refactor: align provider ids for schema
* fix(protocol): keep agent provider string
* fix(gateway): harden agent provider routing
* fix(protocol): keep agent provider string
* refactor: normalize agent delivery targets
* refactor: support provider-owned agent tools
* refactor(config): provider-keyed elevated allowFrom
* style: satisfy biome
* fix(gateway): appease provider narrowing
* style: satisfy biome
* refactor(reply): move group intro hints into plugin
* fix(reply): avoid plugin registry init cycle
* refactor(providers): add lightweight provider dock
* refactor(gateway): use typed client id in connect
* refactor(providers): document docks and avoid init cycles
* refactor(providers): make media limit helper generic
* fix(providers): break plugin registry import cycles
* style: satisfy biome
* refactor(status-all): build providers table from plugins
* refactor(gateway): delegate web login to provider plugin
* refactor(provider): drop web alias
* refactor(provider): lazy-load monitors
* style: satisfy lint/format
* style: format status-all providers table
* style: swiftformat gateway discovery model
* test: make reload plan plugin-driven
* fix: avoid token stringification in status-all
* refactor: make provider IDs explicit in status
* feat: warn on signal/imessage provider runtime errors
* test: cover gateway provider runtime warnings in status
* fix: add runtime kind to provider status issues
* test: cover health degradation on probe failure
* fix: keep routeReply lightweight
* style: organize routeReply imports
* refactor(web): extract auth-store helpers
* refactor(whatsapp): lazy login imports
* refactor(outbound): route replies via plugin outbound
* docs: update provider plugin notes
* style: format provider status issues
* fix: make sandbox scope warning wrap-safe
* refactor: load outbound adapters from provider plugins
* docs: update provider plugin outbound notes
* style(macos): fix swiftformat lint
* docs: changelog for provider plugins
* fix(macos): satisfy swiftformat
* fix(macos): open settings via menu action
* style: format after rebase
* fix(macos): open Settings via menu action
---------
Co-authored-by: LK <luke@kyohere.com>
Co-authored-by: Luke K (pr-0f3t) <2609441+lc0rp@users.noreply.github.com>
Co-authored-by: Xin <xin@imfing.com>
2026-01-11 11:45:25 +00:00
Peter Steinberger
d8a13481eb
fix: hide onboarding chat when configured
2026-01-11 10:34:23 +00:00
Peter Steinberger
a83f86a4a1
feat(macos): install CLI via app script
2026-01-11 10:32:52 +00:00
Peter Steinberger
6d2928888c
feat(macos): prompt for CLI install
2026-01-11 10:32:52 +00:00
Peter Steinberger
5fa682d8f0
fix(macos): show connecting state for remote tunnel
2026-01-11 04:45:37 +01:00
Peter Steinberger
89291c384b
fix(macos): improve onboarding discovery
2026-01-11 03:51:08 +01:00
Jefferson Warrior
e43abd3f14
macos: keep launchagent stable on --no-sign
2026-01-11 03:12:36 +01:00
Peter Steinberger
84d9c5f5e5
fix(macos): stabilize onboarding discovery
2026-01-11 03:02:47 +01:00
Peter Steinberger
920436da65
fix(macos): add gateway discovery refresh
2026-01-11 02:45:42 +01:00
Peter Steinberger
2cc0d8c058
fix(macos): wrap usage provider errors
2026-01-11 02:35:53 +01:00
Peter Steinberger
fa0f2b971f
fix(macos): wrap usage errors in menu
2026-01-11 02:04:27 +01:00
Peter Steinberger
b0b4b33b6b
fix: update gateway auth docs and clients
2026-01-11 01:51:24 +01:00
Peter Steinberger
49e7004664
fix(macos): group usage by selected model
2026-01-11 01:51:04 +01:00
Peter Steinberger
21ba04755b
fix(macos): onboarding location + layout
2026-01-11 01:36:00 +01:00
Peter Steinberger
d2098e4492
fix(macos): avoid discovery retries during tests
2026-01-11 01:16:39 +01:00
Peter Steinberger
3dbd6766ab
fix(macos): improve onboarding discovery + restart onboarding
2026-01-11 01:13:53 +01:00
Peter Steinberger
f3882671c9
fix(macos): avoid hiding gateways by substring match
2026-01-11 00:47:01 +01:00
Peter Steinberger
d4a93bc25c
fix: normalize model picker refs ( #683 ) (thanks @benithors)
2026-01-10 23:43:06 +01:00
benithors
7fb0b4e1eb
macOS: fix model picker formatting + protocol sync
2026-01-10 23:42:24 +01:00
benithors
04951b0629
Config: add searchable model picker with provider/model hints
2026-01-10 23:42:24 +01:00
Peter Steinberger
621f710d60
fix(mac): add tailnet discovery fallback and debug CLI
2026-01-10 23:39:27 +01:00
Peter Steinberger
66bc003126
fix: harden mac bridge disconnect handling ( #676 ) (thanks @ngutman)
2026-01-10 22:27:09 +01:00
Nimrod Gutman
55d2608808
fix(macos): stabilize bridge tunnels
2026-01-10 22:26:47 +01:00
Peter Steinberger
ee5acd6d4b
fix: move attach-only toggle to General settings
2026-01-10 22:21:40 +01:00
Peter Steinberger
d45c27e51f
chore(protocol): regenerate GatewayModels.swift
2026-01-10 22:15:06 +01:00
Peter Steinberger
8dd8818e08
style: swiftformat GatewayEnvironment
2026-01-10 18:31:36 +01:00
Peter Steinberger
e3cd431551
fix(auto-reply): RawBody commands + locked session updates ( #643 )
2026-01-10 17:32:31 +01:00
Peter Steinberger
e2733d21bf
refactor(ios): require bridge stable ID
2026-01-10 16:23:53 +00:00
Peter Steinberger
701e146c06
refactor(shared): default ToolDisplay config
2026-01-10 16:23:53 +00:00
Peter Steinberger
8bc9209094
refactor(apple): share AsyncTimeout helper
2026-01-10 16:23:53 +00:00
Peter Steinberger
5805bb051b
fix(android): enforce strict lint checks
2026-01-10 16:04:32 +00:00
Peter Steinberger
ef3bab5a74
fix(macos): improve activity tool labels
2026-01-10 16:04:32 +00:00
Peter Steinberger
f428ed9038
fix(ios): enable strict concurrency checks
2026-01-10 16:04:32 +00:00
Kristijan Jovanovski
e4fea2b80b
fix(ios): add Swift 6 strict concurrency compatibility
...
Applies the same Swift 6 compatibility patterns from PR #166 (macOS) to the iOS app.
Changes:
- LocationService.swift: Added Sendable constraint to withTimeout<T> generic,
made CLLocationManagerDelegate methods nonisolated with Task { @MainActor in }
pattern to safely access MainActor state
- TalkModeManager.swift: Fixed OSLog string interpolation to avoid operator
overload issues with OSLogMessage in Swift 6
Addresses #164
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 16:04:32 +00:00
Peter Steinberger
001a19eb2c
refactor: tidy mac bundled gateway packaging
2026-01-10 16:03:36 +01:00
Peter Steinberger
449bee9645
fix: bundle node runtime for mac app
2026-01-10 15:28:37 +01:00
Peter Steinberger
870c9f0b99
refactor: stop pinning hardcoded main session in chat UI
2026-01-09 23:20:58 +01:00
Peter Steinberger
50461c23c0
fix(protocol): sync generated Swift models
2026-01-09 22:12:28 +00:00
Peter Steinberger
15757d01bc
fix(protocol): regen Swift GatewayModels
2026-01-09 22:10:01 +00:00
Peter Steinberger
92cc7a841c
refactor: centralize main session key normalization in apps
2026-01-09 22:38:17 +01:00
Wes
6f5503688d
fix(macos): prevent launch-at-login plist deletion on startup
2026-01-09 21:53:32 +01:00
Peter Steinberger
81e7e25b3a
style(macos): swiftformat cleanup
2026-01-09 19:49:12 +00:00
Peter Steinberger
dac3b675cc
fix: stabilize CI path assumptions
2026-01-09 18:35:52 +01:00
Peter Steinberger
c892fd174e
refactor(sessions): add sessions.resolve + label helper ( #570 )
2026-01-09 17:02:57 +01:00
Peter Steinberger
7d518e336e
feat(sessions): label lookup tightening ( #570 ) (thanks @azade-c)
2026-01-09 16:42:09 +01:00
Peter Steinberger
f5cc6bb283
fix: harden node bridge keepalive
2026-01-09 15:46:45 +01:00
Peter Steinberger
f7e8cd8ac8
chore: regen protocol models ( #570 ) (thanks @azade-c)
2026-01-09 15:32:49 +01:00
Peter Steinberger
cb86d0d6d4
fix: land mac node bridge ping loop ( #572 ) (thanks @ngutman)
2026-01-09 14:01:20 +01:00
Nimrod Gutman
975aa5bf82
fix(macos): add node bridge ping loop
2026-01-09 13:50:38 +01:00
Peter Steinberger
7b81d97ec2
feat: wire multi-agent config and routing
...
Co-authored-by: Mark Pors <1078320+pors@users.noreply.github.com>
2026-01-09 12:48:42 +00:00
Peter Steinberger
e0c310d056
chore: bump versions to 2026.1.9
2026-01-09 10:02:15 +01:00
Peter Steinberger
151523f47b
feat: add usage cost reporting
2026-01-09 02:29:54 +00:00
Erik von Essen Fisher
fb0c566b2a
Rebrand app icons from Clawdis to Clawdbot
...
Replace app icons with new Clawdbot branding (lobster-in-phone-booth design) across iOS, Android, and macOS.
Changes:
- iOS: Updated all 14 icon sizes in AppIcon.appiconset (20px to 1024px)
- Android: Updated launcher icons for all density buckets (mdpi to xxxhdpi)
- macOS: Updated Icon.icon bundle and regenerated Clawdbot.icns
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-08 23:31:24 +01:00
Peter Steinberger
f1bc178141
fix: land macos resource bundle guard ( #473 ) — thanks @gupsammy
2026-01-08 19:24:20 +00:00
gupsammy
29e9a574b0
fix(macos): prevent crash from missing ClawdbotKit resources and Swift library
...
The macOS app was crashing in two scenarios:
1. Bundle.module crash (fixes #213 ): When the first tool event arrived,
ToolDisplayRegistry tried to load config via ClawdbotKitResources.bundle,
which used Bundle.module directly. In packaged apps, Bundle.module
couldn't find the resource bundle at the expected path, causing a
fatal assertion failure after ~40-80 minutes of runtime.
2. dyld crash (fixes #417 ): Swift 6.2 requires libswiftCompatibilitySpan.dylib
but SwiftPM doesn't bundle it automatically, causing immediate crash on
launch with "Library not loaded" error.
Changes:
- ClawdbotKitResources.swift: Replace direct Bundle.module access with a
safe locator that checks multiple paths and falls back gracefully
- package-mac-app.sh: Copy ClawdbotKit_ClawdbotKit.bundle to Resources
- package-mac-app.sh: Copy libswiftCompatibilitySpan.dylib from Xcode
toolchain to Frameworks
Tested on macOS 26.2 with Swift 6.2 - app launches and runs without crashes.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 19:24:20 +00:00
Peter Steinberger
257204f0cd
fix: remove swift/android build warnings
2026-01-08 05:57:27 +00:00
Peter Steinberger
7d492cb0ab
chore: sync app versions
2026-01-08 05:21:20 +00:00
Peter Steinberger
9fd2fd9362
chore: bump version to 2026.1.8
2026-01-08 05:15:51 +00:00
Peter Steinberger
0bcf3f40f4
fix(ci): sync logs tail protocol artifacts
2026-01-08 03:49:19 +00:00
Peter Steinberger
1e1293cc0a
style: swiftformat sweep
2026-01-08 02:36:29 +00:00
SirCrumpet
2381c19925
fix(macos): fix node bridge tunnel port override
2026-01-08 03:09:31 +01:00
Peter Steinberger
1ebde4dc24
style: align voice wake text utils format
2026-01-08 01:49:29 +00:00
Peter Steinberger
d9482719fb
refactor: share voice wake text utils
2026-01-08 01:46:25 +00:00
Peter Steinberger
45deb50e1a
fix: voice wake logging privacy (PR #438 @xadenryan)
2026-01-08 01:37:42 +00:00
Xaden Ryan
a15943c809
Mac: format voice wake files
2026-01-08 01:36:16 +00:00
Xaden Ryan
da972b119d
Voice Wake: trigger on wake-word pause
2026-01-08 01:36:15 +00:00
Xaden Ryan
804177b1f5
Voice Wake: preserve mic selection across disconnects
...
- Keep the chosen mic label visible when it disconnects and show a disconnected hint while falling back to system default.
- Avoid clearing the preferred mic on device changes so it auto-restores when available.
- Add audio input change and default-input logs in voice wake runtime/tester/meter to debug routing.
2026-01-08 01:36:15 +00:00
Xaden Ryan
830613d9fa
Mac: keep voice wake tester local-only
...
Why: Start Test is a local verification tool, but it was forwarding transcripts to the gateway/chat, which confused users and made tests look like real commands.
What: stop forwarding from VoiceWakeTester and clarify in docs that the tester does not send to the gateway.
2026-01-08 01:36:15 +00:00
Xaden Ryan
0f1a262ae1
Mac: stabilize voice wake test flow
...
Why: voice wake tests often delivered partial/final transcripts without reliable word timings, so trigger matching failed, timeouts overwrote detections, and test runs/mic capture kept running after UI changes.
What: add text-only/prefix fallback and silence-based detection in the test flow, stop/clean up any prior test, cancel timeout on detection/stop, and tear down meter/test when the Voice Wake tab is inactive. Runtime detection now falls back on final text-only matches when timing is missing. UI state now reflects finalizing and prevents hanging tests.
2026-01-08 01:36:15 +00:00
Peter Steinberger
02ad9eccad
fix: resolve CI asset/protocol drift
2026-01-08 01:25:17 +00:00
Peter Steinberger
9859ad3176
style(macos): swiftformat + swiftlint cleanup
2026-01-07 20:41:41 +00:00
Peter Steinberger
2b6adc9e60
test(macos): make env/defaults helper Swift 6-safe
2026-01-07 20:32:15 +00:00
Peter Steinberger
eb5f0b73a9
refactor(macos): inject main-actor services into node runtime
2026-01-07 20:32:15 +00:00
Peter Steinberger
5a09926126
test(macos): isolate env + defaults
2026-01-07 20:32:15 +00:00
Peter Steinberger
d45fcc44da
refactor(macos): move launchctl + plist snapshot
2026-01-07 20:32:15 +00:00
Peter Steinberger
f10d1fd9ac
fix(macos): stabilize node runtime + menu sessions
2026-01-07 19:42:49 +00:00
Peter Steinberger
8913bfbcd5
refactor(macos): drop duplicate AnyCodable
2026-01-07 19:42:49 +00:00
Peter Steinberger
e4f62c5b0c
fix(macos): make launchd enable idempotent
2026-01-07 19:42:49 +00:00
gupsammy
c572859c86
fix(macos): prevent gateway launchd race condition on startup ( #306 )
2026-01-07 19:42:49 +00:00
Peter Steinberger
9be7e1b332
fix(ClawdbotKit): bundle tool-display.json
2026-01-07 18:30:45 +00:00
François Catuhe
04ae9bdbef
fix(android): rotate camera photos by EXIF orientation
2026-01-07 19:19:07 +01:00
Manuel Jiménez Torres
6de2a1d958
fix(android): fix build error
2026-01-07 18:09:31 +00:00
Peter Steinberger
ec0ae6fb85
fix(android): drop broken apk output renaming
2026-01-07 18:04:37 +00:00
Peter Steinberger
b83570c5e7
fix(android): restore tool display config
2026-01-07 15:38:10 +00:00
Peter Steinberger
491a6e02fb
Merge branch 'main' into pr-402
2026-01-07 15:36:34 +00:00
Peter Steinberger
7f6b98929f
build(android): bump 2026.1.7 + apk naming
2026-01-07 15:30:03 +00:00
François Catuhe
d3ae92aaa8
android: set version 2026.1.5, add APK naming convention, remove duplicate asset
2026-01-07 16:05:26 +01:00
Peter Steinberger
85e536f3ff
fix(macos): validate remote ports
2026-01-07 11:00:21 +00:00
Nima Karimi
a5b29623b8
fix(macos): honor discovered gateway ports
2026-01-07 10:51:06 +00:00
Peter Steinberger
9bf6684366
feat: add provider usage tracking
2026-01-07 11:42:46 +01:00
Peter Steinberger
86fde78442
chore: sync swift protocol models
2026-01-07 06:14:15 +00:00
Peter Steinberger
b0bd7b946e
fix(macos): fix swiftformat lint in A2UI handler
2026-01-06 21:54:46 +01:00
Peter Steinberger
250debcc00
Merge PR #310
2026-01-06 20:25:47 +01:00
Peter Steinberger
91f67f5bd7
build(protocol): regenerate protocol artifacts
2026-01-06 18:37:20 +00:00
Peter Steinberger
dbfa316d19
feat: multi-agent routing + multi-account providers
2026-01-06 18:33:37 +00:00
Nimrod Gutman
62e590323a
fix(macOS): keep gateway config sync local
2026-01-06 18:05:28 +02:00
Peter Steinberger
dbac51e60f
chore(protocol): regenerate GatewayModels.swift
2026-01-06 09:55:58 +01:00
Shadow
69f285c5ca
chore: fixed CI
2026-01-05 23:36:48 -06:00
Marcus Neves
67e1452f4a
Cron: normalize cron.add inputs + align channels ( #256 )
...
* fix: harden cron add and align channels
* fix: keep cron tool id params
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-01-06 02:09:48 +00:00
Peter Steinberger
8e8d07cbf4
fix(ci): satisfy formatter checks
2026-01-05 13:55:53 +00:00
Peter Steinberger
d9103b387a
fix: sync gateway mode via gateway config
2026-01-05 06:39:37 +00:00
Peter Steinberger
30038f7d37
fix: custom connections sidebar
2026-01-05 07:25:13 +01:00
Peter Steinberger
7c51efe8f8
fix: prefer gateway config in local mode
2026-01-05 06:16:48 +00:00
Peter Steinberger
1119f2003e
fix: preserve JSON5 config parsing
2026-01-05 06:16:48 +00:00
Peter Steinberger
0d0da2e297
fix: remove sidebar toggle toolbar item safely
2026-01-05 06:49:57 +01:00
Peter Steinberger
82c16a8bed
fix: remove settings sidebar toggle
2026-01-05 06:48:49 +01:00
Peter Steinberger
545f52d7d5
fix: hide settings toolbar row
2026-01-05 06:36:34 +01:00
Peter Steinberger
a7d33c06f9
refactor: align agent lifecycle
2026-01-05 05:55:02 +01:00
Peter Steinberger
a89204362e
fix: use sidebar settings layout
2026-01-05 05:54:21 +01:00
Peter Steinberger
95d9160e27
fix: avoid settings toolbar overflow
2026-01-05 05:32:14 +01:00
Peter Steinberger
8a31a868c0
fix: honor tailnet bind for macOS gateway endpoint
2026-01-05 05:30:40 +01:00
Peter Steinberger
f871563f37
chore: sync generated protocol swift
2026-01-05 00:54:54 +00:00
Peter Steinberger
39e482414a
chore: apply upstream autostash
2026-01-05 00:26:52 +00:00
Andranik Sahakyan
d9a9f6db7d
fix(mac): add Sendable conformance to generated Swift protocol structs ( #195 )
...
* fix(mac): add Sendable conformance to generated Swift protocol structs
* fix(mac): make generated protocol types Sendable
* chore(mac): drop redundant Sendable extensions
* docs(changelog): thank @andranik-sahakyan for Sendable fix
* chore(swiftformat): exclude generated protocol models
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-01-04 22:39:21 +00:00
Nachx639
fa3a768a3a
fix(macos): remove authorizedWhenInUse references (iOS-only API) ( #165 )
...
CLAuthorizationStatus.authorizedWhenInUse only exists on iOS. On macOS,
location services only support .authorizedAlways. This was causing
compilation warnings and potentially incorrect behavior.
Fixes:
- GeneralSettings.swift: Remove authorizedWhenInUse check
- PermissionManager.swift: Update ensureLocation and status methods
- MacNodeRuntime.swift: Update location permission check
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-04 17:58:01 +00:00
Peter Steinberger
5dcf43d6ad
test: cover macos location permission status
2026-01-04 18:49:36 +01:00
Peter Steinberger
9eee832282
chore: update protocol swift models
2026-01-04 18:16:36 +01:00
Peter Steinberger
564cc9359d
style: swiftformat gateway models
2026-01-04 18:12:33 +01:00
Peter Steinberger
e2c6a96cd3
test(android): cover notification tap intent
2026-01-04 18:05:26 +01:00
Manuel Jiménez Torres
7200dabfb2
feat(android): open app when tapping foreground service notification
...
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-04 18:05:26 +01:00
Peter Steinberger
d923dc56ec
fix: update ClawdBot Swift references
2026-01-04 17:57:53 +01:00
Peter Steinberger
5eb6b779f5
fix: macOS Swift cleanup
2026-01-04 17:57:53 +01:00
Peter Steinberger
4e072d59c1
chore(protocol): regenerate GatewayModels
2026-01-04 16:05:47 +00:00
Peter Steinberger
5d29985c4f
fix: avoid sendable issue in mac location timeout
2026-01-04 16:27:17 +01:00
Peter Steinberger
026a25d164
chore: lint and format cleanup
2026-01-04 16:24:17 +01:00
Peter Steinberger
fd95ededaa
refactor: streamline node invoke handling
2026-01-04 16:24:17 +01:00
Peter Steinberger
c0b248f291
refactor: split connections settings/store
2026-01-04 16:24:17 +01:00
Peter Steinberger
246adaa119
chore: rename project to clawdbot
2026-01-04 14:38:51 +00:00
Peter Steinberger
529cf91ac3
fix: keep node presence fresh
2026-01-04 14:41:52 +01:00
Peter Steinberger
71fdf46f18
fix(android): refresh hello on sms permission grant
2026-01-04 13:59:05 +01:00
Peter Steinberger
0d56a73118
fix(android): add sms permission flow and tests
2026-01-04 13:59:05 +01:00
Vasanth Rao Naik Sabavat
1318276105
feat(android): add SMS sending capability to Android node
...
Add sms.send command to allow sending text messages via the paired Android device.
Changes:
- Add SmsManager class to handle SMS sending via Android SmsManager API
- Add ClawdisSmsCommand enum and Sms capability to protocol constants
- Wire sms.send command into NodeRuntime invoke handler
- Add SEND_SMS permission to AndroidManifest.xml
- Advertise sms capability when SEND_SMS permission is granted
The SMS capability is only advertised when the user has granted SEND_SMS
permission. Messages longer than 160 chars are automatically split into
multipart messages.
2026-01-04 13:58:05 +01:00
Peter Steinberger
259b14d66a
chore: refresh protocol models
2026-01-04 07:07:21 +01:00
Peter Steinberger
04cd1bd11a
fix(macos): bridge wizard option values
2026-01-04 06:17:07 +01:00
Tu Nombre Real
b978cc4e91
feat(macos): add Swift 6 strict concurrency compatibility
...
Prepares the macOS app for Swift 6 strict concurrency mode by:
1. Adding Sendable conformance to WizardNextResult, WizardStartResult,
and WizardStatusResult in GatewayModels.swift
2. Adding AnyCodable bridging helpers in OnboardingWizard.swift to
handle type conflicts between ClawdisProtocol and local module
3. Making CLLocationManagerDelegate methods nonisolated in:
- MacNodeLocationService.swift
- PermissionManager.swift (LocationPermissionRequester)
Using Task { @MainActor in } pattern to safely access MainActor
state from nonisolated protocol requirements.
These changes are forward-compatible and don't affect behavior on
current Swift versions.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-04 06:09:52 +01:00
Peter Steinberger
add1301a51
feat(sessions): add agent-to-agent post step
2026-01-04 03:04:55 +01:00
Peter Steinberger
052cec70ae
fix: render thinking text in italics
2026-01-04 02:44:11 +01:00
Cash Williams
12186e14a9
fix(android): handle unreachable gateway gracefully
...
Previously, if the gateway was unreachable (wrong IP, offline, etc.),
the Android app would crash with an unhandled socket exception.
Changes:
- Wrap socket.connect() in try/catch to handle connection failures
- Return PairResult with error message instead of crashing
- Display actual error message in status text instead of generic 'pairing required'
This gives users useful feedback like 'Connection refused' or
'Network is unreachable' instead of a crash.
2026-01-04 01:44:43 +01:00
Peter Steinberger
44bdd4ca0c
chore: regen Swift protocol models
2026-01-04 01:20:20 +01:00
Peter Steinberger
5862f95bd2
fix: lock main session deletion
2026-01-03 23:57:17 +00:00
Peter Steinberger
e1dd764504
feat: add node location support
2026-01-04 00:54:44 +01:00
Peter Steinberger
3d39e2ad75
feat(macos): sync gateway config
2026-01-03 22:17:04 +01:00
Peter Steinberger
52458a5628
Discord: default reaction notifications to own
2026-01-03 18:48:36 +00:00
Shadow
451174ca10
Discord: add reaction notification allowlist
2026-01-03 18:48:36 +00:00
Peter Steinberger
0af89022ff
fix: avoid Swift compiler crash in onboarding wizard
2026-01-03 17:59:37 +00:00
Peter Steinberger
53baba71fa
feat: unify onboarding + config schema
2026-01-03 16:48:08 +01:00
Peter Steinberger
be3da5b856
fix: update protocol models and android parsing
2026-01-03 15:04:24 +00:00
Peter Steinberger
3043dd3a0c
fix: restructure macOS connections settings
2026-01-03 14:25:03 +01:00
Peter Steinberger
f11b352089
fix(macos): expand onboarding window height
2026-01-03 13:34:30 +01:00
Peter Steinberger
6e16c0699a
feat: centralize tool display metadata
2026-01-03 13:18:27 +01:00
Peter Steinberger
7165c8a7e5
refactor: rename bundle identifiers to com.clawdis
2026-01-03 12:26:22 +01:00
Peter Steinberger
f47c7ac369
feat: support configurable gateway port
2026-01-03 12:00:17 +01:00
Shadow
7400c0946e
Discord: update UIs to use the new config
2026-01-03 01:02:22 -06:00
Peter Steinberger
c3e1b8cfd9
chore: update protocol swift models
2026-01-03 06:44:21 +01:00
Peter Steinberger
b417fe5727
fix: show rich session names in chat UIs
2026-01-03 05:07:13 +01:00
Shadow
98a1deb129
UI: add discord action toggles
2026-01-03 03:07:13 +01:00
Shadow
0c38f2df2a
Discord: drop enableReactions config
2026-01-03 03:07:13 +01:00
Peter Steinberger
c5d70019bb
fix: respect onboarding scroll indicator preference
2026-01-03 02:55:43 +01:00
Shadow
a35fb3a9b4
macOS: add onboarding scroll gutter
2026-01-03 02:55:43 +01:00
Peter Steinberger
75a9cd83a0
fix(mac): resolve camera type deprecation
2026-01-03 01:49:27 +01:00
Peter Steinberger
9dd613edf7
fix(mac): harden remote tunnel recovery
2026-01-03 00:02:27 +01:00
Peter Steinberger
118a6d7421
fix: align discord config ui
2026-01-02 21:15:59 +01:00
Peter Steinberger
4541bb2716
Merge pull request #108 from thewilloftheshadow/shadow/ui-connection-update
...
UI: Update connections UIs
2026-01-02 21:04:45 +01:00
Peter Steinberger
675420013d
fix(macos): resolve gateway launch args
2026-01-02 19:58:38 +00:00
Peter Steinberger
7b4fa9e1a1
test: cover camera list invoke
2026-01-02 20:24:41 +01:00
Peter Steinberger
8b47315845
fix(macos): improve session preview loading
2026-01-02 19:55:19 +01:00
Shadow
96a5e01878
macOS: swiftformat connections settings
2026-01-02 12:30:59 -06:00
Shadow
5e36390a27
macOS: fix swiftlint param count
2026-01-02 12:25:47 -06:00
Shadow
729a545173
Update connections UIs
2026-01-02 12:06:05 -06:00
Peter Steinberger
49e89cf3f1
fix: satisfy swiftformat for ios build
2026-01-02 18:48:05 +01:00
Peter Steinberger
8e48cffe3b
fix(macos): decode session preview payload
2026-01-02 18:32:03 +01:00
Peter Steinberger
3ed01adabc
feat(macos): add session previews in menu
2026-01-02 18:29:47 +01:00
Peter Steinberger
74db53d939
feat: add camera list and device selection
2026-01-02 18:23:26 +01:00
Peter Steinberger
2b34bf08da
fix: resolve mac camera continuation isolation
2026-01-02 18:02:24 +01:00
Peter Steinberger
34d2e1e2e8
fix: wait for camera exposure to settle
2026-01-02 17:57:34 +01:00
Peter Steinberger
a4f12babb7
test(macos): cover gateway password whitespace
2026-01-02 17:15:26 +01:00
Peter Steinberger
0de6e38ce9
fix(macos): keep config writes on main actor
2026-01-02 17:15:26 +01:00
Peter Steinberger
314164fb8a
chore: fix lint and add gateway auth tests
2026-01-02 17:15:26 +01:00
Peter Steinberger
f489b6e7a5
chore: merge origin/main
2026-01-02 16:50:29 +01:00
Peter Steinberger
a8bc974a2e
fix: harden gateway password auth
2026-01-02 16:47:52 +01:00
Peter Steinberger
8de40e0c10
feat(macos): add Camera permission to onboarding flow
...
- Add 'camera' case to Capability enum
- Add UI strings (title, subtitle, icon) in PermissionsSettings
- Add ensureCamera() and camera status check in PermissionManager
- Add CameraPermissionHelper for opening System Settings
🦞 Clawd's first code contribution!
2026-01-02 15:27:54 +00:00
Peter Steinberger
25e52e19dc
fix(macos): return node name
2026-01-02 15:28:34 +01:00
Peter Steinberger
68806902ff
fix(macos): show gateway in devices list
2026-01-02 15:27:21 +01:00
Peter Steinberger
87be5c737c
fix(macos): suppress cancelled node refresh
2026-01-02 15:12:57 +01:00
Peter Steinberger
f57f892409
fix(macos): clarify gateway error state
2026-01-02 13:48:19 +01:00
Peter Steinberger
d2e2077ada
fix: add top padding before first chat message
2026-01-02 10:23:40 +01:00
Peter Steinberger
9adbf47773
refactor: normalize group session keys
2026-01-02 10:14:58 +01:00
Jefferson Nunn
fe87d6d8be
feat(macOS): add gateway password auth support and fix Swift 6.2 concurrency
...
- Add CLAWDIS_GATEWAY_PASSWORD to launchd plist environment
- Read password from gateway.remote.password config in client
- Fix Swift 6.2 sending parameter violations in config save functions
- Add password parameter to GatewayConnection.Config type
- GatewayChannel now sends password in connect auth params
- GatewayEndpointStore and GatewayLaunchAgentManager read password from config
- CLI gateway client reads password from remote config and env
2026-01-01 21:34:46 -06:00
jeffersonwarrior
9387ecf043
fix(macos): support password auth mode for gateway connections
...
GatewayChannel now sends both 'token' and 'password' fields in the auth
payload to support both authentication modes. Gateway checks the field
matching its auth.mode configuration ('token' or 'password').
Also adds config file password fallback for remote mode, allowing
gateway password to be configured in ~/.clawdis/clawdis.json without
requiring environment variables.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-01 21:26:37 -06:00
Peter Steinberger
9180cbe821
fix: keep chat scrolled to bottom on session switch
2026-01-02 00:21:48 +01:00
Peter Steinberger
8a2168ecf6
style: fix swiftlint warnings
2026-01-02 00:17:49 +01:00
Peter Steinberger
7c0379ce05
feat: add recent session switchers
2026-01-01 23:50:26 +01:00
Peter Steinberger
279a191b86
fix(macos): colorize provider status subtitles
2026-01-01 23:16:22 +01:00
Peter Steinberger
f0da42917b
feat(macos): verify Claude OAuth in onboarding
2026-01-01 23:16:15 +01:00
Peter Steinberger
b858fdd755
feat(macos): show skills in onboarding
2026-01-01 22:55:10 +01:00
Peter Steinberger
952c8c2d64
fix: improve canvas debug status in remote mode
2026-01-01 20:41:13 +00:00
Peter Steinberger
7b1687d7e5
fix: resolve macOS config store concurrency
2026-01-01 21:31:37 +01:00
Peter Steinberger
693be03dcc
test: cover remote config routing
2026-01-01 20:29:53 +01:00
Peter Steinberger
6e3cb34024
chore: pin ElevenLabsKit + wizard note
2026-01-01 20:19:00 +01:00
Peter Steinberger
850cbfe369
fix: route macOS remote config via gateway
2026-01-01 18:58:41 +01:00
Petter Blomberg
17009d28cf
build: fix hardcoded dependency path for ElevenLabsKit
2026-01-01 17:43:27 +01:00
Marc Beaupre
b51b24955c
fix(chat): clear input immediately after send to prevent duplicate messages
...
Two issues were causing the input field to retain text after sending:
1. ChatComposer's NSViewRepresentable was skipping all updates while the
text view was first responder. Now it allows clearing (empty binding)
even during editing, only skipping other updates to avoid cursor jumps.
2. ChatViewModel cleared input after awaiting the network response, leaving
text visible during the round trip. Now clears immediately after capturing
the message content, before the async send.
Together these prevent users from accidentally re-sending messages when
the input appeared unchanged after pressing Enter.
2026-01-01 17:42:05 +01:00
Petter Blomberg
ad475239a5
fix(macos): prioritize main bundle for device resources to prevent crash
2026-01-01 17:39:33 +01:00
Peter Steinberger
a5777300d8
fix(macos): add icon to app logging menu
2026-01-01 16:48:17 +01:00
Peter Steinberger
0a4c2f91f5
fix: add bottom padding to macos web chat
2026-01-01 13:20:27 +01:00
Peter Steinberger
5b33a7dcbe
fix: polish macos web chat composer
2026-01-01 12:49:05 +01:00
Peter Steinberger
c7e2b1230c
fix: make composer pill full-width
2026-01-01 12:18:18 +01:00
Peter Steinberger
bdf6a23de9
fix: polish web chat empty/error state
2026-01-01 11:40:11 +01:00
Peter Steinberger
1a539b9830
fix(macos): restore swift test build
2026-01-01 11:05:14 +01:00
Peter Steinberger
3addd3420b
fix: tidy web chat composer layout
2026-01-01 11:05:14 +01:00
Peter Steinberger
0a9f06d60f
docs: annotate nix path resolution
2026-01-01 09:30:12 +01:00
Peter Steinberger
f6956320f9
feat: centralize config paths and expose in snapshot
2026-01-01 09:22:37 +01:00
Peter Steinberger
bcead5f0f4
fix: honor nix config overrides in mac app
2026-01-01 09:17:21 +01:00
Peter Steinberger
ad9a9d8d35
Merge remote-tracking branch 'origin/main' into upstream-preview-nix-2025-12-20
2026-01-01 09:15:28 +01:00
Peter Steinberger
2d5c401d11
fix: prefer module bundle for device models
2026-01-01 08:58:54 +01:00
Peter Steinberger
78cf68549f
Merge pull request #64 from mbelinky/fix-instances-crash
...
Fix Instances crash by bundling device model resources
2026-01-01 08:58:35 +01:00
Mariano Belinky
c4de0b8255
Use user home for pnpm path
2026-01-01 08:35:54 +01:00
Mariano Belinky
ea248f6743
Fix device model resources for Instances
2025-12-31 16:45:35 +01:00
Peter Steinberger
0babf08926
chore: add mac app logging coverage
2025-12-31 16:28:51 +01:00
Peter Steinberger
6517b05abe
feat: add swift-log app logging controls
2025-12-31 16:03:18 +01:00
Manuel Jiménez Torres
f831ccfc63
fix(android): wrong text color in user chat bubbles
2025-12-31 12:48:59 +01:00
Peter Steinberger
a2a26b26fb
fix: satisfy swiftformat in chat view
2025-12-30 20:41:12 +01:00
Peter Steinberger
ed76cd7574
fix: restore talk orb hit testing
2025-12-30 20:25:52 +01:00
Peter Steinberger
cf903be4a7
fix: avoid duplicate gateway reconnecting pill
2025-12-30 14:37:59 +01:00
Peter Steinberger
6306786645
fix: allow mp3 fallback result
2025-12-30 14:35:53 +01:00
Peter Steinberger
d7b267843e
fix: fallback mp3 when pcm blocked
2025-12-30 14:32:47 +01:00
Peter Steinberger
3d6cc435ef
fix: hop audio to main actor
2025-12-30 14:22:03 +01:00
Peter Steinberger
973bd3a427
fix: improve talk overlay input + drag
2025-12-30 14:18:51 +01:00
Peter Steinberger
7d1ec51df5
fix: modernize chat scroll position
2025-12-30 13:52:12 +01:00
Peter Steinberger
9fb74399c8
refactor: inject audio players
2025-12-30 13:46:14 +01:00
Peter Steinberger
bc0a6fffd1
fix: tighten macOS menu device rows
2025-12-30 13:31:11 +01:00
Peter Steinberger
73d595eecc
chore: sync local changes
2025-12-30 12:53:17 +01:00
Peter Steinberger
3bf8b9ccf4
fix: default android talk pcm_24000
2025-12-30 12:52:56 +01:00
Peter Steinberger
83262a67b1
refactor: extract elevenlabs kit
2025-12-30 12:48:09 +01:00
Peter Steinberger
66952a682d
test: add pcm streaming smoke
2025-12-30 12:27:06 +01:00
Peter Steinberger
9df22c0093
fix: address talk streaming build
2025-12-30 12:20:32 +01:00
Peter Steinberger
27adfb76fa
fix: stream elevenlabs tts playback
2025-12-30 12:17:40 +01:00
Peter Steinberger
9c532eac07
feat(talk): pause + drag overlay orb
2025-12-30 11:37:52 +01:00
Peter Steinberger
2814815312
feat: add talk voice alias map
2025-12-30 11:35:29 +01:00
Peter Steinberger
ab27586674
test: cover external chat completion
2025-12-30 11:23:45 +01:00
Peter Steinberger
2749c5cac3
fix: clear external streaming bubbles
2025-12-30 11:21:57 +01:00
Peter Steinberger
715cf311df
fix(ui): move mac talk orb to corner
2025-12-30 11:20:14 +01:00
Peter Steinberger
312443235d
fix(ios): unblock device builds
2025-12-30 11:16:15 +01:00
Peter Steinberger
0d95d63258
fix(macos): await-safe session key selection
2025-12-30 11:07:34 +01:00
Peter Steinberger
f86772f26c
fix(talk): harden TTS + add system fallback
2025-12-30 07:40:02 +01:00
Peter Steinberger
a7617e4d79
fix(ui): refine talk overlays
2025-12-30 06:47:35 +01:00
Peter Steinberger
7612a83fa2
fix(talk): align sessions and chat UI
2025-12-30 06:47:19 +01:00
Peter Steinberger
afbd18e8df
fix(talk): harden playback, interrupts, and timeouts
2025-12-30 06:05:43 +01:00
Peter Steinberger
be2bc61d38
fix(talk): hard-timeout ElevenLabs synthesis
2025-12-30 05:46:47 +01:00
Peter Steinberger
fb8f72d5a9
feat(ui): add centered talk orb
2025-12-30 05:27:29 +01:00
Peter Steinberger
b5ae2ccc3c
fix(voice): sync talk mode chat events
2025-12-30 05:27:11 +01:00
Peter Steinberger
05efc3eace
fix: avoid iOS talk mode audio tap crash
2025-12-30 04:52:57 +01:00
Peter Steinberger
24f8ff7548
chore(protocol): regenerate Swift gateway models
2025-12-30 04:42:08 +01:00
Peter Steinberger
c0c6782a17
fix(android): stabilize BridgeSession shutdown
2025-12-30 04:42:02 +01:00
Peter Steinberger
d2ac672f47
feat: add ui.seamColor accent
2025-12-30 04:14:36 +01:00
Peter Steinberger
e3d8d5f300
fix(macos): prevent Talk Mode audio hang
2025-12-30 04:14:16 +01:00
Peter Steinberger
c5d5c9fcb5
fix: make android canvas background visible
2025-12-30 04:02:52 +01:00
Peter Steinberger
2e040ee07a
fix: brighten android canvas
2025-12-30 03:58:18 +01:00
Peter Steinberger
9846c46434
fix: tag A2UI platform and boost Android canvas
2025-12-30 03:49:24 +01:00
Peter Steinberger
5c7c1af44e
fix: android talk timestamp parsing
2025-12-30 02:05:14 +01:00
Peter Steinberger
e119a82334
feat: talk mode key distribution and tts polling
2025-12-30 01:57:58 +01:00
Peter Steinberger
02db68aa67
fix(macos): hide Restart Gateway when remote
2025-12-30 01:57:58 +01:00
Peter Steinberger
7aabe73521
chore: sync pending changes
2025-12-30 00:59:30 +01:00
Peter Steinberger
37f85bb2d1
fix: expand talk overlay bounds
2025-12-30 00:58:58 +01:00
Peter Steinberger
39fccc3699
fix: talk overlay + elevenlabs defaults
2025-12-30 00:51:17 +01:00
Peter Steinberger
53eccc1c1e
fix: wire talk menu + mac build
2025-12-30 00:17:10 +01:00
Peter Steinberger
c56292a6ec
feat: move talk mode to overlay button
2025-12-30 00:01:21 +01:00
Peter Steinberger
857cd6a28a
fix: align ios lint and android build
2025-12-29 23:45:58 +01:00
Peter Steinberger
303954ae8c
feat: extend status activity indicators
2025-12-29 23:42:22 +01:00
Peter Steinberger
3c338d1858
fix: adjust android talk parser for kotlin json
2025-12-29 23:26:38 +01:00
Peter Steinberger
20d7882033
feat: add talk mode across nodes
2025-12-29 23:21:05 +01:00
Peter Steinberger
6927b0fb8d
fix: align camera payload caps
2025-12-29 23:20:55 +01:00
Peter Steinberger
8f0c8a6561
fix: cap camera snap payload size
2025-12-29 23:12:20 +01:00
Peter Steinberger
a61b7056d5
feat: surface camera activity in status pill
2025-12-29 23:12:03 +01:00
Peter Steinberger
b0396e196f
fix: refresh bridge tokens and enrich node settings
2025-12-29 22:11:12 +01:00
Peter Steinberger
cf42fabfd8
test: add ios swift testing + android kotest
2025-12-29 21:10:44 +01:00
Peter Steinberger
24151a2028
fix: mark screen recorder sendable
2025-12-29 20:28:06 +01:00
Peter Steinberger
c11e2d9e5e
fix: avoid self capture in ReplayKit start
2025-12-29 20:26:49 +01:00
Peter Steinberger
a8c9b2810b
fix: align ReplayKit stopCapture call
2025-12-29 20:25:44 +01:00
Peter Steinberger
7a849ab7d1
fix: isolate ReplayKit capture state
2025-12-29 20:24:34 +01:00
Peter Steinberger
c14d738d37
fix: avoid screen recorder data races
2025-12-29 20:22:26 +01:00
Peter Steinberger
65478a6ff3
fix: avoid main-actor stopCapture error
2025-12-29 20:20:14 +01:00
Peter Steinberger
41be9232fe
fix: prevent iOS screen capture crash
2025-12-29 20:10:36 +01:00
Peter Steinberger
653932e50d
fix: show connected nodes only
2025-12-29 18:35:52 +01:00
Josh Palmer
0f7029583c
macOS: load device models from bundle resources
2025-12-29 17:49:13 +01:00
Josh Palmer
1d8b47785c
feat(macos): add current TeamID to Peekaboo allowlist
...
Problem: The bridge only accepts the upstream TeamID, so packaged builds signed locally (Nix/CI) can’t use the bridge even though they are the same app.
Fix: Include the running app’s TeamID (from its code signature) in the allowlist.
Safety: TeamID gating remains; this just adds the app’s own TeamID to preserve permissions/automation in reproducible installs.
2025-12-29 17:49:13 +01:00
Josh Palmer
5d19afd422
feat: improve health checks (telegram tokenFile + hints)
2025-12-29 17:49:13 +01:00
Josh Palmer
b7363f7c18
feat: Nix mode config, UX, onboarding, SwiftPM plist, docs
2025-12-29 17:49:13 +01:00
Peter Steinberger
aa2700ffa7
chore: set ios signing team for device builds
2025-12-29 17:38:21 +01:00
Peter Steinberger
510e2a1d17
fix: menu devices list
2025-12-29 17:31:23 +01:00
Peter Steinberger
ebfe55f909
fix: enable canvas webview scrolling on mobile nodes
2025-12-29 17:13:31 +01:00
Peter Steinberger
d529736597
fix(macos): fully stop Voice Wake runtime when disabled
2025-12-28 10:17:30 +00:00
Peter Steinberger
8dfc031c4d
fix: start gateway before control channel
2025-12-28 09:24:43 +00:00
Peter Steinberger
91c9859000
fix: harden heartbeat acks + gateway reconnect
2025-12-27 20:02:27 +00:00
Peter Steinberger
907371453d
fix(macos): soften light mode usage bar track
2025-12-27 14:05:36 +01:00
Peter Steinberger
81abffd145
fix(macos): boost light mode usage bar contrast
2025-12-27 14:03:45 +01:00
Peter Steinberger
44ef8fe5c8
fix(macos): refresh sessions on menu open
2025-12-27 13:49:03 +01:00
Peter Steinberger
ec482ac867
fix(macos): tighten chat window chrome
2025-12-27 03:21:14 +01:00
Peter Steinberger
ae52fb7a01
fix(macos): relax chat window min size
2025-12-27 02:55:24 +01:00
Peter Steinberger
e8ff08e121
fix(macos): round chat window chrome
2025-12-27 02:51:59 +01:00
Peter Steinberger
cc8e104cd6
fix(macos): enforce chat window default size
2025-12-27 02:43:50 +01:00
Peter Steinberger
5919a277bb
fix(macos): stabilize menu width tracking
2025-12-27 02:43:50 +01:00
Peter Steinberger
acd3f7dba7
fix(macos): lock menu width on hover
2025-12-27 01:50:25 +01:00
Peter Steinberger
eafcd862be
chore: update protocol models
2025-12-27 01:45:58 +01:00
Peter Steinberger
8826170635
fix: resolve CI lint and android build
2025-12-27 01:41:43 +01:00
Peter Steinberger
c54e4d0900
refactor: node tools and canvas host url
2025-12-27 01:36:29 +01:00
Peter Steinberger
4daf75a469
fix(macos): enforce node bridge timeouts
2025-12-27 00:02:41 +01:00
Peter Steinberger
d0293649cd
fix(macos): refresh menu sessions without resizing
2025-12-26 22:48:58 +01:00
Peter Steinberger
353366ac54
fix(macos): expand highlighted menu rows to full width
2025-12-26 22:41:29 +01:00
Peter Steinberger
1a8ffebb00
fix(macos): stabilize menu row width
2025-12-26 22:34:18 +01:00
Peter Steinberger
5ffbddcc57
feat(mac): add allow camera toggle
2025-12-26 21:33:22 +00:00
Peter Steinberger
5fbcbe7e52
feat(mac): add discord connections UI
2025-12-26 21:33:22 +00:00
Peter Steinberger
7daa93cf5a
fix(macos): expand menu hover highlight width
2025-12-26 22:30:29 +01:00
Peter Steinberger
1f25e38c2d
fix(macos): keep menu width stable while open
2025-12-26 22:27:24 +01:00
Peter Steinberger
c10a386d17
fix(macos): detect and reset stale SSH tunnels
2025-12-26 22:12:33 +01:00
Peter Steinberger
a13db82d28
fix(nodes): improve version reporting
2025-12-26 21:45:00 +01:00
Peter Steinberger
ec392dc870
feat(mac): add node ssh and compact versions
2025-12-26 20:42:49 +00:00
Peter Steinberger
90d00fb095
fix(mac): reorder menu toggles
2025-12-26 20:42:45 +00:00
Peter Steinberger
7f4c992dd7
fix(mac): move action group below toggles
2025-12-26 20:31:37 +00:00
Peter Steinberger
ba1626a5b9
fix(ios): accept truthy A2UI ready check
2025-12-26 21:17:37 +01:00
Peter Steinberger
ab73c40bfe
fix(mac): refine node submenu copy behavior
2025-12-26 20:05:23 +00:00
Peter Steinberger
4016bc2416
fix(a2ui): center empty canvas text
2025-12-26 20:43:45 +01:00
Peter Steinberger
9302daadc1
fix(mac): align node details
2025-12-26 19:32:48 +00:00