Mariano
44ef045614
fix(canvas): port remaining iOS branch stability fixes ( #18228 )
...
* fix(canvas): prevent snapshot disconnects on proxied gateways
(cherry picked from commit 2a3c9f746a65f3301c0cfe58ebe6596fed06230f)
* fix(canvas): accept url alias for present and navigate
(cherry picked from commit 674ee86a0b776cbb738add1920a4031246125312)
---------
Co-authored-by: Nimrod Gutman <nimrod.g@singular.net>
2026-02-16 16:42:28 +00:00
Mariano
130e59a9c0
iOS: port onboarding + QR pairing flow stability ( #18162 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: a87eadea19
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Reviewed-by: @mbelinky
2026-02-16 16:22:51 +00:00
Mariano
9a1e168685
iOS: port gateway connect/discovery stability + onboarding reset ( #18164 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 8165ec5bae
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Reviewed-by: @mbelinky
2026-02-16 16:07:22 +00:00
Mariano
2e7fac2231
iOS: port talk redaction, accessibility, and ATS hardening ( #18163 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 8a9a05f04e
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Reviewed-by: @mbelinky
2026-02-16 16:00:08 +00:00
Mariano
6effcdb551
OpenClawKit: stabilize iOS ChatUI updates after gateway replies ( #18165 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 9b6e38d5be
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Reviewed-by: @mbelinky
2026-02-16 15:51:11 +00:00
Advait Paliwal
bc67af6ad8
cron: separate webhook POST delivery from announce ( #17901 )
...
* cron: split webhook delivery from announce mode
* cron: validate webhook delivery target
* cron: remove legacy webhook fallback config
* fix: finalize cron webhook delivery prep (#17901 ) (thanks @advaitpaliwal)
---------
Co-authored-by: Tyler Yust <TYTYYUST@YAHOO.COM>
2026-02-16 02:36:00 -08:00
Peter Steinberger
39fa81dc96
chore: bump version to 2026.2.16
2026-02-16 06:08:47 +01:00
Advait Paliwal
115cfb4430
gateway: add cron finished-run webhook ( #14535 )
...
* gateway: add cron finished webhook delivery
* config: allow cron webhook in runtime schema
* cron: require notify flag for webhook posts
* ui/docs: add cron notify toggle and webhook docs
* fix: harden cron webhook auth and fill notify coverage (#14535 ) (thanks @advaitpaliwal)
---------
Co-authored-by: Tyler Yust <TYTYYUST@YAHOO.COM>
2026-02-15 16:14:17 -08:00
Peter Steinberger
3cd786cc2d
refactor(swift): share discovery status text
2026-02-15 20:40:47 +00:00
Peter Steinberger
778959b3dc
refactor(ios): dedupe gateway helpers
2026-02-15 20:38:26 +00:00
Peter Steinberger
ef2c66a16b
refactor(camera): centralize JPEG transcode cap
2026-02-15 20:33:14 +00:00
Peter Steinberger
b30ed6ca4c
refactor(ios): share EventKit auth gating
2026-02-15 20:24:06 +00:00
Peter Steinberger
71009ab1b6
refactor(macos): share tailnet IPv4 detection
2026-02-15 20:22:40 +00:00
Peter Steinberger
c8779ef61d
refactor(macos): share pairing alert plumbing
2026-02-15 20:19:55 +00:00
Peter Steinberger
218189318d
refactor(swift): share primary IPv4 lookup
2026-02-15 20:17:43 +00:00
Peter Steinberger
f37b1c11e0
refactor(macos): centralize presence system info
2026-02-15 20:12:50 +00:00
Peter Steinberger
375e16170d
refactor(macos): dedupe file watcher
2026-02-15 20:07:12 +00:00
Peter Steinberger
3a075f0292
fix(macos): drop duplicate AnyCodable helpers
2026-02-15 20:05:25 +00:00
Peter Steinberger
c75fe7e3cd
fix(swift): make SwiftPM tests deterministic
2026-02-15 20:03:48 +00:00
Peter Steinberger
a3419e48ab
refactor(swift): dedupe AnyCodable
2026-02-15 20:00:40 +00:00
Peter Steinberger
cbd9395082
ci(protocol): regenerate swift protocol models
2026-02-15 07:07:55 +00:00
Peter Steinberger
31a16157f3
fix(android): make lint pass
2026-02-15 05:38:35 +01:00
Peter Steinberger
8725c2b19f
style(swift): run swiftformat + swiftlint autocorrect
2026-02-15 05:38:35 +01:00
Peter Steinberger
379b445582
chore: bump version to 2026.2.15
2026-02-15 04:50:31 +01:00
Peter Steinberger
1ff15e60d3
chore(release): bump versions to 2026.2.14
2026-02-15 02:53:35 +01:00
Vignesh Natarajan
0f53a3b9f3
Protocol: regenerate Swift gateway models
2026-02-14 17:27:17 -08:00
Bin Deng
b9d14855d0
Fix: Force dashboard command to use localhost URL ( #16434 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 3c03b4cc9b
Co-authored-by: BinHPdev <219093083+BinHPdev@users.noreply.github.com>
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Reviewed-by: @gumadeiras
2026-02-14 15:00:58 -05:00
Peter Steinberger
054366dea4
fix(security): require explicit trust for first-time TLS pins
2026-02-14 17:55:20 +01:00
Peter Steinberger
d583782ee3
fix(security): harden discovery routing and TLS pins
2026-02-14 17:18:14 +01:00
Peter Steinberger
28d9dd7a77
fix(macos): harden openclaw deep links
2026-02-14 15:03:27 +01:00
Nick Taylor
1fb52b4d7b
feat(gateway): add trusted-proxy auth mode ( #15940 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 279d4b304f
Co-authored-by: nickytonline <833231+nickytonline@users.noreply.github.com>
Co-authored-by: steipete <58493+steipete@users.noreply.github.com>
Reviewed-by: @steipete
2026-02-14 12:32:17 +01:00
Peter Steinberger
748d6821d2
fix(config): add forensic config write audit and watch attribution
2026-02-14 01:36:15 +00:00
Shuai-DaiDai
bdc63b5b7d
fix(macos): resolve dashboard basePath for local and remote ( #15862 )
...
Co-authored-by: 帅小呆1号 <shuaixiaodai1@openclaw.ai>
2026-02-14 02:19:36 +01:00
Peter Steinberger
a3574bbde4
fix(android): add bcprov dependency for device identity store
2026-02-13 19:20:15 +00:00
Ramin Shirali Hossein Zade
1af0edf7ff
fix: ensure exec approval is registered before returning ( #2402 ) ( #3357 )
...
* feat(gateway): add register and awaitDecision methods to ExecApprovalManager
Separates registration (synchronous) from waiting (async) to allow callers
to confirm registration before the decision is made. Adds grace period for
resolved entries to prevent race conditions.
* feat(gateway): add two-phase response and waitDecision handler for exec approvals
Send immediate 'accepted' response after registration so callers can confirm
the approval ID is valid. Add exec.approval.waitDecision endpoint to wait for
decision on already-registered approvals.
* fix(exec): await approval registration before returning approval-pending
Ensures the approval ID is registered in the gateway before the tool returns.
Uses exec.approval.request with expectFinal:false for registration, then
fire-and-forget exec.approval.waitDecision for the decision phase.
Fixes #2402
* test(gateway): update exec-approval test for two-phase response
Add assertion for immediate 'accepted' response before final decision.
* test(exec): update approval-id test mocks for new two-phase flow
Mock both exec.approval.request (registration) and exec.approval.waitDecision
(decision) calls to match the new internal implementation.
* fix(lint): add cause to errors, use generics instead of type assertions
* fix(exec-approval): guard register() against duplicate IDs
* fix: remove unused timeoutMs param, guard register() against duplicates
* fix(exec-approval): throw on duplicate ID, capture entry in closure
* fix: return error on timeout, remove stale test mock branch
* fix: wrap register() in try/catch, make timeout handling consistent
* fix: update snapshot on timeout, make two-phase response opt-in
* fix: extend grace period to 15s, return 'expired' status
* fix: prevent double-resolve after timeout
* fix: make register() idempotent, capture snapshot before await
* fix(gateway): complete two-phase exec approval wiring
* fix: finalize exec approval race fix (openclaw#3357) thanks @ramin-shirali
* fix(protocol): regenerate exec approval request models (openclaw#3357) thanks @ramin-shirali
* fix(test): remove unused callCount in discord threading test
---------
Co-authored-by: rshirali <rshirali@rshirali-haga.local>
Co-authored-by: rshirali <rshirali@rshirali-haga-1.home>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-02-13 19:57:02 +01:00
Peter Steinberger
a844fb161c
build(protocol): regenerate swift gateway models
2026-02-13 16:14:53 +00:00
Sk Akram
4c86821aca
fix: allow device-paired clients to retrieve TTS API keys ( #14613 )
...
* refactor: add config.get to READ_METHODS set
* refactor(gateway): scope talk secrets via talk.config
* fix: resolve rebase conflicts for talk scope refactor
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-02-13 17:07:49 +01:00
Ahmad Bitar
c179f71f42
feat: Android companion app improvements & gateway URL camera payloads ( #13541 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 9c179c9c31
Co-authored-by: smartprogrammer93 <33181301+smartprogrammer93@users.noreply.github.com>
Co-authored-by: steipete <58493+steipete@users.noreply.github.com>
Reviewed-by: @steipete
2026-02-13 16:49:28 +01:00
shayan919293
ab4adf7170
fix(macos): ensure exec approval prompt displays the command ( #5042 )
...
* fix(config): migrate audio.transcription with any CLI command
Two bugs fixed:
1. Removed CLI allowlist from mapLegacyAudioTranscription - the modern
config format has no such restriction, so the allowlist only blocked
legacy migration of valid configs like whisperx-transcribe.sh
2. Moved audio.transcription migration to a separate migration entry -
it was nested inside routing.config-v2 which early-exited when no
routing section existed
Closes #5017
* fix(macos): ensure exec approval prompt displays the command
The NSStackView and NSScrollView for the command text lacked proper
width constraints, causing the accessory view to collapse to zero
width in some cases. This fix:
1. Adds minimum width constraint (380px) to the root stack view
2. Adds minimum width constraint to the command scroll view
3. Enables vertical resizing and scrolling for long commands
4. Adds max height constraint to prevent excessively tall prompts
Closes #5038
* fix: validate legacy audio transcription migration input (openclaw#5042) thanks @shayan919293
* docs: add changelog note for legacy audio migration guard (openclaw#5042) thanks @shayan919293
* fix: satisfy lint on audio transcription migration braces (openclaw#5042) thanks @shayan919293
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-02-13 15:49:06 +01:00
Peter Steinberger
63bb1e02b0
chore(release): bump version to 2026.2.13
2026-02-13 04:13:07 +01:00
Flash-LHR
c32b92b7a5
fix(macos): prevent Voice Wake crash on CJK trigger transcripts (openclaw#11052) thanks @Flash-LHR
...
Verified:
- pnpm build
- pnpm check
- pnpm test
Co-authored-by: Flash-LHR <47357603+Flash-LHR@users.noreply.github.com>
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
2026-02-12 20:36:14 -06:00
Peter Steinberger
8ff89ba14c
fix(ci): resolve windows test path assertion and sync protocol swift models
2026-02-13 02:39:34 +01:00
Peter Steinberger
7695b4842b
chore: bump version to 2026.2.12
2026-02-12 18:20:46 +01:00
Karim Naguib
7a0591ef87
fix(whatsapp): allow media-only sends and normalize leading blank payloads ( #14408 )
...
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
2026-02-11 23:21:21 -06:00
Peter Steinberger
cfd112952e
fix(gateway): default-deny missing connect scopes
2026-02-11 12:04:30 +01:00
Peter Steinberger
1872d0c592
chore: bump version to 2026.2.10
2026-02-11 11:27:23 +01:00
the sun gif man
80b56cabc2
🤖 macos: force session preview submenu repaint after async load ( #13890 )
2026-02-10 21:11:04 -08:00
Peter Steinberger
fb8c653f53
chore(release): 2026.2.9
2026-02-09 11:19:07 -06:00
Josh Palmer
69aa3df116
macOS: honor stable Nix defaults suite ( #12205 )
...
* macOS: honor Nix defaults suite; auto launch in Nix mode
Fixes repeated onboarding in Nix deployments by detecting nixMode from the stable defaults suite (ai.openclaw.mac) and bridging key settings into the current defaults domain.
Also enables LaunchAgent autostart by default in Nix mode (escape hatch: openclaw.nixAutoLaunchAtLogin=false).
* macOS: keep Nix mode fix focused
Drop the automatic launch-at-login behavior from the Nix defaults patch; keep this PR scoped to reliable nixMode detection + defaults bridging.
* macOS: simplify nixMode fix
Remove the defaults-bridging helper and rely on a single, stable defaults suite (ai.openclaw.mac) for nixMode detection when running as an app bundle. This keeps the fix focused on onboarding suppression and rename churn resilience.
* macOS: fix nixMode defaults suite churn (#12205 )
2026-02-08 17:28:22 -08:00
Mariano Belinky
6aedc54bd7
iOS: alpha node app + setup-code onboarding ( #11756 )
2026-02-08 18:08:13 +01:00
Advait Paliwal
980f788731
feat(gateway): add agents.create/update/delete methods ( #11045 )
...
* feat(gateway): add agents.create/update/delete methods
* fix(lint): preserve memory-lancedb load error cause
* feat(gateway): trash agent files on agents.delete
* chore(protocol): regenerate Swift gateway models
* fix(gateway): stabilize agents.create dirs and agentDir
* feat(gateway): support avatar in agents.create
* fix: prep agents.create/update/delete handlers (#11045 ) (thanks @advaitpaliwal)
- Reuse movePathToTrash from browser/trash.ts (has ~/.Trash fallback on non-macOS)
- Fix partial-failure: workspace setup now runs before config write
- Always write Name to IDENTITY.md regardless of emoji/avatar
- Add unit tests for agents.create, agents.update, agents.delete
- Add CHANGELOG entry
---------
Co-authored-by: Tyler Yust <TYTYYUST@YAHOO.COM>
2026-02-07 16:47:58 -08:00
Tyler Yust
d90cac990c
fix: cron scheduler reliability, store hardening, and UX improvements ( #10776 )
...
* refactor: update cron job wake mode and run mode handling
- Changed default wake mode from 'next-heartbeat' to 'now' in CronJobEditor and related CLI commands.
- Updated cron-tool tests to reflect changes in run mode, introducing 'due' and 'force' options.
- Enhanced cron-tool logic to handle new run modes and ensure compatibility with existing job structures.
- Added new tests for delivery plan consistency and job execution behavior under various conditions.
- Improved normalization functions to handle wake mode and session target casing.
This refactor aims to streamline cron job configurations and enhance the overall user experience with clearer defaults and improved functionality.
* test: enhance cron job functionality and UI
- Added tests to ensure the isolated agent correctly announces the final payload text when delivering messages via Telegram.
- Implemented a new function to pick the last deliverable payload from a list of delivery payloads.
- Enhanced the cron service to maintain legacy "every" jobs while minute cron jobs recompute schedules.
- Updated the cron store migration tests to verify the addition of anchorMs to legacy every schedules.
- Improved the UI for displaying cron job details, including job state and delivery information, with new styles and layout adjustments.
These changes aim to improve the reliability and user experience of the cron job system.
* test: enhance sessions thinking level handling
- Added tests to verify that the correct thinking levels are applied during session spawning.
- Updated the sessions-spawn-tool to include a new parameter for overriding thinking levels.
- Enhanced the UI to support additional thinking levels, including "xhigh" and "full", and improved the handling of current options in dropdowns.
These changes aim to improve the flexibility and accuracy of thinking level configurations in session management.
* feat: enhance session management and cron job functionality
- Introduced passthrough arguments in the test-parallel script to allow for flexible command-line options.
- Updated session handling to hide cron run alias session keys from the sessions list, improving clarity.
- Enhanced the cron service to accurately record job start times and durations, ensuring better tracking of job execution.
- Added tests to verify the correct behavior of the cron service under various conditions, including zero-delay timers.
These changes aim to improve the usability and reliability of session and cron job management.
* feat: implement job running state checks in cron service
- Added functionality to prevent manual job runs if a job is already in progress, enhancing job management.
- Updated the `isJobDue` function to include checks for running jobs, ensuring accurate scheduling.
- Enhanced the `run` function to return a specific reason when a job is already running.
- Introduced a new test case to verify the behavior of forced manual runs during active job execution.
These changes aim to improve the reliability and clarity of cron job execution and management.
* feat: add session ID and key to CronRunLogEntry model
- Introduced `sessionid` and `sessionkey` properties to the `CronRunLogEntry` struct for enhanced tracking of session-related information.
- Updated the initializer and Codable conformance to accommodate the new properties, ensuring proper serialization and deserialization.
These changes aim to improve the granularity of logging and session management within the cron job system.
* fix: improve session display name resolution
- Updated the `resolveSessionDisplayName` function to ensure that both label and displayName are trimmed and default to an empty string if not present.
- Enhanced the logic to prevent returning the key if it matches the label or displayName, improving clarity in session naming.
These changes aim to enhance the accuracy and usability of session display names in the UI.
* perf: skip cron store persist when idle timer tick produces no changes
recomputeNextRuns now returns a boolean indicating whether any job
state was mutated. The idle path in onTimer only persists when the
return value is true, eliminating unnecessary file writes every 60s
for far-future or idle schedules.
* fix: prep for merge - explicit delivery mode migration, docs + changelog (#10776 ) (thanks @tyler6204)
2026-02-06 18:03:03 -08:00
Peter Steinberger
677450cd9b
chore(release): bump version to 2026.2.6
2026-02-06 15:37:31 -08:00
Tak Hoffman
8a352c8f9d
Web UI: add token usage dashboard ( #10072 )
...
* feat(ui): Token Usage dashboard with session analytics
Adds a comprehensive Token Usage view to the dashboard:
Backend:
- Extended session-cost-usage.ts with per-session daily breakdown
- Added date range filtering (startMs/endMs) to API endpoints
- New sessions.usage, sessions.usage.timeseries, sessions.usage.logs endpoints
- Cost breakdown by token type (input/output/cache read/write)
Frontend:
- Two-column layout: Daily chart + breakdown | Sessions list
- Interactive daily bar chart with click-to-filter and shift-click range select
- Session detail panel with usage timeline, conversation logs, context weight
- Filter chips for active day/session selections
- Toggle between tokens/cost view modes (default: cost)
- Responsive design for smaller screens
UX improvements:
- 21-day default date range
- Debounced date input (400ms)
- Session list shows filtered totals when days selected
- Context weight breakdown shows skills, tools, files contribution
* fix(ui): restore gatewayUrl validation and syncUrlWithSessionKey signature
- Restore normalizeGatewayUrl() to validate ws:/wss: protocol
- Restore isTopLevelWindow() guard for iframe security
- Revert syncUrlWithSessionKey signature (host param was unused)
* feat(ui): Token Usage dashboard with session analytics
Adds a comprehensive Token Usage view to the dashboard:
Backend:
- Extended session-cost-usage.ts with per-session daily breakdown
- Added date range filtering (startMs/endMs) to API endpoints
- New sessions.usage, sessions.usage.timeseries, sessions.usage.logs endpoints
- Cost breakdown by token type (input/output/cache read/write)
Frontend:
- Two-column layout: Daily chart + breakdown | Sessions list
- Interactive daily bar chart with click-to-filter and shift-click range select
- Session detail panel with usage timeline, conversation logs, context weight
- Filter chips for active day/session selections
- Toggle between tokens/cost view modes (default: cost)
- Responsive design for smaller screens
UX improvements:
- 21-day default date range
- Debounced date input (400ms)
- Session list shows filtered totals when days selected
- Context weight breakdown shows skills, tools, files contribution
* fix: usage dashboard data + cost handling (#8462 ) (thanks @mcinteerj)
* Usage: enrich metrics dashboard
* Usage: add latency + model trends
* Gateway: improve usage log parsing
* UI: add usage query helpers
* UI: client-side usage filter + debounce
* Build: harden write-cli-compat timing
* UI: add conversation log filters
* UI: fix usage dashboard lint + state
* Web UI: default usage dates to local day
* Protocol: sync session usage params (#8462 ) (thanks @mcinteerj, @TakHoffman)
---------
Co-authored-by: Jake McInteer <mcinteerj@gmail.com>
2026-02-05 22:35:46 -06:00
Gustavo Madeira Santana
4629054403
chore: apply local workspace updates ( #9911 )
...
* chore: apply local workspace updates
* fix: resolve prep findings after rebase (#9898 ) (thanks @gumadeiras)
* refactor: centralize model allowlist normalization (#9898 ) (thanks @gumadeiras)
* fix: guard model allowlist initialization (#9911 )
* docs: update changelog scope for #9911
* docs: remove model names from changelog entry (#9911 )
* fix: satisfy type-aware lint in model allowlist (#9911 )
2026-02-05 16:54:44 -05:00
Peter Steinberger
5031b283a5
chore: bump version to 2026.2.4
2026-02-05 00:38:50 -08:00
Peter Steinberger
cfdc551346
fix(mac): resolve cron schedule formatters
2026-02-04 17:55:13 -08:00
Tyler Yust
f8d2534062
fix(cron): fix test failures and regenerate protocol files
...
- Add forceReload option to ensureLoaded to avoid stat I/O in normal
paths while still detecting cross-service writes in the timer path
- Post isolated job summary back to main session (restores the old
isolation.postToMainPrefix behavior via delivery model)
- Update legacy migration tests to check delivery.channel instead of
payload.channel (normalization now moves delivery fields to top-level)
- Remove legacy deliver/channel/to/bestEffortDeliver from payload schema
- Update protocol conformance test for delivery modes
- Regenerate GatewayModels.swift (isolation -> delivery)
2026-02-04 01:03:59 -08:00
Tyler Yust
246896d64b
refactor(cron): improve delivery configuration handling in CronJobEditor and CLI
...
- Enhanced the delivery configuration logic in CronJobEditor to explicitly set the bestEffort property based on job settings.
- Refactored the CLI command to streamline delivery object creation, ensuring proper handling of optional fields like channel and to.
- Improved code readability and maintainability by restructuring delivery assignment logic.
This update clarifies the delivery configuration process, enhancing the reliability of job settings in both the editor and CLI.
2026-02-04 01:03:59 -08:00
Tyler Yust
3f82daefd8
feat(cron): enhance delivery modes and job configuration
...
- Updated isolated cron jobs to support new delivery modes: `announce` and `none`, improving output management.
- Refactored job configuration to remove legacy fields and streamline delivery settings.
- Enhanced the `CronJobEditor` UI to reflect changes in delivery options, including a new segmented control for delivery mode selection.
- Updated documentation to clarify the new delivery configurations and their implications for job execution.
- Improved tests to validate the new delivery behavior and ensure backward compatibility with legacy settings.
This update provides users with greater flexibility in managing how isolated jobs deliver their outputs, enhancing overall usability and clarity in job configurations.
2026-02-04 01:03:59 -08:00
Peter Steinberger
e4b084c762
chore: bump version to 2026.2.3
2026-02-03 18:33:27 -08:00
Peter Steinberger
1c4db91593
chore: prepare 2026.2.2 release
2026-02-03 10:02:01 -08:00
Gustavo Madeira Santana
ac2b71f240
chore: fix CI
2026-02-02 21:44:31 -05:00
Mariano Belinky
7113dc21a9
Revert "Core: update shared gateway models"
...
This reverts commit 37eaca719a .
2026-02-02 17:36:49 +00:00
Mariano Belinky
4ab814fd50
Revert "iOS: wire node services and tests"
...
This reverts commit 7b0a0f3dac .
2026-02-02 17:36:49 +00:00
Mariano Belinky
6cd3bc3a46
iOS: improve gateway auto-connect and voice permissions
2026-02-02 16:42:18 +00:00
Mariano Belinky
37eaca719a
Core: update shared gateway models
2026-02-02 16:42:18 +00:00
Mariano Belinky
ff6114599e
iOS: update onboarding and gateway UI
2026-02-02 16:42:18 +00:00
Mariano Belinky
532b9653be
iOS: wire node commands and incremental TTS
2026-02-02 16:42:18 +00:00
Mariano Belinky
1a48bce294
iOS: add PTT once/cancel
2026-02-02 16:42:18 +00:00
Mariano Belinky
17b18971f1
iOS: pause voice wake during PTT
2026-02-02 16:42:18 +00:00
Mariano Belinky
9f101d3a9a
iOS: add push-to-talk node commands
2026-02-02 16:42:18 +00:00
Mariano Belinky
a884955cd6
iOS: add write commands for contacts/calendar/reminders
2026-02-02 16:42:18 +00:00
Mariano Belinky
f72ac60b01
iOS: streamline notify timeouts
2026-02-02 16:42:18 +00:00
Mariano Belinky
761188cd1d
iOS: fix node notify and identity
2026-02-02 16:42:18 +00:00
Mariano Belinky
a4382607d7
Gateway: wait for snapshot before connect
2026-02-02 16:42:17 +00:00
Mariano Belinky
84e115834f
Gateway: fix node invoke receive loop
2026-02-02 16:42:17 +00:00
Mariano Belinky
78f7e5147b
iOS: stabilize talk mode tests
2026-02-02 16:42:17 +00:00
Mariano Belinky
7b0a0f3dac
iOS: wire node services and tests
2026-02-02 16:42:17 +00:00
Peter Steinberger
85cd55e22b
chore: bump to 2026.2.1
2026-02-02 08:51:54 +00:00
Peter Steinberger
4f2166c503
chore: update appcast for 2026.1.30
2026-01-31 14:31:00 +01:00
cpojer
0ffc251704
chore: Updated lint config using `ignorePatterns`.
2026-01-31 21:24:21 +09:00
Peter Steinberger
b9b94715fa
fix: avoid stderr backpressure in macOS discovery ( #3304 ) (thanks @abhijeet117)
2026-01-31 12:03:30 +01:00
abhijeet117
efb93d18cf
Fix potential subprocess hang by discarding stderr pipe
2026-01-31 12:03:30 +01:00
Peter Steinberger
247fab47ca
chore: bump version to 2026.1.30
2026-01-31 11:37:36 +01:00
cpojer
76361ae3ab
revert: Switch back to `tsc` for compiling.
2026-01-31 18:31:49 +09:00
Mariano Belinky
821ed35be1
Revert "iOS: align node permissions and notifications"
...
This reverts commit b17e6fdd07 .
2026-01-31 09:32:36 +01:00
cpojer
67945e8d62
chore: Switch from TypeScript to build with `tsdown`, speeds up `pnpm build` by 5-10x.
2026-01-31 15:25:37 +09:00
Mariano Belinky
b17e6fdd07
iOS: align node permissions and notifications
2026-01-31 02:28:48 +01:00
Peter Steinberger
9a7160786a
refactor: rename to openclaw
2026-01-30 03:16:21 +01:00
Peter Steinberger
cb4b3f74b5
chore(release): bump versions to 2026.1.29
2026-01-29 16:48:13 +00:00
Peter Steinberger
8d07955f2c
chore: bump beta version to 2026.1.27-beta.1
2026-01-28 01:28:16 +01:00
Shadow
9ec4c619e0
Branding: remove legacy android packages
2026-01-27 14:46:50 -06:00
Shadow
f7a0b0934d
Branding: update bot.molt bundle IDs + launchd labels
2026-01-27 14:46:50 -06:00
Alex Fallah
cf5ed4b5a4
chore: update Package.resolved after dependency resolution
2026-01-27 14:17:20 -06:00
Alex Fallah
289440256b
fix: update remaining ClawdbotKit path references to MoltbotKit
...
- scripts/bundle-a2ui.sh: A2UI_APP_DIR path
- package.json: format:swift and protocol:check paths
- scripts/protocol-gen-swift.ts: output paths
- .github/dependabot.yml: directory path and comment
- .gitignore: build cache paths
- .swiftformat: exclusion paths
- .swiftlint.yml: exclusion path
- apps/android/app/build.gradle.kts: assets.srcDir path
- apps/ios/project.yml: package path
- apps/ios/README.md: documentation reference
- docs/concepts/typebox.md: documentation reference
- apps/shared/MoltbotKit/Package.swift: fix argument order
2026-01-27 14:17:20 -06:00
Alex Fallah
d33cd45061
fix(macOS): rename Clawdbot directories to Moltbot for naming consistency
...
Directory renames:
- apps/macos/Sources/Clawdbot → Moltbot
- apps/macos/Sources/ClawdbotDiscovery → MoltbotDiscovery
- apps/macos/Sources/ClawdbotIPC → MoltbotIPC
- apps/macos/Sources/ClawdbotMacCLI → MoltbotMacCLI
- apps/macos/Sources/ClawdbotProtocol → MoltbotProtocol
- apps/macos/Tests/ClawdbotIPCTests → MoltbotIPCTests
- apps/shared/ClawdbotKit → MoltbotKit
- apps/shared/MoltbotKit/Sources/Clawdbot* → Moltbot*
- apps/shared/MoltbotKit/Tests/ClawdbotKitTests → MoltbotKitTests
Resource renames:
- Clawdbot.icns → Moltbot.icns
Code fixes:
- Update Package.swift paths to reference Moltbot* directories
- Fix clawdbot* → moltbot* symbol references in Swift code:
- clawdbotManagedPaths → moltbotManagedPaths
- clawdbotExecutable → moltbotExecutable
- clawdbotCommand → moltbotCommand
- clawdbotNodeCommand → moltbotNodeCommand
- clawdbotOAuthDirEnv → moltbotOAuthDirEnv
- clawdbotSelectSettingsTab → moltbotSelectSettingsTab
2026-01-27 14:17:20 -06:00
Shadow
c1a7917de7
Mac: finish Moltbot rename (paths)
2026-01-27 14:12:47 -06:00
Shadow
cc72498b46
Mac: finish Moltbot rename
2026-01-27 14:12:17 -06:00
Peter Steinberger
6d16a658e5
refactor: rename clawdbot to moltbot with legacy compat
2026-01-27 12:21:02 +00:00
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