Peter Steinberger
9cf4fc3867
fix: honor send path/filePath inputs ( #1444 ) (thanks @hopyky)
2026-01-23 02:10:05 +00:00
Matt mini
fb7159be5e
Fix: Support path and filePath parameters in message send action
...
The message tool accepts path and filePath parameters in its schema,
but these were never converted to mediaUrl, causing local files to
be ignored when sending messages.
Changes:
- src/agents/tools/message-tool.ts: Convert path/filePath to media with file:// URL
- src/infra/outbound/message-action-runner.ts: Allow hydrateSendAttachmentParams for "send" action
Fixes issue where local audio files (and other media) couldn't be sent
via the message tool with the path parameter.
Users can now use:
message({ path: "/tmp/file.ogg" })
message({ filePath: "/tmp/file.ogg" })
2026-01-23 02:03:37 +00:00
Peter Steinberger
712bc74c30
docs: highlight mattermost plugin
2026-01-23 01:39:36 +00:00
Peter Steinberger
0396b678fa
docs: note transcript hygiene sync
2026-01-23 01:38:05 +00:00
Peter Steinberger
eaf1b6bfee
docs: simplify OpenProse install
2026-01-23 01:37:54 +00:00
Peter Steinberger
06cb2bf58d
docs: expand mattermost intro
2026-01-23 01:35:50 +00:00
Peter Steinberger
8fdb3b38eb
docs: add mattermost redirect
2026-01-23 01:35:15 +00:00
Peter Steinberger
5689d7fb98
refactor: remove transcript sanitize extension
2026-01-23 01:34:33 +00:00
Peter Steinberger
2424404fb4
docs: add transcript hygiene reference
2026-01-23 01:34:21 +00:00
Peter Steinberger
17a09cc721
Merge pull request #1472 from czekaj/fix/logs-follow-spinner
...
fix: suppress spinner in logs --follow mode
2026-01-23 01:29:30 +00:00
Peter Steinberger
bc4d8ce398
docs: link Lobster and OpenProse
2026-01-23 01:29:17 +00:00
Peter Steinberger
279f799388
fix: harden Mattermost plugin gating ( #1428 ) (thanks @damoahdominic)
2026-01-23 01:23:23 +00:00
Peter Steinberger
1d658109a8
docs: remove OpenProse telemetry mentions
2026-01-23 01:20:30 +00:00
Peter Steinberger
5a446f3a21
docs: expand OpenProse guide
2026-01-23 01:08:55 +00:00
Peter Steinberger
52b6bf04af
fix: improve tool summaries
2026-01-23 01:00:24 +00:00
Lucas Czekaj
76a42da676
fix: suppress spinner in logs --follow mode
...
The progress spinner was being shown for each gateway RPC call during
log tailing, causing repeated spinner frames (◇ │) to appear every
polling interval.
Add a `progress` option to `callGatewayFromCli` and disable the spinner
during follow mode polling to keep output clean.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-22 16:58:42 -08:00
Peter Steinberger
51a9053387
feat: add OpenProse plugin skills
2026-01-23 00:49:40 +00:00
Peter Steinberger
db0235a26a
fix: gate transcript sanitization by provider
2026-01-23 00:42:45 +00:00
Peter Steinberger
fac21e6eb4
Merge pull request #1428 from bestparents/feat/mattermost-channel
...
feat: add Mattermost channel support
2026-01-23 00:24:47 +00:00
Peter Steinberger
e872f5335b
fix: allow chained exec allowlists
...
Co-authored-by: Lucas Czekaj <1464539+czekaj@users.noreply.github.com >
2026-01-23 00:11:58 +00:00
Peter Steinberger
a23e272877
Merge pull request #1440 from robbyczgw-cla/fix/token-count-after-compaction
...
fix: update token count display after compaction
2026-01-23 00:10:46 +00:00
Peter Steinberger
870bfa94ed
fix: skip tool id sanitization for openai responses
2026-01-22 23:51:59 +00:00
Peter Steinberger
d297e17958
refactor: centralize control ui avatar helpers
2026-01-22 23:41:36 +00:00
Peter Steinberger
6a25e23909
fix: tui local shell consent UX ( #1463 )
...
- add local shell runner + denial notice + tests
- docs: describe ! local shell usage
- lint: drop unused Slack upload contentType
- cleanup: remove stray Swabble pins
Thanks @vignesh07.
Co-authored-by: Vignesh Natarajan <vigneshnatarajan92@gmail.com >
2026-01-22 23:38:44 +00:00
Vignesh Natarajan
dc66527114
tui: clarify local shell exec consent prompt
2026-01-22 23:26:01 +00:00
Vignesh Natarajan
110b5dafee
tui: keep trimming for normal submits; only raw ! triggers bash
2026-01-22 23:26:01 +00:00
Vignesh Natarajan
5fd699d0bf
tui: add local shell execution for !-prefixed lines
2026-01-22 23:26:01 +00:00
Peter Steinberger
c1e50b7184
docs: clarify node service commands
2026-01-22 23:22:56 +00:00
Peter Steinberger
c7e0dc10fc
docs: fix remaining node ws references
2026-01-22 23:22:56 +00:00
Dominic Damoah
01579aa7d7
Merge branch 'main' into feat/mattermost-channel
2026-01-22 18:17:40 -05:00
Peter Steinberger
42cd8a02bb
Merge pull request #1447 from jdrhyne/fix/slack-filetype-deprecation
...
fix(slack): remove deprecated filetype field from files.uploadV2 [AI]
2026-01-22 23:16:26 +00:00
Peter Steinberger
96f1846c2c
docs: align node transport with gateway ws
2026-01-22 23:10:09 +00:00
Peter Steinberger
7c336588ea
chore: drop tty from install e2e docker
2026-01-22 23:09:28 +00:00
Peter Steinberger
814e9a500e
feat: add manual onboarding flow alias
2026-01-22 23:09:28 +00:00
Peter Steinberger
370896e994
fix(macos): prefer linked channel in health summaries
2026-01-22 23:09:28 +00:00
Peter Steinberger
573354f5e4
chore(dev): default restart-mac to attach-only
2026-01-22 23:08:56 +00:00
Peter Steinberger
c721947346
feat(macos): add attach-only launchd override
2026-01-22 23:08:56 +00:00
Peter Steinberger
56339a17cc
fix: correct gog auth services example ( #1454 ) (thanks @zerone0x)
2026-01-22 22:51:59 +00:00
Peter Steinberger
567d8e5aa4
Merge pull request #1454 from zerone0x/docs/fix-gog-auth-services-example
...
docs(gog): fix invalid service name in auth example
2026-01-22 22:50:48 +00:00
Peter Steinberger
da3a141c58
refactor: require session state for directive handling
2026-01-22 22:42:46 +00:00
Peter Steinberger
c0c8ee217f
fix: clarify session_status model-use guidance
2026-01-22 22:42:37 +00:00
Peter Steinberger
411ce7e231
fix: surface concrete ai error details
2026-01-22 22:24:25 +00:00
Peter Steinberger
b709898fb3
Merge pull request #1461 from ameno-/fix/node-daemon-run
...
Fix node daemon command
2026-01-22 22:02:19 +00:00
Peter Steinberger
826013c990
docs: refresh nodes + pairing docs
2026-01-22 22:02:06 +00:00
Peter Steinberger
482fcd2f2c
fix: resolve control UI avatar URLs ( #1457 ) (thanks @dlauer)
2026-01-22 21:58:46 +00:00
Peter Steinberger
6c7f224ce1
Merge pull request #1457 from dlauer/fix/avatar-relative-url-validation
...
fix(ui): allow relative URLs in avatar validation
2026-01-22 21:57:27 +00:00
Peter Steinberger
db146837a1
fix: move session-memory changelog entry
2026-01-22 21:55:10 +00:00
Peter Steinberger
1ef2de1276
fix: cover missing session key model switch persist ( #1465 ) (thanks @robbyczgw-cla)
2026-01-22 21:41:05 +00:00
Peter Steinberger
60cbf97079
Merge pull request #1464 from alfranli123/fix/session-memory-suppress-confirmation
...
fix(session-memory): suppress user-visible confirmation message
2026-01-22 21:40:15 +00:00
Peter Steinberger
13a62d1a6f
Merge pull request #1465 from robbyczgw-cla/fix/model-switch-persist-1435
...
fix: only show model switch success when persist succeeds (fixes #1435 )
2026-01-22 21:37:51 +00:00
Peter Steinberger
534f28a78f
Merge pull request #1439 from Nicell/fix/bluebubbles-typing-stop
...
fix(bluebubbles): call stop typing on idle and NO_REPLY
2026-01-22 21:33:49 +00:00
Peter Steinberger
3993c9a3b4
fix: stop BlueBubbles typing on idle/no-reply ( #1439 ) (thanks @Nicell)
2026-01-22 21:33:19 +00:00
Clawd
f552820a75
fix(bluebubbles): call stop typing on idle and NO_REPLY
...
Previously, typing stop was intentionally skipped because the
BlueBubbles Server DELETE endpoint was bugged (called startTyping
instead of stopTyping). Now that the server bug is fixed, we can
properly stop typing indicators.
- onIdle: now calls sendBlueBubblesTyping(false) to stop typing
- finally block: stops typing when no message sent (NO_REPLY case)
2026-01-22 21:20:35 +00:00
Robby
784ea4f7d5
test: add unit tests for model switch persist behavior
...
Tests verify:
- Success message shown when session state available
- Error message shown when sessionEntry missing
- Error message shown when sessionStore missing
- No model message when no /model directive
Covers edge cases for #1435 fix.
2026-01-22 20:40:41 +00:00
Robby
f07a58965e
fix: only show model switch success when persist succeeds ( fixes #1435 )
...
Previously, the /model command would display 'Model set to X' even when
the session state wasn't actually persisted (when sessionEntry, sessionStore,
or sessionKey were missing). This caused confusion as users saw success
messages but the model didn't actually change.
This fix:
- Tracks whether the model override was actually persisted
- Only shows success message when persist happened
- Shows a clear error message when persist fails
AI-assisted: Claude Opus 4.5 via Clawdbot
Testing: lightly tested (code review, no runtime test)
2026-01-22 20:31:06 +00:00
Al
773dad256e
fix(session-memory): suppress user-visible confirmation message
...
The session-memory hook saves session context to memory files when /new is run,
which is useful internal housekeeping. However, the confirmation message that
was displayed to users (showing the file path) leaked implementation details.
This change removes the user-visible message while keeping the console.log
for debugging purposes. The hook continues to save session context silently.
2026-01-22 15:22:20 -05:00
Dave Lauer
ffca65d15f
fix(gateway): resolve local avatars to URL in HTML injection and RPC
...
The frontend fix alone wasn't enough because:
1. serveIndexHtml() was injecting the raw avatar filename into HTML
2. agent.identity.get RPC was returning raw filename, overwriting the
HTML-injected value
Now both paths resolve local file avatars (*.png, *.jpg, etc.) to the
/avatar/{agentId} endpoint URL.
2026-01-22 15:16:31 -05:00
Ameno Osman
654b6a943b
fix(node): use node run for node daemon
2026-01-22 11:15:51 -08:00
Robby
768d5ccafe
style: fix formatting
2026-01-22 17:47:52 +00:00
Dominic Damoah
8b3cb373d4
fix: remove unused originatingChannel variable
...
Remove unused originatingChannel variable from runPreparedReply function that was assigned but never referenced.
2026-01-22 12:11:05 -05:00
Dave Lauer
9d09a7879c
fix(ui): allow relative URLs in avatar validation
...
The isAvatarUrl check only accepted http://, https://, or data: URLs,
but the /avatar/{agentId} endpoint returns relative paths like /avatar/main.
This caused local file avatars to display as text instead of images.
Fixes avatar display for locally configured avatar files.
2026-01-22 12:09:27 -05:00
Dominic Damoah
495a39b5a9
refactor: extract mattermost channel plugin to extension
...
Move mattermost channel implementation from core to extensions/mattermost plugin. Extract config schema, group mentions, normalize utilities, and all mattermost-specific logic (accounts, client, monitor, probe, send) into the extension. Update imports to use plugin SDK and local modules. Add channel metadata directly in plugin definition instead of using getChatChannelMeta. Update package.json with channel and install configuration.
2026-01-22 12:02:30 -05:00
zerone0x
ba824a4b2d
docs(gog): fix invalid service name in auth example
...
Replace invalid "docs" service with the correct "tasks,people" services
in the setup example. The gog CLI does not have a "docs" service - docs
commands (export/cat) use Drive authentication instead.
Fixes #1433
Co-Authored-By: Claude <noreply@anthropic.com >
2026-01-23 00:45:20 +08:00
Jonathan Rhyne
8b6b97c3f6
docs: add changelog entry for PR #1447
2026-01-22 08:39:54 -05:00
Jonathan Rhyne
47e440f73a
fix(slack): remove deprecated filetype field from files.uploadV2
...
Slack's files.uploadV2 API no longer supports the filetype field and logs
deprecation warnings when it's included. Slack auto-detects the file type
from the file content, so this field is unnecessary.
This removes the warning:
[WARN] web-api:WebClient filetype is no longer a supported field in files.uploadV2.
2026-01-22 08:33:13 -05:00
Peter Steinberger
80c1edc3ff
chore: update appcast for v2026.1.21
2026-01-22 12:24:06 +00:00
Peter Steinberger
1d55dc0fe3
fix: export sessions preview payload init
2026-01-22 12:23:59 +00:00
Peter Steinberger
cd6bacae23
chore: release 2026.1.21-2
2026-01-22 11:42:42 +00:00
Peter Steinberger
447db67b18
ui: add onboarding mode for control ui
2026-01-22 11:40:33 +00:00
Peter Steinberger
019726f2d1
fix: guard invalid avatar bootstrap text
2026-01-22 11:37:29 +00:00
Peter Steinberger
3be7ac8524
fix: build control ui during prepack
2026-01-22 11:11:15 +00:00
Peter Steinberger
058f00ba0b
chore: update protocol Swift models
2026-01-22 11:02:15 +00:00
Peter Steinberger
fb85cb3271
docs: clarify bootstrap memory absence
2026-01-22 10:48:07 +00:00
Peter Steinberger
d47db55106
chore: sync plugin versions
2026-01-22 10:32:53 +00:00
Peter Steinberger
5045a9a00d
test: relax Windows vitest limits
2026-01-22 10:29:44 +00:00
Peter Steinberger
36a2584ac7
fix: allowlist match without local exec resolution
2026-01-22 10:29:36 +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
e389bd478b
fix: keep backslashes in quoted exec paths
2026-01-22 09:58:24 +00:00
Robby
0873351401
fix: update token count display after compaction ( #1299 )
2026-01-22 09:58:07 +00:00
Peter Steinberger
ced9efd964
fix: avoid duplicate exec approval prompts
2026-01-22 09:53:36 +00:00
Peter Steinberger
6822d509d7
docs: explain unpinning model auth profiles
2026-01-22 09:38:47 +00:00
Peter Steinberger
9f588d91f4
docs: add cache optimization highlight
2026-01-22 09:35:12 +00:00
Peter Steinberger
486af3f453
docs: consolidate 2026.1.21 changelog
2026-01-22 09:35:12 +00:00
Peter Steinberger
7a283f86a8
fix: omit skills section in minimal prompt
2026-01-22 09:32:49 +00:00
Peter Steinberger
646ea6ef0b
test: use absolute exec path for allowlist
2026-01-22 09:20:38 +00:00
Peter Steinberger
4c8806ad38
Merge pull request #1431 from robbyczgw-cla/fix/subagent-skills-inheritance
...
fix: include skills in minimal prompt mode for subagents
2026-01-22 09:02:28 +00:00
Peter Steinberger
0824bc0236
test: isolate exec allowlist env
2026-01-22 08:58:55 +00:00
Peter Steinberger
0e17e55be9
fix: cache usage cost summary
2026-01-22 08:51:22 +00:00
Peter Steinberger
54e0fc342e
fix: wrap cli banner tagline
2026-01-22 08:50:06 +00:00
Peter Steinberger
cc8506ae79
fix: refresh menu sessions on reconnect
2026-01-22 08:48:13 +00:00
Peter Steinberger
f2606a17ba
chore: update a2ui bundle hash
2026-01-22 08:48:09 +00:00
Peter Steinberger
1a4fade2f7
fix: honor Windows Path casing
2026-01-22 08:33:52 +00:00
Peter Steinberger
e344b7df9c
fix: preserve antigravity thinking block types
2026-01-22 08:31:07 +00:00
Robby
256fdcb3cf
fix: include skills in minimal prompt mode for subagents
2026-01-22 08:28:55 +00:00
Peter Steinberger
acdfbee4f9
fix: detect antigravity claude by provider
2026-01-22 08:26:08 +00:00
Peter Steinberger
ff69a9bd9c
fix: sanitize antigravity thinking signatures
2026-01-22 08:17:49 +00:00
Dominic Damoah
91278d8b4e
Merge branch 'main' into feat/mattermost-channel
2026-01-22 03:11:53 -05:00
Peter Steinberger
b748b86b23
fix: canonicalize allowlist paths on Windows
2026-01-22 08:07:55 +00:00
Peter Steinberger
1a8b106f34
style: format agent workspace and prompts
2026-01-22 08:05:55 +00:00
Peter Steinberger
87baca82db
style: polish exec approvals prompt
2026-01-22 08:05:55 +00:00
Peter Steinberger
388d302472
fix: carry reply tags across streamed chunks
2026-01-22 08:01:34 +00:00
Peter Steinberger
e0c19607b7
fix: allow MEDIA local paths with spaces
2026-01-22 07:51:09 +00:00
Dominic Damoah
fe77d3eb56
Merge branch 'main' into feat/mattermost-channel
2026-01-22 02:49:17 -05:00
Peter Steinberger
230211fe26
fix: resolve Windows exec paths with extensions
2026-01-22 07:46:50 +00:00
Peter Steinberger
0f4e0cbe5f
test: cover unpaired telegram dm native commands
2026-01-22 07:44:35 +00:00
Peter Steinberger
40b7447a80
docs: update clawtributors
2026-01-22 07:36:40 +00: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
Lucas Czekaj
4b3e9c0f33
fix(exec): align node exec approvals ( #1425 )
...
Thanks @czekaj.
Co-authored-by: Lucas Czekaj <lukasz@czekaj.us >
2026-01-22 07:22:43 +00:00
Peter Steinberger
d83ea7f2da
fix: stabilize session previews
2026-01-22 07:15:16 +00:00
Peter Steinberger
7004616e03
docs: note node-gyp workaround for sharp
2026-01-22 07:09:20 +00:00
Peter Steinberger
0d37a92c16
fix: remove duplicate loadConfig import
2026-01-22 07:08:13 +00:00
Peter Steinberger
37cbe387bf
chore: update clawtributors
2026-01-22 07:08:13 +00:00
Peter Steinberger
8544df36b8
feat: extend Control UI assistant identity
2026-01-22 07:08:13 +00:00
Robby
3125637ad6
feat(webui): add custom assistant identity support
...
Adds the ability to customize the assistant's name and avatar in the Web UI.
Configuration options:
- config.ui.assistant.name: Custom name (replaces 'Assistant')
- config.ui.assistant.avatar: Emoji or letter for avatar (replaces 'A')
Also reads from workspace IDENTITY.md as fallback:
- Name: field sets the assistant name
- Emoji: field sets the avatar
Priority: config > IDENTITY.md > defaults
Closes #1383
2026-01-22 07:07:53 +00:00
Vignesh
aadb66e956
Merge pull request #1427 from vignesh07/docs/lobster-org-url
2026-01-21 23:07:39 -08:00
Peter Steinberger
ad6d048934
feat: add update wizard and guard elevated defaults
2026-01-22 07:06:19 +00:00
Peter Steinberger
d19a0249f8
fix: align rolling logs to local time
2026-01-22 07:02:52 +00:00
Peter Steinberger
b91e72824f
chore: land PR #1422 (thanks @aj47)
...
Co-authored-by: AJ <yspdev@gmail.com >
2026-01-22 07:01:27 +00:00
Peter Steinberger
b573231cd1
fix: prevent exec approval resolve race
2026-01-22 07:01:27 +00:00
AJ
862f34ade7
fix: read account_id from Codex CLI auth for workspace billing
2026-01-22 07:01:10 +00:00
Vignesh Natarajan
d8ad865cf5
docs: update lobster repo url
2026-01-21 22:55:49 -08: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
d430a3a5c7
chore: update a2ui bundle hash
2026-01-22 06:40:02 +00:00
Peter Steinberger
319b4d02a0
fix: load workspace templates from docs
2026-01-22 06:39:28 +00:00
Peter Steinberger
30ca87094d
fix: macOS auto bind loopback-first
2026-01-22 06:35:59 +00:00
Peter Steinberger
98ab2b4eae
Merge pull request #1424 from clawdbot/feature/agent-avatar-support
...
fix: complete agent identity avatar support
2026-01-22 06:28:17 +00:00
Peter Steinberger
b63175d822
Merge remote-tracking branch 'origin/main' into feature/agent-avatar-support
2026-01-22 06:27:45 +00:00
Peter Steinberger
6539c09a93
Merge remote-tracking branch 'origin/main' into feature/agent-avatar-support
2026-01-22 06:03:56 +00:00
Peter Steinberger
23ea4a21e0
fix: skip elevated defaults when not allowed
2026-01-22 06:03:23 +00:00
Peter Steinberger
34686027b1
fix: inherit model overrides for thread sessions
2026-01-22 06:03:23 +00:00
Peter Steinberger
7b7c107ffe
docs: update changelog for avatar follow-up ( #1424 ) (thanks @dlauer)
2026-01-22 05:58:46 +00:00
Peter Steinberger
36cfe75a0b
test: relax canvas host reload timing
2026-01-22 05:54:00 +00:00
Peter Steinberger
d425f1ebea
test: align envelope timestamp expectations ( #1329 ) (thanks @dlauer)
2026-01-22 05:51:42 +00:00
Peter Steinberger
8580b85f0b
fix: subagents list uses command session
2026-01-22 05:43:50 +00:00
Peter Steinberger
5ff4ac7fb7
fix: use gateway subcommand for launchd
2026-01-22 05:43:02 +00:00
Peter Steinberger
a2981c5a2c
feat: add elevated ask/full modes
2026-01-22 05:41:11 +00:00
Peter Steinberger
a59ac5cf6f
feat: add agent identity avatars ( #1329 ) (thanks @dlauer)
2026-01-22 05:37:15 +00:00
Peter Steinberger
5567bceb66
fix: restore daemon subcommand alias
2026-01-22 05:33:47 +00:00
Peter Steinberger
f98d31cdd3
style: format system prompt params test
2026-01-22 05:20:42 +00:00
Peter Steinberger
e0896de2bf
feat: surface repo root in runtime prompt
2026-01-22 05:20:42 +00:00
Peter Steinberger
8d73c16488
fix: add changelog for Chrome restore prompt ( #1419 ) (thanks @jamesgroat)
2026-01-22 05:17:45 +00:00
Peter Steinberger
0f8d0f37fd
Merge pull request #1419 from jamesgroat/fix/chrome-restore-prompt
...
Browser: suppress Chrome restore prompt
2026-01-22 05:17:01 +00:00
Peter Steinberger
d912b02a43
docs: add control ui dev gatewayUrl note
2026-01-22 05:05:30 +00:00
Peter Steinberger
4dca662a5d
chore(canvas): update a2ui bundle hash
2026-01-22 04:51:39 +00:00
Peter Steinberger
9063b9e61d
chore(pnpm): update lockfile
2026-01-22 04:51:36 +00:00
Peter Steinberger
50049fd220
chore(macos): drop time-sensitive notification entitlement toggle
2026-01-22 04:50:03 +00:00
Peter Steinberger
9ead312118
feat(macos): move location access to permissions tab
2026-01-22 04:50:03 +00:00
Peter Steinberger
f02960df26
fix: avoid whatsapp config resurrection
2026-01-22 04:49:56 +00:00
Peter Steinberger
b60db040e2
test: align envelope timestamps with local tz
2026-01-22 04:49:41 +00:00
Peter Steinberger
af42cb3ded
Merge pull request #1418 from MaudeBot/fix/export-section-meta
...
fix(ui): export SECTION_META from config-form module
2026-01-22 04:34:13 +00:00
Peter Steinberger
13dab38a26
fix: retry lobster spawn on windows
2026-01-22 04:31:25 +00:00
Peter Steinberger
351c73be01
docs: fix npm prefix guidance
2026-01-22 04:31:25 +00:00
Peter Steinberger
55ead9636c
docs: add /model allowlist troubleshooting note
2026-01-22 04:28:57 +00:00
James Groat
fd597a796b
Browser: suppress Chrome restore prompt
2026-01-21 21:27:34 -07:00
Peter Steinberger
ff3d8cab2b
feat: preflight update runner before rebase
2026-01-22 04:19:33 +00:00
Peter Steinberger
9ae03b92bb
docs: clarify prompt injection guidance
2026-01-22 04:19:33 +00:00
Peter Steinberger
5424b4173c
fix: localize system event timestamps
2026-01-22 04:15:39 +00:00
Peter Steinberger
30a8478e1a
fix: default envelope timestamps to local
2026-01-22 04:10:06 +00:00
Peter Steinberger
2fc926ab1c
Merge pull request #1329 from dlauer/feature/agent-avatar-support
...
feat: add avatar support for agent identity
2026-01-22 04:09:00 +00:00
Peter Steinberger
1ac1e72a47
Merge pull request #1204 from cpojer/reminders
...
Improve `cron` reminder tool description.
2026-01-22 04:06:50 +00:00
Peter Steinberger
9450873c1b
fix: align exec approvals default agent
2026-01-22 04:05:54 +00:00
Maude Bot
f40f16608c
fix(ui): export SECTION_META from config-form module
...
Export the SECTION_META constant from config-form.render.ts and
re-export it through config-form.ts so it can be imported by config.ts.
This fixes a runtime error where SECTION_META was being referenced
but not properly exported from its source module.
2026-01-21 23:03:08 -05:00
Peter Steinberger
5fb6a0fd32
fix: map OpenCode Zen models to correct APIs
2026-01-22 04:02:53 +00:00
Peter Steinberger
3b2aff0d6f
Merge pull request #1417 from czekaj/fix/exec-allowlist-agentid-derivation
...
fix(exec): derive agentId from sessionKey for allowlist lookup
2026-01-22 04:01:01 +00:00
Peter Steinberger
a2bea8e366
feat: add agent avatar support ( #1329 ) (thanks @dlauer)
2026-01-22 04:00:07 +00:00
Peter Steinberger
2d583e877b
fix: default exec approvals to main agent ( #1417 ) (thanks @czekaj)
2026-01-22 03:58:53 +00:00
Lucas Czekaj
0c55b1e9ce
fix(exec): derive agentId from sessionKey for allowlist lookup
...
When creating exec tools via chat/Discord, agentId was not passed,
causing allowlist lookup to use 'default' key instead of 'main'.
User's allowlist entries in agents.main were never matched.
Now derives agentId from sessionKey if not explicitly provided,
ensuring correct allowlist lookup for all exec paths.
2026-01-22 03:58:53 +00:00
Peter Steinberger
51cd9c7ff4
fix: make lobster tool tests windows-safe
2026-01-22 03:58:05 +00:00
Dave Lauer
7edc464b82
chore: fix formatting
2026-01-22 03:56:54 +00:00
Dave Lauer
754481716e
feat: add avatar support for agent identity
...
- Add avatar field to IdentityConfig type
- Add avatar parsing in AgentIdentity from IDENTITY.md
- Add renderAvatar support for image avatars in webchat
- Add CSS styling for image avatars
Users can now configure a custom avatar for the assistant in the webchat
by setting 'identity.avatar' in the agent config or adding 'Avatar: path'
to IDENTITY.md. The avatar can be served from the assets folder.
Closes #TBD
2026-01-22 03:56:54 +00:00
Peter Steinberger
0c3d46cb72
Merge pull request #1103 from mkbehr/feat/cron-context-messages
...
feat(cron): Add parameter to control context messages
2026-01-22 03:52:34 +00:00
Peter Steinberger
654f9e5053
fix: cap cron context messages ( #1103 ) (thanks @mkbehr)
2026-01-22 03:52:03 +00:00
Peter Steinberger
17fad54ca0
docs: update clawtributors
2026-01-22 03:37:29 +00:00
Peter Steinberger
0f7f7bb95f
fix: msteams attachments + plugin prompt hints
...
Co-authored-by: Christof <10854026+Evizero@users.noreply.github.com >
2026-01-22 03:37:29 +00:00
Michael Behr
ffbf75d740
update description
2026-01-22 03:37:20 +00:00
Michael Behr
4642fae193
feat(cron): add contextMessages param to control reminder context
2026-01-22 03:37:20 +00:00
Peter Steinberger
5fe8c4ab8c
docs: add gog gmail messages search note ( #1220 ) (thanks @mbelinky)
...
Co-authored-by: Mariano <mbelinky@users.noreply.github.com >
2026-01-22 03:36:28 +00:00
Mariano Belinky
7b8405cbfb
docs(gog): sanitize gmail messages example
2026-01-22 03:31:00 +00:00
Mariano Belinky
a96e7f59c0
docs(gog): add gmail messages search usage
2026-01-22 03:31:00 +00:00
Peter Steinberger
57f3d209de
docs: expand lobster guides
2026-01-22 03:25:13 +00:00
Peter Steinberger
40757a8c18
fix: stabilize lobster tool subprocess
2026-01-22 03:20:23 +00:00
Peter Steinberger
472b8fe15d
fix: prevent memory CLI hangs
2026-01-22 03:14:59 +00:00
Peter Steinberger
721737cc77
Merge pull request #1414 from czekaj/fix/discord-exec-resolvedpath-validation
...
fix(exec): pass undefined instead of null for optional approval params
2026-01-22 03:11:26 +00:00
Peter Steinberger
464de2978b
docs: add special thanks
2026-01-22 02:48:17 +00:00
Peter Steinberger
9d22646120
fix: reduce invalid config log noise
2026-01-22 02:48:01 +00:00
Peter Steinberger
f1aa260b0e
test: avoid downgrade prompt in update fallback
2026-01-22 02:44:13 +00:00
Peter Steinberger
b5c307d07f
docs: highlight lobster in changelog
2026-01-22 02:37:26 +00:00
Peter Steinberger
2e1514095d
fix: package Textual resources for mac app
2026-01-22 02:34:27 +00:00
Peter Steinberger
f4b3f33c8e
Merge pull request #1152 from vignesh07/feat/lobster-plugin
...
feat: Add optional lobster plugin tool (typed workflows, approvals/resume)
2026-01-22 02:34:05 +00:00
Peter Steinberger
2d1d793651
Merge pull request #1373 from yazinsai/main
...
Add auto-refresh polling for debug view
2026-01-22 02:25:24 +00:00
Peter Steinberger
2f47b3f6bd
fix: sync debug polling with route changes ( #1373 ) (thanks @yazinsai)
2026-01-22 02:24:19 +00:00
Peter Steinberger
302bb64457
test: fix await-thenable in signal typing test
2026-01-22 02:20:42 +00:00
Lucas Czekaj
de898c423b
fix(exec): pass undefined instead of null for optional approval params
...
TypeBox Type.Optional(Type.String()) accepts string|undefined but NOT null.
Discord exec was failing with 'resolvedPath must be string' because callers
passed null explicitly. Web UI worked because it skipped the approval request.
Fixes exec approval validation error in Discord-triggered sessions.
2026-01-21 18:14:51 -08:00
Peter Steinberger
47ebe29195
test: stabilize exec approvals path resolution
2026-01-22 02:07:40 +00:00
Peter Steinberger
cc74e0d188
feat(signal): add typing + read receipts
2026-01-22 02:04:59 +00:00
Yazin
d7d98c3971
Add auto-refresh polling for debug view
...
The debug view now automatically refreshes every 3 seconds when active,
similar to the logs view. This removes the need to manually click the
refresh button to see updated debug messages and status information.
2026-01-22 02:03:40 +00:00
Peter Steinberger
5bf7a9d0db
test: avoid hardcoded version strings
2026-01-22 02:01:11 +00:00
Peter Steinberger
3ad0d2fe23
chore: bump version to 2026.1.21
2026-01-22 01:59:16 +00:00
Peter Steinberger
da98528651
Merge pull request #1256 from zknicker/feat/heartbeat-session-target
...
feat: configurable heartbeat session
2026-01-22 01:50:53 +00:00
Peter Steinberger
75dd1781b7
fix(macos): clear stale gateway failures
2026-01-22 01:48:41 +00:00
Peter Steinberger
1b947dcdf9
chore: update dependencies
2026-01-22 01:47:43 +00:00
Peter Steinberger
39073d5196
fix: finish model list alias + heartbeat session ( #1256 ) (thanks @zknicker)
2026-01-22 01:36:58 +00:00
Zach Knickerbocker
7725dd6795
feat: configurable heartbeat session
2026-01-22 01:36:28 +00:00
Peter Steinberger
db61451c67
fix: handle Windows safe-bin exe names
2026-01-22 01:30:06 +00:00
Peter Steinberger
9780748bbb
Merge pull request #1372 from zerone0x/fix/openrouter-tool-call-id-alphanumeric
...
fix(agents): use alphanumeric-only tool call IDs for OpenRouter compatibility
2026-01-22 01:17:16 +00:00
Peter Steinberger
f5cec1dd8b
test: update fuzzy model selection expectations ( #1372 ) (thanks @zerone0x)
2026-01-22 01:16:59 +00:00
Peter Steinberger
758f30eb7d
refactor: satisfy swiftlint
2026-01-22 00:59:41 +00:00
Peter Steinberger
7e1a17e5e6
fix: unify exec approval ids
2026-01-22 00:59:29 +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
Peter Steinberger
0704fe7dbb
fix: enforce Mistral tool call ids ( #1372 ) (thanks @zerone0x)
2026-01-22 00:43:15 +00:00
Peter Steinberger
7d93de710e
fix: remove setup-token run option in onboarding
2026-01-22 00:42:04 +00:00
zerone0x
d51eca64cc
fix(agents): make tool call ID sanitization conditional with standard/strict modes
...
- Add ToolCallIdMode type ('standard' | 'strict') for provider compatibility
- Standard mode (default): allows [a-zA-Z0-9_-] for readable session logs
- Strict mode: only [a-zA-Z0-9] for Mistral via OpenRouter
- Update sanitizeSessionMessagesImages to accept toolCallIdMode option
- Export ToolCallIdMode from pi-embedded-helpers barrel
Addresses review feedback on PR #1372 about readability.
2026-01-22 00:41:22 +00:00
zerone0x
d0f9e22a4b
fix(agents): use alphanumeric-only tool call IDs for OpenRouter compatibility
...
Some providers like Mistral via OpenRouter require strictly alphanumeric
tool call IDs. The error message indicates: "Tool call id was
whatsapp_login_1768799841527_1 but must be a-z, A-Z, 0-9, with a length
of 9."
Changes:
- Update sanitizeToolCallId to strip all non-alphanumeric characters
(previously allowed underscores and hyphens)
- Update makeUniqueToolId to use alphanumeric suffixes (x2, x3, etc.)
instead of underscores
- Update isValidCloudCodeAssistToolId to validate alphanumeric-only IDs
- Update tests to reflect stricter sanitization
Fixes #1359
Co-Authored-By: Claude <noreply@anthropic.com >
2026-01-22 00:41:22 +00:00
Peter Steinberger
39b375e32b
Merge pull request #1396 from JustYannicc/fix/macos-x86-universal-build
...
fix(mac): default to universal binary for distribution builds
2026-01-22 00:32:06 +00:00
Peter Steinberger
3b6ec501aa
Merge origin/main into fix/macos-x86-universal-build
2026-01-22 00:31:54 +00:00
Peter Steinberger
2b254a9b39
fix: refine model directive handling
2026-01-22 00:29:27 +00:00
Clawd
429a2d7849
fix(mac): default to universal binary for distribution builds
...
Closes #1393
The distribution script (package-mac-dist.sh) now defaults BUILD_ARCHS to 'all',
producing universal binaries that run natively on both Apple Silicon and Intel Macs.
Previously, the script inherited the host architecture default from package-mac-app.sh,
which meant release builds done on ARM Macs only included ARM binaries.
2026-01-22 00:29:27 +00:00
Peter Steinberger
1cce83b21e
fix: refine model directive handling
2026-01-22 00:28:49 +00:00
Clawd
8255e4649c
fix(mac): default to universal binary for distribution builds
...
Closes #1393
The distribution script (package-mac-dist.sh) now defaults BUILD_ARCHS to 'all',
producing universal binaries that run natively on both Apple Silicon and Intel Macs.
Previously, the script inherited the host architecture default from package-mac-app.sh,
which meant release builds done on ARM Macs only included ARM binaries.
2026-01-22 00:28:49 +00:00
Peter Steinberger
7eef176afc
fix: warn on unset gateway.mode
2026-01-22 00:21:08 +00:00
Peter Steinberger
06e496540f
Merge pull request #1379 from ptn1411/feature/1378-zalouser-extension
...
Refs #1378 : scaffold zalouser extension
2026-01-22 00:00:29 +00:00
Peter Steinberger
f76e3c1419
fix: enforce secure control ui auth
2026-01-21 23:58:42 +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
b4776af38c
docs: clarify mac packaging guidance
2026-01-21 23:27:40 +00:00
Peter Steinberger
cd65e8e755
fix: type gateway lock handle
2026-01-21 23:05:11 +00:00
Peter Steinberger
28e547f120
fix: stabilize ci
2026-01-21 22:59:11 +00:00
Peter Steinberger
05a254746e
fix(gateway): enforce singleton lock
2026-01-21 22:47:18 +00:00
Peter Steinberger
529372f762
Merge pull request #1398 from vignesh07/feat/models-command
...
fix(chat): add /models and stop /model from dumping full model list
2026-01-21 21:54:16 +00:00
Peter Steinberger
3b18efdd25
feat: tighten exec allowlist gating
2026-01-21 21:45:50 +00:00
Vignesh Natarajan
6e044b5f2f
fix(models): include configured providers/models + ignore page with all
2026-01-21 13:14:18 -08:00
Vignesh Natarajan
310f916675
fix(models): handle out-of-range pages
2026-01-21 12:54:02 -08:00
Peter Steinberger
acd40e1780
docs: add showcase video
2026-01-21 20:53:55 +00:00
Peter Steinberger
b5fd66c92d
fix: add explicit tailnet gateway bind
2026-01-21 20:36:09 +00:00
Peter Steinberger
45c1ccdfcf
refactor: unify threading contexts
2026-01-21 20:35:12 +00:00
Peter Steinberger
76600e80ba
docs: simplify heartbeat active hours example
2026-01-21 20:33:23 +00:00
Peter Steinberger
483a50f107
fix: correct nodes exec config typing
2026-01-21 20:32:43 +00:00
Peter Steinberger
31943dcecb
feat: add heartbeat active hours
2026-01-21 20:30:37 +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
0d3b8f6ac3
feat: make nodes run exec-style
2026-01-21 20:25:12 +00:00
Peter Steinberger
6492e90c1b
feat: add auth-aware cache defaults
2026-01-21 20:23:39 +00:00
Peter Steinberger
e4b3c8b98d
fix(macos): switch connection mode to menu
2026-01-21 20:10:38 +00:00
Peter Steinberger
8b8e078ef8
chore(canvas): update a2ui bundle
2026-01-21 20:10:38 +00:00
Peter Steinberger
44a3539ffa
tmp
2026-01-21 20:10:37 +00:00
Peter Steinberger
0daaa5b592
fix: restore 1h cache ttl option
2026-01-21 20:00:32 +00:00
Peter Steinberger
6866cca6d7
docs: clarify cache-ttl pruning window
2026-01-21 20:00:32 +00:00
Peter Steinberger
c145a0d116
docs: update changelog
2026-01-21 19:58:20 +00:00
Peter Steinberger
6c0a01dc90
fix: bundle mac model catalog
2026-01-21 19:58:19 +00:00
Peter Steinberger
41c9c214fc
fix: drop obsolete pi-mono workarounds
2026-01-21 19:58:19 +00:00
Vignesh Natarajan
41d56c06b9
feat(commands): add /models and fix /model listing UX
2026-01-21 11:53:29 -08:00
Peter Steinberger
9f999f6554
fix: reset cache-ttl pruning window
2026-01-21 19:53:00 +00:00
Peter Steinberger
9f59ff325b
feat: add cache-ttl pruning mode
2026-01-21 19:46:24 +00:00
Echo
c415ccaed5
feat(sessions): add channelIdleMinutes config for per-channel session idle durations ( #1353 )
...
* feat(sessions): add channelIdleMinutes config for per-channel session idle durations
Add new `channelIdleMinutes` config option to allow different session idle
timeouts per channel. For example, Discord sessions can now be configured
to last 7 days (10080 minutes) while other channels use shorter defaults.
Config example:
sessions:
channelIdleMinutes:
discord: 10080 # 7 days
The channel-specific idle is passed as idleMinutesOverride to the existing
resolveSessionResetPolicy, integrating cleanly with the new reset policy
architecture.
* fix
* feat: add per-channel session reset overrides (#1353 ) (thanks @cash-echo-bot)
---------
Co-authored-by: Cash Williams <cashwilliams@gmail.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-01-21 19:10:31 +00:00
Peter Steinberger
403904ecd1
fix: harden port listener detection
2026-01-21 18:52:55 +00:00
Peter Steinberger
32550154f9
feat(queue): add per-channel debounce overrides
2026-01-21 18:50:55 +00:00
Peter Steinberger
6996c0f330
test: cover history image injection
2026-01-21 18:45:23 +00:00
Peter Steinberger
cf4f1ed03a
fix: persist history image injections
2026-01-21 18:45:23 +00:00
Peter Steinberger
c913f05fb5
docs(discord): mention wildcard channel defaults
2026-01-21 18:21:24 +00:00
Peter Steinberger
88d76d4be5
refactor(channels): centralize match metadata
2026-01-21 18:21:19 +00:00
Peter Steinberger
b52ab96e2c
docs(changelog): note discord wildcard fix
2026-01-21 17:56:01 +00:00
Peter Steinberger
f0a8b34198
fix(discord): align wildcard channel matching
2026-01-21 17:56:01 +00:00
Wimmie
64d29b0c31
feat(discord): add wildcard channel config support
...
Add support for '*' wildcard in Discord channel configuration,
matching the existing guild-level wildcard behavior.
This allows applying default channel settings (like autoThread)
to all channels without listing each one explicitly:
guilds:
'*':
channels:
'*': { autoThread: true }
Specific channel configs still take precedence over the wildcard.
2026-01-21 17:56:01 +00:00
Peter Steinberger
9b47f463b7
chore: rename gateway daemon prompts
2026-01-21 17:46:30 +00:00
Peter Steinberger
9605ad76c5
fix: preserve fetch preconnect in abort wrapper
2026-01-21 17:45:58 +00:00
Peter Steinberger
c129f0bbaa
docs: align gateway service naming
2026-01-21 17:45:26 +00:00
Peter Steinberger
9e22f019db
feat: fold gateway service commands into gateway
2026-01-21 17:45:26 +00:00
Shadow
6f58d508b8
chore: update carbon to v0.14.0
2026-01-21 11:36:56 -06:00
Peter Steinberger
84eadd92a1
Merge pull request #1384 from ameno-/fix/ssh-identity-agent
...
macOS: allow SSH agents without identity file
2026-01-21 17:32:44 +00:00
Peter Steinberger
fd918bf6bf
fix: allow SSH agent auth without identity file ( #1384 ) (thanks @ameno-)
2026-01-21 17:32:00 +00:00
Peter Steinberger
4e1806947d
fix: normalize abort signals for fetch
2026-01-21 17:29:46 +00:00
Peter Steinberger
8aca606a6f
docs: clarify bluebubbles message ids
2026-01-21 17:20:03 +00:00
Ameno Osman
56799a21be
macOS: allow SSH agents without identity file
2026-01-21 17:19:51 +00:00
Peter Steinberger
d2a0e416ea
test: align NO_REPLY typing expectations
2026-01-21 17:12:50 +00:00
Peter Steinberger
43afad9f51
fix: start instant typing at run start
2026-01-21 17:12:50 +00:00
Peter Steinberger
5d73a412c6
Merge pull request #1387 from clawdbot/temp/landpr-1369-followup
...
BlueBubbles: enforce short id resolution
2026-01-21 17:10:06 +00:00
Peter Steinberger
d0e8faea97
docs: update changelog for bluebubbles follow-up ( #1387 )
2026-01-21 17:09:51 +00:00
Peter Steinberger
cd25d69b4d
fix: harden bluebubbles short ids and fetch wrapper ( #1369 ) (thanks @tyler6204)
2026-01-21 17:09:15 +00:00
Peter Steinberger
c3adc50cb2
Merge pull request #1369 from tyler6204/fix/bluebubbles-gc-guid-resolution
...
BlueBubbles: short ID mapping, action resolution, and threading/typing fixes
2026-01-21 17:06:09 +00:00
Peter Steinberger
cbb9872478
docs: add FAQ entry for tool_use input error
2026-01-21 16:56:26 +00:00
Peter Steinberger
39e24c9937
docs: update node CLI references
2026-01-21 16:48:42 +00:00
Peter Steinberger
fa1bc589e4
feat: flatten node CLI commands
2026-01-21 16:48:42 +00:00
Peter Steinberger
0e003cb7f1
fix: normalize abort signals for telegram fetch
2026-01-21 16:46:58 +00:00
Pham Nam
a90fe1b245
Refs #1378 : scaffold zalouser extension
2026-01-21 19:48:21 +07:00
Peter Steinberger
fb164b321e
fix: model picker allowlist fallbacks
2026-01-21 11:22:33 +00:00
Peter Steinberger
884211a924
feat: render approvals tables on write
2026-01-21 11:10:03 +00:00
Peter Steinberger
9bd6b3fd54
feat: show node PATH and bootstrap node host env
2026-01-21 11:06:56 +00:00
Peter Steinberger
dc06b225cd
fix: narrow configure model allowlist for Anthropic OAuth
2026-01-21 11:00:28 +00:00
Peter Steinberger
cdb35c3aae
test: stabilize exec approvals homedir
2026-01-21 10:49:12 +00:00
Peter Steinberger
4e4f5558fc
fix: limit /model list output
2026-01-21 10:47:37 +00:00
Peter Steinberger
8479dc97da
fix: make session memory indexing async
2026-01-21 10:39:00 +00:00
Peter Steinberger
86ddd3c69c
Merge pull request #1370 from parubets/fix-debug-ttl-cache
...
WIP: cache trace mvp for Anthropic
2026-01-21 10:35:31 +00:00
Peter Steinberger
49d53ff0bb
fix: honor wildcard exec approvals on macOS
2026-01-21 10:27:19 +00:00
Peter Steinberger
97e8f9d619
fix: add diagnostics cache trace config ( #1370 ) (thanks @parubets)
2026-01-21 10:23:30 +00:00
Andrii
5392fa0dfa
cache trace mvp
...
Added a standalone cache tracing module and wired it into the embedded
runner so you can capture message flow and the exact context sent to
Anthropic in a separate JSONL file.
What changed
- New tracing module: src/agents/cache-trace.ts (self‑contained,
env‑gated, writes JSONL, computes per‑message digests).
- Hook points in src/agents/pi-embedded-runner/run/attempt.ts: logs
stage snapshots (loaded/sanitized/limited/prompt/stream/after) and wraps
the
stream fn to record the real context.messages at send time.
How to enable
- CLAWDBOT_CACHE_TRACE=1 enables tracing.
- CLAWDBOT_CACHE_TRACE_FILE=~/.clawdbot/logs/cache-trace.jsonl
overrides output (default is
$CLAWDBOT_STATE_DIR/logs/cache-trace.jsonl).
- Optional filters:
- CLAWDBOT_CACHE_TRACE_MESSAGES=0 to omit full messages (still
logs digests).
- CLAWDBOT_CACHE_TRACE_PROMPT=0 to omit prompt text.
- CLAWDBOT_CACHE_TRACE_SYSTEM=0 to omit system prompt.
What you’ll see
- One JSON object per line with stage, messagesDigest, per‑message
messageFingerprints, and the actual messages if enabled.
- The most important line is stage: "stream:context" — that is the
exact payload pi‑mono is sending. If this diverges from earlier stages,
you’ve
found the mutation point.
2026-01-21 10:23:30 +00:00
Peter Steinberger
63d017c3af
fix: add node tool failure context
2026-01-21 09:55:10 +00:00
Peter Steinberger
40646c73af
feat: improve exec approvals defaults and wildcard
2026-01-21 09:55:10 +00:00
Peter Steinberger
43ea7665ef
chore: bump bluebubbles to 2026.1.21-1
2026-01-21 09:43:19 +00:00
Peter Steinberger
ba131b0164
Update README to remove contributor acknowledgments
...
Removed special thanks and core contributors section.
2026-01-21 09:21:50 +00:00
Peter Steinberger
0693c7804f
test: skip plugin tools in sessions tools test
2026-01-21 09:17:27 +00:00
Peter Steinberger
6c69ea2c91
refactor: centralize sandbox runtime label
2026-01-21 09:07:21 +00:00
Peter Steinberger
1e10dc1d3b
fix: use plugin-sdk exports in bluebubbles
2026-01-21 09:03:09 +00:00
Peter Steinberger
c22a37976d
fix: report sandboxed runtime in status
2026-01-21 08:59:32 +00:00
Tyler Yust
9b9bbae501
feat: enhance message context with full ID support for replies and caching
...
- Updated message processing to include full message IDs alongside short IDs for better context resolution.
- Improved reply handling by caching inbound messages, allowing for accurate sender and body resolution without exposing dropped content.
- Adjusted tests to validate the new full ID properties and their integration into the message handling workflow.
2026-01-21 00:45:01 -08:00
Tyler Yust
7bfc32fe33
feat: enhance message handling with short ID resolution and reply context improvements
...
- Implemented resolution of short message IDs to full UUIDs in both text and media sending functions.
- Updated reply context formatting to optimize token usage by including only necessary information.
- Introduced truncation for long reply bodies to further reduce token consumption.
- Adjusted tests to reflect changes in reply context handling and message ID resolution.
2026-01-21 00:45:01 -08:00
Tyler Yust
b073deee20
feat: implement short ID mapping for BlueBubbles messages and enhance reply context caching
...
- Added functionality to resolve short message IDs to full UUIDs and vice versa, optimizing token usage.
- Introduced a reply cache to store message context for replies when metadata is omitted in webhook payloads.
- Updated message handling to utilize short IDs for outbound messages and replies, improving efficiency.
- Enhanced error messages to clarify required parameters for actions like react, edit, and unsend.
- Added tests to ensure correct behavior of new features and maintain existing functionality.
2026-01-21 00:45:01 -08:00
Peter Steinberger
89c5035aa2
docs: restore 2026.1.20 release notes
2026-01-21 08:43:05 +00:00
Peter Steinberger
cb7791c8a4
chore: release 2026.1.20-2
2026-01-21 08:30:33 +00:00
Peter Steinberger
9a14267dfa
chore: update appcast
2026-01-21 08:25:20 +00:00
Peter Steinberger
010d305401
chore: tidy package files list
2026-01-21 08:25:01 +00:00
Peter Steinberger
3210c91f6b
chore: release 2026.1.20
2026-01-21 08:23:49 +00:00
Peter Steinberger
e3cea55d72
docs: add npm files check to release checklist
2026-01-21 08:10:53 +00:00
Peter Steinberger
687a902f3e
fix: align chat composer
2026-01-21 07:48:00 +00:00
Peter Steinberger
fe860de148
fix: quiet update banner and skip duplicate plugin CLI
2026-01-21 07:37:22 +00:00
Peter Steinberger
bc8a59faa4
chore: release 2026.1.20-1
2026-01-21 07:37:22 +00:00
Peter Steinberger
91bcdad503
fix: guard anthropic refusal trigger
2026-01-21 07:28:49 +00:00
Peter Steinberger
ab97c6880b
Merge pull request #1360 from SocialNerd42069/fix/duplicate-assistant-texts
...
fix: prevent duplicate assistant texts from whitespace differences
2026-01-21 06:31:01 +00:00
Peter Steinberger
65dd73b4c3
fix: clean up slack threading landings ( #1360 ) (thanks @SocialNerd42069)
2026-01-21 06:29:36 +00:00
SocialNerd42069
b69aa011fe
Add auto-notify on completion to coding-agent skill
2026-01-21 06:29:36 +00:00
SocialNerd42069
e3a44b10bc
fix: prevent duplicate assistant texts from whitespace differences
...
- Add per-message dedup tracking in subscribeEmbeddedPiSession
- Compare both trimmed and normalized text to catch near-duplicates
- Reset dedup state on each new assistant message
- Add test for trailing whitespace edge case
Fixes duplicate Slack message delivery when the same text appears
with minor whitespace differences (e.g., trailing newline).
2026-01-21 06:29:36 +00:00
SocialNerd42069
5b8007784b
fix(slack): handle Bolt ESM/CJS import for Node 25.x
...
The slackBoltModule.default points to App class directly on Node 25.x,
not the module object. Check for App property first before using default.
2026-01-21 06:29:36 +00:00
SocialNerd42069
0d6e78b718
fix(slack): respect verbose setting and preserve thread context for tool notifications
...
Fixes two bugs in Slack tool notification delivery:
1. Tool notifications ignored verbose=false - normalized verbose values so
boolean false/'false' are properly treated as 'off'
2. Thread context lost - Slack outbound adapter now falls back to threadId
when replyToId is missing, and MessageThreadId is set for thread replies
Closes #1333
2026-01-21 06:29:36 +00:00
SocialNerd42069
46ab4cb19e
my local tweaks
2026-01-21 06:29:36 +00:00
Peter Steinberger
32edaad823
fix: address update cli type import
2026-01-21 06:10:27 +00:00
Peter Steinberger
5dcd48544a
feat: align update channel installs
2026-01-21 06:00:54 +00:00
Peter Steinberger
1e05925e47
fix: normalize model override auth handling
2026-01-21 06:00:21 +00:00
Peter Steinberger
fb47f1cbeb
chore: rename clawlog references
2026-01-21 05:53:32 +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
555b2578a8
feat: add /allowlist command
2026-01-21 05:34:53 +00:00
Peter Steinberger
0229b8bbd8
docs: expand 2026.1.20 highlights
2026-01-21 05:34:29 +00:00
Peter Steinberger
552f9eff7b
docs: add 2026.1.20 highlight
2026-01-21 05:31:37 +00:00
Peter Steinberger
36e0cffaaf
fix: stabilize directory cli output
2026-01-21 05:25:28 +00:00
Peter Steinberger
e17a9c6abf
docs: expand 2026.1.20 changelog
2026-01-21 05:24:23 +00:00
Peter Steinberger
6180603ef4
feat: improve doctor update flow
2026-01-21 05:23:37 +00:00
Peter Steinberger
810374d648
fix: align cli output tests and help examples
2026-01-21 05:20:31 +00:00
Peter Steinberger
968b967854
Merge pull request #1354 from vignesh07/fix/gateway-ios-client-id
...
fix(gateway): allow clawdbot-ios client id
2026-01-21 05:09:15 +00:00
Peter Steinberger
110079d99d
fix: guard nodes status duration parsing ( #1354 ) (thanks @vignesh07)
2026-01-21 05:07:27 +00:00
Peter Steinberger
34a126a6d7
fix: allow mobile node client ids ( #1354 ) (thanks @vignesh07)
2026-01-21 05:07:26 +00:00
Vignesh Natarajan
31462f64d8
fix: allow clawdbot-ios gateway client id
...
The iOS app currently identifies as clientId=clawdbot-ios when
connecting in node mode. Add this ID to the allowed gateway client
IDs so the handshake schema accepts it.
Also fixes a TS strictness issue in auto-reply status formatting
(parts filter) that caused
> clawdbot@2026.1.20 build /Users/vignesh/clawd/clawdbot-upstream
> tsc -p tsconfig.json && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts
[copy-hook-metadata] Copied boot-md/HOOK.md
[copy-hook-metadata] Copied command-logger/HOOK.md
[copy-hook-metadata] Copied session-memory/HOOK.md
[copy-hook-metadata] Copied soul-evil/HOOK.md
[copy-hook-metadata] Done to fail.
2026-01-21 05:07:26 +00:00
Peter Steinberger
de0a488985
refactor: unify gateway connectivity state
2026-01-21 05:01:32 +00:00
Peter Steinberger
15f16de651
docs: update nodes list/status flags
2026-01-21 04:52:54 +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
fa7df1976d
feat: theme hooks/skills/plugins output
2026-01-21 04:48:34 +00:00
Peter Steinberger
2cd62f94a5
feat: tableize device/directory outputs
2026-01-21 04:48:33 +00:00
Peter Steinberger
a74c19feed
docs: unify cli help examples
2026-01-21 04:48:33 +00:00
Peter Steinberger
1ad4a7194e
fix: allow node exec fallback and defer node approvals
2026-01-21 04:46:50 +00:00
Peter Steinberger
beec504ebd
feat: filter nodes list/status
2026-01-21 04:39:15 +00:00
Peter Steinberger
fe1133e2c5
Merge pull request #1348 from vignesh07/feat/tui-input-history
...
feat(tui): add input history (↑/↓) for submitted messages
2026-01-21 04:37:49 +00:00
Peter Steinberger
6f37f1d8ff
fix: record tui input history ( #1348 ) (thanks @vignesh07)
2026-01-21 04:37:22 +00:00
Peter Steinberger
57700f33a9
fix: record node last-connect by instance id
2026-01-21 04:32:53 +00:00
Vignesh Natarajan
2700794228
feat(tui): add input history for submitted messages (WIP)
...
Record submitted inputs in the editor history so up/down arrow
can recall previous messages.
Adds a small helper to wire submit handling and unit tests for
routing/recording behavior.
No PR yet (per request).
2026-01-21 04:31:33 +00:00
dependabot[bot]
416894c642
chore(deps): bump tar in the npm_and_yarn group across 1 directory
...
Bumps the npm_and_yarn group with 1 update in the / directory: [tar](https://github.com/isaacs/node-tar ).
Updates `tar` from 7.5.3 to 7.5.4
- [Release notes](https://github.com/isaacs/node-tar/releases )
- [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md )
- [Commits](https://github.com/isaacs/node-tar/compare/v7.5.3...v7.5.4 )
---
updated-dependencies:
- dependency-name: tar
dependency-version: 7.5.4
dependency-type: direct:production
dependency-group: npm_and_yarn
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-01-21 04:22:46 +00:00
Peter Steinberger
db88378ae3
fix: normalize node invoke result payloadJSON
2026-01-21 04:17:35 +00:00
Peter Steinberger
e97b4973bb
docs: clarify node host exec flow
2026-01-21 04:14:34 +00:00
Peter Steinberger
832dfb02fe
fix: omit null payloadJSON in node invoke results
2026-01-21 04:13:47 +00:00
Peter Steinberger
15e3a2a395
fix: sanitize node invoke result params
2026-01-21 04:13:47 +00:00
Peter Steinberger
8c472c210f
docs: colorize update help
2026-01-21 04:08:50 +00:00
Peter Steinberger
833bbcd166
fix: show subcommand help on --help
2026-01-21 04:08:50 +00:00
Peter Steinberger
d7440baef6
docs: clarify update help
2026-01-21 04:08:50 +00:00
Peter Steinberger
58b131919f
feat: use tsgo for dev/watch builds
2026-01-21 04:06:09 +00:00
Peter Steinberger
186e86660a
Merge pull request #1350 from Jackten/fix/fallback-authprofile-provider-scope
...
test(auto-reply): regression for authProfileId across provider fallback
2026-01-21 03:53:07 +00:00
Peter Steinberger
18d47b47d2
Merge pull request #1349 from siddhantjain/fix/immediate-callback-answer
...
fix(telegram): answer callback queries immediately to prevent retries
2026-01-21 03:51:50 +00:00
Peter Steinberger
eb1e2c7a3b
fix: suppress node warnings unless verbose
2026-01-21 03:47:50 +00:00
Peter Steinberger
6ea4cb0012
fix: suppress npm fund prompts
2026-01-21 03:47:50 +00:00
Peter Steinberger
184f5a5fc3
fix: suppress update deprecation warnings
2026-01-21 03:47:50 +00:00
Peter Steinberger
4ad359ffcd
feat: add non-interactive update option
2026-01-21 03:47:50 +00:00
Peter Steinberger
38cc2a3288
fix: guard media status parts filter
2026-01-21 03:43:42 +00:00
Peter Steinberger
28c49db494
fix: default exec security to allowlist
2026-01-21 03:40:27 +00:00
Peter Steinberger
026e6c4df4
fix: restore bundled plugin discovery
2026-01-21 03:40:05 +00:00
Peter Steinberger
841dfc693e
style: flatten approvals allowlist age
2026-01-21 03:36:54 +00:00
Peter Steinberger
f38278d919
style: collapse approvals allowlist age
2026-01-21 03:36:54 +00:00
Peter Steinberger
9545edcb49
style: tighten approvals allowlist age
2026-01-21 03:36:54 +00:00
Peter Steinberger
f3554a3ad8
feat: render approvals get as table
2026-01-21 03:36:54 +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
d1c2fc4bc8
fix: hide empty status rows
2026-01-21 03:32:16 +00:00
Peter Steinberger
a5a3ab958f
fix: skip bundled plugin discovery in tests
2026-01-21 03:29:03 +00:00
Peter Steinberger
165861e78d
feat: add approvals allowlist examples
2026-01-21 03:27:50 +00:00
Peter Steinberger
e7c355ee85
feat: group service help examples by submenu
2026-01-21 03:27:50 +00:00
Peter Steinberger
052a58f2f7
style: tighten nodes pending row
2026-01-21 03:27:50 +00:00
Peter Steinberger
5ff56ffb4e
style: compress nodes pending age
2026-01-21 03:27:50 +00:00
Peter Steinberger
9a3dd626a1
style: format nodes pending row
2026-01-21 03:27:50 +00:00
Peter Steinberger
aae4b2952f
feat: polish nodes cli output
2026-01-21 03:27:50 +00:00
Peter Steinberger
aec622fe63
chore: remove fresh dist log
2026-01-21 03:13:50 +00:00
Peter Steinberger
e6287270d9
feat: render nodes status as table
2026-01-21 03:11:27 +00:00
Vultr-Clawd Admin
c05a7b5390
test(auto-reply): drop auth profile on provider fallback
2026-01-20 23:07:33 -04:00
Siddhant Jain
020fecef5c
fix(telegram): answer callback queries immediately to prevent retries
...
Telegram retries callback queries if they aren't acknowledged quickly.
Previously, answerCallbackQuery was called in a finally block AFTER
processing, which could take several seconds for agent responses.
This change moves answerCallbackQuery to immediately after basic
validation, before any processing begins. This prevents Telegram
from sending duplicate callbacks while the agent is thinking.
Fixes duplicate callback handling when agent processing is slow.
2026-01-21 03:04:28 +00:00
Peter Steinberger
caf9dec89c
feat: add nodes list table with last connect
2026-01-21 03:03:48 +00:00
Peter Steinberger
438a41f91f
refactor: harden log stream writes
2026-01-21 03:03:29 +00:00
Peter Steinberger
a0cd295c0f
fix: add browser snapshot default mode ( #1336 )
...
Co-authored-by: Seb Slight <sbarrios93@gmail.com >
2026-01-21 03:03:10 +00:00
Peter Steinberger
14d3d72bcc
refactor(ui): reuse emoji icon helpers
2026-01-21 02:58:56 +00:00
Peter Steinberger
03916ed10e
feat(ui): add copy-as-markdown in chat
...
Co-authored-by: Bradley Priest <bradleypriest@users.noreply.github.com >
2026-01-21 02:58:56 +00:00
Peter Steinberger
5bd55037e4
fix: harden web fetch SSRF and redirects
...
Co-authored-by: Eli <fogboots@users.noreply.github.com >
2026-01-21 02:54:14 +00:00
Peter Steinberger
ec51bb700c
Merge pull request #1314 from dbhurley/fix/control-ui-token-auth
...
fix: allow token auth to bypass device identity requirement
2026-01-21 02:44:47 +00:00
Peter Steinberger
051d518078
Merge pull request #1318 from sebslight/fix/logs-follow-output
...
CLI: avoid logs --follow echo
2026-01-21 02:38:14 +00:00
Peter Steinberger
294886b54f
fix(macos): return bind host
2026-01-21 02:29:41 +00:00
Peter Steinberger
6629e31789
Merge pull request #1322 from KrauseFx/fix/cron-edit-preserve-delivery-on-message
...
Fix(cli): Preserve delivery settings when updating message via cron edit
2026-01-21 02:29:20 +00:00
Peter Steinberger
9d7087168f
fix(gateway): improve validation errors ( #1347 )
...
Thanks @vignesh07.
Co-authored-by: Vignesh <vignesh07@users.noreply.github.com >
2026-01-21 02:28:33 +00:00
Vignesh Natarajan
daceeaa24c
fix(gateway): clarify schema validation errors
...
Improve validation error formatting for strict schemas.
In particular, additionalProperties errors now surface the
unexpected property name and where it occurred, which makes
handshake/connect failures easier to debug.
2026-01-21 02:28:33 +00:00
Peter Steinberger
778800be70
fix(macos): prefer tailnet ip for auto bind
2026-01-21 02:28:21 +00:00
Peter Steinberger
1b973caf7a
fix: preserve cron edit delivery payloads ( #1322 ) (thanks @KrauseFx)
2026-01-21 02:27:18 +00:00
ClawdFx
ea775025c0
Run oxfmt formatting
2026-01-21 02:18:43 +00:00
ClawdFx
0b2830470c
Fix: Preserve delivery settings when updating message via cron edit
...
- Add failing tests for delivery field preservation
- Fix register.cron-edit to conditionally build payload object
- Only include delivery fields (deliver, channel, to, bestEffortDeliver) when explicitly provided
- Previously undefined values were included, wiping out existing delivery settings
- Now --message alone preserves existing delivery config
- Tests verify both preservation and explicit override scenarios
2026-01-21 02:18:33 +00:00
Peter Steinberger
e81ca7ab00
fix: tame invalid config logging
2026-01-21 01:58:47 +00:00
Peter Steinberger
27acfa59c5
chore: update a2ui bundle
2026-01-21 01:33:31 +00:00
Peter Steinberger
b333c4a994
fix: address config settings viewbuilder updates
2026-01-21 01:33:31 +00:00
Peter Steinberger
23f7dd8b25
fix: pass threadId in restart sentinel
2026-01-21 01:26:15 +00:00
Peter Steinberger
77d9451712
docs: fix mdx in security cli doc
2026-01-21 01:24:29 +00:00
Peter Steinberger
a4fc2b4536
fix: handle fetch streams safely
2026-01-21 01:24:29 +00:00
Peter Steinberger
20a7dd8a80
feat: add config subsections in control ui
2026-01-21 01:22:19 +00:00
Peter Steinberger
450d2d25e2
feat: add sectioned config layout in mac app
2026-01-21 01:22:19 +00:00
Peter Steinberger
df024afc97
fix: note gatewayUrl param in control ui ( #1342 ) (thanks @ameno-)
2026-01-21 01:21:57 +00:00
Peter Steinberger
12168dc64f
Merge pull request #1337 from John-Rood/fix/restart-channel-routing
...
fix: preserve channel routing across gateway restart
2026-01-21 01:21:35 +00:00
Peter Steinberger
4232081fcb
Merge pull request #1342 from ameno-/fix-webchat-gateway-url
...
fix(ui): parse gatewayUrl from URL params
2026-01-21 01:20:25 +00:00
Peter Steinberger
17f3635109
fix: preserve restart routing + thread replies ( #1337 ) (thanks @John-Rood)
...
Co-authored-by: John-Rood <John-Rood@users.noreply.github.com >
Co-authored-by: Outdoor <outdoor@users.noreply.github.com >
2026-01-21 01:20:25 +00:00
Peter Steinberger
9206d21c76
fix: narrow cron payload merge types
2026-01-21 01:14:24 +00:00
Peter Steinberger
96be166bd6
fix: refactor cron edit payload patches
...
Co-authored-by: Felix Krause <869950+KrauseFx@users.noreply.github.com >
2026-01-21 01:14:24 +00:00
Peter Steinberger
d8abd53a1d
fix: reschedule heartbeat on hot reload
...
Co-authored-by: Seb Slight <sebslight@users.noreply.github.com >
2026-01-21 00:53:54 +00:00
Peter Steinberger
eff292eda4
Merge pull request #1338 from MaudeCode/fix/message-command-plugins
...
fix(cli): load plugin registry for message/channels commands
2026-01-21 00:49:04 +00:00
Ameno Osman
c74551c2ae
fix(ui): parse gatewayUrl from URL params for remote gateway access
...
Adds support for passing `gatewayUrl` as a URL parameter to the WebChat UI,
allowing the control-ui to connect to a remote gateway (e.g., VPS) instead
of defaulting to localhost.
Usage: http://localhost:5173/?gatewayUrl=ws:// <vps-ip>:18789&token=<token>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-20 16:35:02 -08:00
Peter Steinberger
48b0d08493
fix: resolve ReadableStream cast in skills install
2026-01-21 00:33:22 +00:00
Peter Steinberger
dd38185e6c
docs: add diagnostics changelog entry
2026-01-21 00:30:59 +00:00
Peter Steinberger
ec01e5c7e6
fix: emit diagnostics across channels
2026-01-21 00:30:34 +00:00
Peter Steinberger
e447233533
chore: sync protocol outputs
2026-01-21 00:19:53 +00:00
Peter Steinberger
00bcb01bb4
docs: clarify whatsapp voice notes and wsl portproxy
2026-01-21 00:14:36 +00:00
Peter Steinberger
458850483a
feat: add sherpa-onnx-tts skill
2026-01-21 00:14:36 +00:00
Peter Steinberger
76bae8da40
feat: add download installs for skills
2026-01-21 00:14:36 +00:00
Peter Steinberger
c33c0629ec
fix: treat tailnet host as local for pairing
2026-01-21 00:14:15 +00:00
Peter Steinberger
e5ea8a0d22
docs: add network hub + pairing locality
2026-01-21 00:14:14 +00:00
Peter Steinberger
e083f678fd
fix(ui): preserve ordered list numbering ( #1341 ) - thanks @bradleypriest
...
Co-authored-by: Bradley Priest <bradleypriest@gmail.com >
2026-01-21 00:12:21 +00:00
Peter Steinberger
51dfd6efdb
fix: tighten small-model audit guardrails
2026-01-20 23:52:26 +00:00
Peter Steinberger
4fad74738a
fix: prefer loopback for auto bind fallback
2026-01-20 23:48:26 +00:00
Peter Steinberger
69f0469530
Merge pull request #1332 from clawdbot/temp/landpr-model-catalog-improvements
...
fix(model-catalog): improve cache resilience
2026-01-20 23:07:51 +00:00
Peter Steinberger
eb1ee36f59
fix: relax diagnostic event typing ( #1332 ) (thanks @steipete)
2026-01-20 23:07:28 +00:00
Peter Steinberger
b341512564
fix: model catalog cache + TUI editor ctor ( #1326 ) (thanks @dougvk)
2026-01-20 22:58:41 +00:00
Peter Steinberger
6734f2d71c
fix: wire OTLP logs for diagnostics
2026-01-20 22:51:47 +00:00
Peter Steinberger
e12abf3114
fix: update CustomEditor constructor
2026-01-20 22:36:06 +00:00
Maude Bot
4ad9622efb
fix(cli): load plugin registry for message/channels commands
...
Fixes #1327 - 'clawdbot message --channel telegram' fails with
'Unknown channel: telegram' because plugins weren't loaded.
The Commander code path (non-route-first) calls ensureConfigReady() in
preAction but doesn't load the plugin registry. Channel plugins like
telegram are registered during plugin loading, so getChannelPlugin()
returns undefined without it.
This adds ensurePluginRegistryLoaded() call for commands that need
channel plugin access: message, channels, directory.
2026-01-20 16:41:15 -05:00
Dave Lauer
2f0dd9c4ee
chore: fix swift formatting
2026-01-20 16:38:37 -05:00
Dave Lauer
2af497495f
chore: regenerate protocol files
2026-01-20 16:21:15 -05:00
Dave Lauer
056b3e40d6
chore: fix formatting
2026-01-20 16:21:14 -05:00
Dave Lauer
6402a48482
feat: add avatar support for agent identity
...
- Add avatar field to IdentityConfig type
- Add avatar parsing in AgentIdentity from IDENTITY.md
- Add renderAvatar support for image avatars in webchat
- Add CSS styling for image avatars
Users can now configure a custom avatar for the assistant in the webchat
by setting 'identity.avatar' in the agent config or adding 'Avatar: path'
to IDENTITY.md. The avatar can be served from the assets folder.
Closes #TBD
2026-01-20 16:21:14 -05:00
Peter Steinberger
2dfd3b9a81
chore: drop nostr node_modules links
2026-01-20 20:15:56 +00:00
Peter Steinberger
7b6cbf5869
feat: add Nostr channel plugin and onboarding install defaults
...
Co-authored-by: joelklabo <joelklabo@users.noreply.github.com >
2026-01-20 20:15:56 +00:00
Peter Steinberger
8686b3b951
Merge pull request #1326 from dougvk/fix/model-catalog-cache-poison
...
fix(model-catalog): avoid caching import failures
2026-01-20 20:14:52 +00:00
Peter Steinberger
2e7e135bc0
fix: config form semantics + editor ctor ( #1315 ) (thanks @MaudeBot)
2026-01-20 20:14:22 +00:00
Peter Steinberger
c287664923
Merge pull request #1315 from MaudeCode/feat/config-ui-sections
...
feat(ui): config page overhaul with sidebar nav, search, and improved fields
2026-01-20 20:12:42 +00:00
Peter Steinberger
18f0051d26
fix: avoid discord gateway abort crash
2026-01-20 19:33:08 +00:00
Peter Steinberger
b012b1105e
fix: unblock discord listener concurrency
2026-01-20 19:30:32 +00:00
Peter Steinberger
21370fc09b
fix: allow fallback on timeout aborts
...
Co-authored-by: Larus Ivarsson <larusivar@gmail.com >
2026-01-20 19:23:13 +00:00
Peter Steinberger
4999f15688
refactor: consolidate mac debug CLI
2026-01-20 19:17:31 +00:00
Doug von Kohorn
e4f9555f21
fix(model-catalog): avoid caching import failures
...
Move dynamic import of @mariozechner/pi-coding-agent into the try/catch so transient module resolution errors don't poison the model catalog cache with a rejected promise.
This previously caused Discord/Telegram handlers and heartbeat to fail until process restart if the import failed once.
2026-01-20 20:09:55 +01:00
Peter Steinberger
243a8b019e
fix: route native status to active agent
2026-01-20 19:04:31 +00:00
Peter Steinberger
5c4079f66c
feat: add diagnostics events and otel exporter
2026-01-20 18:56:15 +00:00
Peter Steinberger
b1f086b536
chore(changelog): note cron auto-delivery ( #1285 )
2026-01-20 18:53:08 +00:00
Peter Steinberger
d298b8c16b
fix(cron): auto-deliver agent output to explicit targets
2026-01-20 17:56:15 +00:00
Peter Steinberger
40968bd5e0
test: stabilize atomic reindex search mock
2026-01-20 17:50:42 +00:00
Peter Steinberger
80e6c070bf
refactor: centralize discord api errors
2026-01-20 17:28:19 +00:00
Peter Steinberger
26fcca087b
fix(macos): resolve AnyCodable alias conflicts
2026-01-20 17:27:45 +00:00
Peter Steinberger
02ca148583
fix: preserve subagent thread routing ( #1241 )
...
Thanks @gnarco.
Co-authored-by: gnarco <gnarco@users.noreply.github.com >
2026-01-20 17:22:07 +00:00
Peter Steinberger
ae1c6f4313
docs: update changelog for gateway auth errors
2026-01-20 17:12:26 +00:00
Peter Steinberger
9faed2226a
fix: soften discord resolve warnings
2026-01-20 17:11:52 +00:00
Peter Steinberger
cf04b24632
fix: clarify gateway auth unauthorized message
2026-01-20 17:06:02 +00:00
Sebastian Slight
7e59c15496
CLI: avoid logs follow echo
2026-01-20 11:51:53 -05:00
Peter Steinberger
9f856abfe7
fix: align tui editor with pi-tui API
2026-01-20 16:51:44 +00:00
Maude Bot
e74fd9196c
feat(ui): add icons for all config sections
...
Added SVG icons for: meta, logging, browser, ui, models, bindings,
broadcast, audio, session, cron, web, discovery, canvasHost, talk, plugins
Also added descriptions for all new sections in metadata.
2026-01-20 11:47:22 -05:00
Peter Steinberger
40e928a4c4
Merge pull request #1271 from Whoaa512/feat/session-picker-mvp
...
feat: session picker MVP - fuzzy search, derived titles, relative time
2026-01-20 16:46:48 +00:00
David Hurley
079af0d0b0
fix: allow token auth to bypass device identity requirement
...
The device identity check was rejecting connections before token
authentication could be attempted. This broke the control-ui (web UI)
which uses token-based authentication via URL parameter.
Changes:
- Skip device identity requirement when a token is provided
- Guard device token verification to only run when device is present
Fixes control-ui showing "device identity required" error when
connecting with a valid token.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-20 11:46:47 -05:00
Peter Steinberger
faa5838147
fix: polish session picker filtering ( #1271 ) (thanks @Whoaa512)
2026-01-20 16:46:15 +00:00
Maude Bot
f6abe62e5f
feat(ui): major config form UX overhaul
...
Sidebar:
- SVG icons instead of emoji (consistent rendering)
- Clean navigation with active states
Form fields completely redesigned:
- Toggle rows: full-width clickable with label + description
- Segmented controls: for enum values with ≤5 options
- Number inputs: with +/- stepper buttons
- Text inputs: with reset-to-default button
- Select dropdowns: clean styling with custom arrow
- Arrays: card-based with clear add/remove, item numbering
- Objects: collapsible sections with chevron animation
- Maps: key-value editor with inline editing
Visual improvements:
- Consistent border radius and spacing
- Better color contrast for labels vs help text
- Hover and focus states throughout
- Icons for common actions (add, remove, reset)
Mobile:
- Horizontal scrolling nav on small screens
- Stacked layouts for complex fields
2026-01-20 11:40:13 -05:00
Peter Steinberger
5c5745dee5
fix: auto-enable plugins on startup
2026-01-20 16:38:37 +00:00
Peter Steinberger
15c735de4d
chore: update a2ui bundle hash
2026-01-20 16:38:08 +00:00
Peter Steinberger
8bf484bdad
fix: update pi-ai/pi-tui usage
2026-01-20 16:38:08 +00:00
CJ Winslow
36719690a2
test: add coverage for readLastMessagePreviewFromTranscript
...
Also add CHANGELOG entry and perf docs for session list flags.
2026-01-20 16:37:09 +00:00
CJ Winslow
f2666d2092
refactor: extract shared fuzzy filter utilities for list components
2026-01-20 16:37:08 +00:00
CJ Winslow
a28c271488
TUI: optimize fuzzy filtering and consolidate time formatting
...
- Extract formatRelativeTime to shared utility for reuse across components
- Optimize FilterableSelectList with pre-lowercased searchTextLower field (avoids toLowerCase on every keystroke)
- Implement custom fuzzy matching with space-separated token support and word boundary scoring
- Use matchesKey utility for consistent keybinding handling (arrows, vim j/k, ctrl+p/n)
- Fix searchable-select-list to support vim keybindings consistently
- Fix system-prompt runtimeInfo null check with nullish coalescing operator
2026-01-20 16:37:08 +00:00
CJ Winslow
1d9d5b30ce
feat: add last message preview to session picker
...
Read the final user/assistant message from session transcripts and display
it in the picker alongside the session update time. Allows quick previews
of what's in each session without opening it.
2026-01-20 16:36:51 +00:00
CJ Winslow
14f56a4e18
TUI: use editor keybindings for select cancel action
...
Replace hardcoded escape sequence checks with the pi-tui keybindings API to ensure consistent cancel handling across different terminal configurations.
2026-01-20 16:36:51 +00:00
CJ Winslow
687c41e838
TUI: display relative time for session updates in picker
...
Show "just now", "5m ago", "Yesterday" etc. instead of absolute timestamps
for better readability in the session picker list.
2026-01-20 16:36:51 +00:00
CJ Winslow
ddb7b5c6a4
feat: add search param to sessions.list RPC
...
Server-side filtering backup for client-side session picker search.
Case-insensitive substring match on displayName, label, subject,
sessionId, and key.
Closes #1161
2026-01-20 16:36:51 +00:00
CJ Winslow
262e35c219
refactor: clean up FilterableSelectList per code review
...
- Remove dead input handlers (onSubmit/onEscape never triggered)
- Store maxVisible as instance property instead of bracket access
- Remove unused filterInput theme property
2026-01-20 16:36:51 +00:00
CJ Winslow
95f0befd65
feat: add fuzzy filter to TUI session picker
...
Users can now type to filter sessions in real-time:
- FilterableSelectList component wraps pi-tui's fuzzyFilter
- Matches against displayName, label, subject, sessionId
- j/k navigation, Enter selects, Escape clears filter then cancels
- Uses derivedTitle from previous commit for better display
Refs #1161
2026-01-20 16:36:51 +00:00
CJ Winslow
83d5e30027
feat: add heuristic session title derivation for session picker
...
Enable meaningful session titles via priority-based derivation:
1. displayName (user-set)
2. subject (group name)
3. First user message (truncated to 60 chars)
4. sessionId prefix + date fallback
Opt-in via includeDerivedTitles param to avoid perf impact on
regular listing. Reads only first 10 lines of transcript files.
Closes #1161
2026-01-20 16:36:51 +00:00
Peter Steinberger
842be7b864
chore: bump version to 2026.1.20
2026-01-20 16:36:37 +00:00
Peter Steinberger
cb5d76ed3d
test: cover beta fallback update logic
2026-01-20 16:36:37 +00:00
Peter Steinberger
3d5ffee07f
fix: prefer stable release when beta lags
2026-01-20 16:36:04 +00:00
Maude Bot
bd8f4b052d
chore: remove duplicate config styles from components.css
2026-01-20 11:29:19 -05:00
Maude Bot
929d50b7d1
feat(ui): complete config page overhaul with sidebar nav, search, toggles, and diff view
...
Major redesign of the config page:
Layout:
- Sidebar navigation with section list
- Search input to filter settings
- Section cards with icons and descriptions
- Responsive design for mobile (stacked layout)
Fields:
- New toggle switches for booleans (replaces checkboxes)
- Improved field-row layout with label, help text, and control
- Better fieldset and array styling
Features:
- Diff view showing pending changes before save
- Original value tracking for comparison
- Section filtering via sidebar nav
- Search across setting names, descriptions, and nested properties
Styling:
- Dedicated config.css with all new styles
- Dark and light theme support
- Smooth animations and transitions
- Mobile-first responsive breakpoints
2026-01-20 11:28:41 -05:00
Peter Steinberger
4fda10c508
refactor(macos): split exec approvals handler
2026-01-20 16:24:44 +00:00
Peter Steinberger
0b0d8b2406
fix: repair model compat + editor ctor
2026-01-20 16:19:49 +00:00
Peter Steinberger
844ff2ee8f
style(macos): fix swiftformat lint
2026-01-20 16:19:37 +00:00
Peter Steinberger
8c666666ef
fix(tui): update CustomEditor ctor
2026-01-20 16:06:21 +00:00
Peter Steinberger
2394703593
fix(macos): disambiguate AnyCodable usage
2026-01-20 16:05:08 +00:00
Peter Steinberger
404470853a
fix: stabilize gateway tests
2026-01-20 16:02:46 +00:00
Peter Steinberger
99fc0fbac1
feat: sync plugin updates with update channel
2026-01-20 16:00:42 +00:00
Peter Steinberger
91ed00f800
fix: clarify doctor auto-enable hint
2026-01-20 15:58:30 +00:00
Peter Steinberger
76698ed296
fix: allow custom skill config bag
...
Co-authored-by: VACInc <3279061+VACInc@users.noreply.github.com >
2026-01-20 15:57:08 +00:00
Maude Bot
716546824f
feat(ui): improve config page with collapsible sections
...
- Group config settings into logical sections (Core, Agents, Communication, etc.)
- Add collapsible accordion UI for each section group
- Add icons and labels for each config category
- Improve mobile responsiveness with better button layout
- Style improvements for nested fieldsets and arrays
2026-01-20 10:56:44 -05:00
Peter Steinberger
74f382f732
fix: default Anthropic API cache TTL to 1h
2026-01-20 15:48:53 +00:00
Peter Steinberger
a76aea1bc0
chore: update a2ui bundle hash
2026-01-20 15:48:52 +00:00
Peter Steinberger
533766207f
fix: silence macos warning noise
2026-01-20 15:48:52 +00:00
Peter Steinberger
59fa002561
fix: update device identity signing
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
c6812c6af4
fix: harden compat and editor ctor
2026-01-20 15:16:05 +00:00
Peter Steinberger
1f7cb4b853
fix: shorten bonjour gateway service type
2026-01-20 15:10:06 +00:00
Peter Steinberger
d161f3ab0f
docs: refresh development channels timestamp
2026-01-20 15:10:06 +00:00
Peter Steinberger
c65b91c841
Merge pull request #1308 from dougvk/fix/preserve-command-arg-casing
...
fix(session): preserve command argument casing
2026-01-20 15:04:28 +00:00
Peter Steinberger
760b1e8fc6
fix: update model compat + tui editor
2026-01-20 15:02:25 +00:00
Peter Steinberger
188893f319
docs: add WhatsApp family binding example
2026-01-20 15:00:25 +00:00
Peter Steinberger
04ee9e7765
docs: clarify sandbox env + recreate guidance
2026-01-20 15:00:25 +00:00
Peter Steinberger
390ba5f42a
fix: guard closeIdleConnections typing
2026-01-20 14:58:31 +00:00
Peter Steinberger
b8593fd4fb
fix: close idle gateway http connections
2026-01-20 14:56:30 +00:00
Peter Steinberger
68a467dd66
fix: guard ZAI compat on openai-completions api
2026-01-20 14:39:58 +00:00
Peter Steinberger
d18319a57d
fix: align CustomEditor with pi-tui Editor API
2026-01-20 14:35:42 +00:00
Peter Steinberger
15e5bb3459
feat: improve /new model hints and reset confirmation
2026-01-20 14:35:20 +00:00
Peter Steinberger
41f6d06967
fix: align tui editor init ( #1298 ) (thanks @sibbl)
2026-01-20 14:32:46 +00:00
Peter Steinberger
e3a99aa2ce
refactor: split matrix provider modules
2026-01-20 14:32:04 +00:00
Peter Steinberger
c1d8456860
fix: clean up lint leftovers
2026-01-20 14:25:18 +00:00
Peter Steinberger
da10ca1585
fix: drain openresponses test responses
2026-01-20 14:20:04 +00:00
Peter Steinberger
5d017dae5a
feat: add update channel status
...
Co-authored-by: Richard Poelderl <18185649+p6l-richard@users.noreply.github.com >
2026-01-20 14:19:03 +00:00
Peter Steinberger
30fd7001f2
fix: tolerate pi-tui type exports
2026-01-20 14:17:39 +00:00
Peter Steinberger
da4b124480
fix(browser): register AI snapshot refs ( #1282 )
...
thanks @John-Rood
Co-authored-by: John Rood <62669593+John-Rood@users.noreply.github.com >
2026-01-20 14:14:36 +00:00
John Rood
710c681283
fix(browser): register refs from AI snapshot for act commands
...
When using the default AI snapshot format without explicit options like
interactive/compact/labels, refs were not being registered because
snapshotAiViaPlaywright returns raw text without ref registration.
This caused 'Unknown ref' errors when subsequently using act commands
with refs like e12 that appeared in the snapshot text.
The fix extracts refs from the AI snapshot using buildRoleSnapshotFromAiSnapshot
and registers them via rememberRoleRefsForTarget so act commands can resolve them.
Fixes #1268
2026-01-20 14:13:48 +00:00
Peter Steinberger
e45228ac37
fix: merge login shell PATH for gateway exec
2026-01-20 14:04:13 +00:00
Peter Steinberger
a0180f364d
fix: accept pi-tui editor ctor variants
2026-01-20 14:02:36 +00:00
Peter Steinberger
d69f246ba7
chore: fix lint/format
2026-01-20 13:52:59 +00:00
Peter Steinberger
a81989048d
fix: update ui ed25519 + bluebubbles actions
2026-01-20 13:43:27 +00:00
Peter Steinberger
b56e9964f5
style: format update channel logic
2026-01-20 13:41:30 +00:00
Peter Steinberger
ddd7fc1513
style: format update channel logic
2026-01-20 13:41:30 +00:00
Peter Steinberger
4ebf55f1db
feat: add dev update channel
2026-01-20 13:41:30 +00:00
Peter Steinberger
cc24ede586
docs: note release channels and add contributor
...
Co-authored-by: Richard Poelderl <richard.poelderl@gmail.com >
2026-01-20 13:41:30 +00:00
Peter Steinberger
eb3b84f3d2
chore: record zalouser PR commits
2026-01-20 13:38:38 +00:00
Peter Steinberger
304244f2be
docs: add zalouser PR thanks
2026-01-20 13:33:13 +00:00
Peter Steinberger
f067ea25b4
fix: align zalouser status + schema
2026-01-20 13:32:11 +00:00
Peter Steinberger
fa51294f65
fix: sync mobile gateway auth v3
2026-01-20 13:30:40 +00:00
Peter Steinberger
a4d1c4d522
fix: run doctor config flow once
2026-01-20 13:27:51 +00:00
Peter Steinberger
6e17c463ae
fix: add /skill fallback for native limits
...
Co-authored-by: thewilloftheshadow <thewilloftheshadow@users.noreply.github.com >
2026-01-20 13:20:29 +00:00
Peter Steinberger
63797e841d
Merge pull request #1247 from sebslight/fix/perplexity-web-search-provider
...
Config: accept Perplexity for web_search
2026-01-20 13:18:18 +00:00
Peter Steinberger
fdb171cb15
refactor: centralize channel ui metadata
2026-01-20 13:11:49 +00:00
Peter Steinberger
6f9861bb9b
chore: update deps
2026-01-20 13:06:16 +00:00
Peter Steinberger
759068304e
fix: tighten tls fingerprints and approval events
2026-01-20 13:04:20 +00:00
Peter Steinberger
ded578b1fa
docs: finalize clawnet refactor doc
2026-01-20 13:04:20 +00:00
Peter Steinberger
dcb8d16591
fix: validate ws tls fingerprint
2026-01-20 13:04:20 +00:00
Peter Steinberger
06c17a333e
docs: update protocol + security notes
2026-01-20 13:04:20 +00:00
Peter Steinberger
409a16060b
feat: enrich presence with roles
2026-01-20 13:04:20 +00:00
Peter Steinberger
7720106624
feat: add discovery role hints
2026-01-20 13:04:19 +00:00
Peter Steinberger
c613769d22
feat: add remote gateway tls fingerprint
2026-01-20 13:04:19 +00:00
Peter Steinberger
87343c374e
feat: route exec approvals via gateway
2026-01-20 13:04:19 +00:00
Peter Steinberger
67be9aed28
chore: make @napi-rs/canvas optional
2026-01-20 13:04:19 +00:00
Peter Steinberger
b48d5d96d3
test: cover scope upgrade flow
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
121ae6036b
docs: add matrix crypto setup note
2026-01-20 12:42:41 +00:00
Peter Steinberger
6e1ad31b49
build: allow matrix crypto build scripts
2026-01-20 12:23:05 +00:00
Doug von Kohorn
b8b0b3f0e7
chore: ignore serena cache
2026-01-20 13:16:49 +01:00
Peter Steinberger
0330b483ad
docs: add #1306 changelog entry
2026-01-20 12:08:15 +00:00
Peter Steinberger
9a2bf57e1c
refactor: extend channel plugin boundary
2026-01-20 12:07:54 +00:00
Peter Steinberger
439044068a
fix: drop stray Peekaboo submodule
2026-01-20 12:07:54 +00:00
Tyler Yust
4c3b4aeb76
fix: remove unused typingSignals variable in get-reply-run
2026-01-20 12:07:54 +00:00
Tyler Yust
1e8b291374
refactor: improve error handling in embedded run payloads by clarifying conditions for user-facing error messages and updating test descriptions for typing behavior
2026-01-20 12:07:54 +00:00
Tyler Yust
95f82154f7
feat: extend BlueBubbles attachment handling by adding support for reply context, allowing users to reference previous messages in media attachments
2026-01-20 12:07:54 +00:00
Tyler Yust
7bc3998451
feat: add media size validation to BlueBubbles media handling, ensuring compliance with channel limits and improving error handling for oversized media
2026-01-20 12:07:54 +00:00
Tyler Yust
d029ceab1c
feat: enhance BlueBubbles media and message handling by adding reply context support and improving outbound message ID tracking
2026-01-20 12:07:54 +00:00
Tyler Yust
c331bdc27d
feat: refactor BlueBubbles media handling by introducing a dedicated media send function and optimizing message processing for media attachments
2026-01-20 12:07:54 +00:00
Tyler Yust
b0b42b4e14
feat: improve BlueBubbles message processing by adding reply context formatting and enhancing message ID extraction from responses
2026-01-20 12:07:54 +00:00
Tyler Yust
e5514d4854
feat: implement reply context handling in BlueBubbles messaging, enhancing message formatting and metadata resolution
2026-01-20 12:07:54 +00:00
Tyler Yust
20bc89d96c
feat: enhance BlueBubbles messaging targets by adding support for UUID and hex chat identifiers, improving normalization and parsing functions
2026-01-20 12:07:54 +00:00
Tyler Yust
199fef2a5e
feat: enhance BlueBubbles group message handling by adding account-specific logging and improving typing signal conditions
2026-01-20 12:07:54 +00:00
Tyler Yust
d9a2ac7e72
feat: enhance BlueBubbles functionality by implementing macOS version checks for message editing and improving server info caching
2026-01-20 12:07:54 +00:00
Tyler Yust
a16934b2ab
feat: update BlueBubbles documentation and code to clarify group icon handling and normalize chat identifiers
2026-01-20 12:07:54 +00:00
Tyler Yust
14a072f5fa
feat: add support for setting group icons in BlueBubbles, enhancing group management capabilities
2026-01-20 12:07:54 +00:00
Tyler Yust
574b848863
feat: enhance BlueBubbles message actions with support for message editing, reply metadata, and improved effect handling
2026-01-20 12:07:54 +00:00
Tyler Yust
2e6c58bf75
feat: improve BlueBubbles message action error handling and enhance channel action descriptions
2026-01-20 12:07:54 +00:00
Tyler Yust
a5d89e6eb1
feat: enhance BlueBubbles channel integration with new messaging target normalization and typing indicator improvements
2026-01-20 12:07:54 +00:00
Tyler Yust
61907ddf3e
feat: add new channel capabilities for editing, unsending, replying, effects, and group management
2026-01-20 12:07:54 +00:00
Tyler Yust
1eab8fa9b0
Step 5 + Review
2026-01-20 12:07:54 +00:00
Tyler Yust
2cf444be02
Step 4 (Needs Review)
2026-01-20 12:07:54 +00:00
Tyler Yust
7870ce8177
Step 3 + Review
2026-01-20 12:07:54 +00:00
Tyler Yust
e9d691d472
(Step 2) Phase 2 & 3 Complete + Reviewed
2026-01-20 12:07:54 +00:00
Tyler Yust
ac2fcfe96a
Phase 0 + Review
2026-01-20 12:07:54 +00:00
Peter Steinberger
627fa3083b
Merge pull request #1298 from sibbl/matrix-with-e2ee-support
...
rewrite(matrix): integration with end to end encryption support
2026-01-20 12:04:45 +00:00
Peter Steinberger
e4877656ca
fix: add path import for shell utils ( #1298 ) (thanks @sibbl)
2026-01-20 11:59:36 +00:00
Peter Steinberger
d91f0ceeb3
fix: polish matrix e2ee storage ( #1298 ) (thanks @sibbl)
2026-01-20 11:59:36 +00:00
Sebastian Schubotz
9b71382efb
rewrite(matrix): use matrix-bot-sdk as base to enable e2ee encryption, strictly follow location + typing + group concepts, fix room bugs
2026-01-20 11:59:11 +00:00
Peter Steinberger
dd82d32d85
Merge pull request #1292 from bradleypriest/pr/chat-thinking-tool
...
ui(chat): separate tool/thinking output and add toggle
2026-01-20 11:57:21 +00:00
Peter Steinberger
5a42f7cabd
fix: align bird skill metadata and flags ( #1302 ) (thanks @odysseus0)
2026-01-20 11:55:14 +00:00
Peter Steinberger
f2c25c5f40
Merge pull request #1302 from odysseus0/docs/bird-skill-update
...
docs(bird): update skill for v0.5-0.8 features
2026-01-20 11:53:56 +00:00
Doug von Kohorn
528524e4c7
fix(session): preserve command argument casing
2026-01-20 12:53:45 +01:00
Peter Steinberger
7e08de4a5f
fix: add nextcloud talk manifest ( #1297 ) (thanks @ysqander)
2026-01-20 11:38:11 +00:00
Peter Steinberger
c9e3c14f9c
fix: finalize exec fish fallback ( #1297 ) (thanks @ysqander)
2026-01-20 11:25:49 +00:00
Peter Steinberger
636a8e3181
fix: merge plugin manifest types
2026-01-20 11:22:28 +00:00
Peter Steinberger
660f87278c
refactor: plugin catalog + nextcloud policy
2026-01-20 11:22:27 +00:00
Peter Steinberger
9ec1fb4a80
Merge pull request #1297 from ysqander/fix/fish-shell-bash
...
exec: prefer bash when fish is default shell
2026-01-20 11:13:35 +00:00
Peter Steinberger
74757cd5af
fix: stabilize gateway defaults
2026-01-20 11:11:26 +00:00
Peter Steinberger
9f75550702
Merge pull request #1294 from bradleypriest/pr/sessions-labels
...
ui(sessions): support editing session labels
2026-01-20 11:05:46 +00:00
Peter Steinberger
8214ab507c
Merge pull request #1272 from clawdbot/shadow/config-plugin-validation
...
Config: validate plugin config
2026-01-20 11:03:38 +00:00
Shadow
2f6d5805de
fix: enforce plugin config schemas ( #1272 ) (thanks @thewilloftheshadow)
...
Co-authored-by: thewilloftheshadow <thewilloftheshadow@users.noreply.github.com >
2026-01-20 11:03:17 +00:00
Peter Steinberger
48f733e4b3
refactor: use command lane enum
2026-01-20 10:51:25 +00:00
Peter Steinberger
e5f7435d9f
fix: sync device scopes on token rotation
2026-01-20 10:46:33 +00:00
Peter Steinberger
322c8dc4fc
Merge pull request #1208 from 24601/fix/slack-bolt-import
...
fix(slack): handle bolt import for CJS/ESM compatibility
2026-01-20 10:46:27 +00:00
Peter Steinberger
cf04b0e3bf
fix: align gateway presence + config defaults tests ( #1208 ) (thanks @24601)
2026-01-20 10:45:59 +00:00
Peter Steinberger
0f9f510dd9
refactor: centralize concurrency resolution
2026-01-20 10:41:56 +00:00
Peter Steinberger
e110cf4fb1
chore: keep vitest workers at 4
2026-01-20 10:41:09 +00:00
Peter Steinberger
6942ceb7a9
test: update gateway node/e2e tests
2026-01-20 10:41:09 +00:00
Peter Steinberger
47cf28f6b6
fix: prevent duplicate cron runs across hot reloads
2026-01-20 10:36:46 +00:00
Peter Steinberger
115b4379bf
fix: handle Slack Bolt import + gateway node ids ( #1208 ) (thanks @24601)
2026-01-20 10:33:40 +00:00
Basit Mustafa
a6db1edee3
test(slack): mock HTTPReceiver
2026-01-20 10:33:01 +00:00
Basit Mustafa
4ed1b7c7ed
fix(slack): resolve bolt constructors
2026-01-20 10:33:01 +00:00
Basit Mustafa
7ef7b94bc0
fix(slack): handle bolt import for CJS/ESM compatibility
2026-01-20 10:33:01 +00:00
Peter Steinberger
da7da30b22
style: format agent defaults import
2026-01-20 10:31:16 +00:00
Peter Steinberger
213d9b47b0
refactor: centralize agent concurrency defaults
2026-01-20 10:31:16 +00:00
Peter Steinberger
d88b239d3c
feat: add device token auth and devices cli
2026-01-20 10:30:53 +00:00
Peter Steinberger
1c02de1309
chore: raise default agent concurrency
2026-01-20 10:08:26 +00:00
Peter Steinberger
d3c2b83f88
fix: avoid context-window-too-small misclassification ( #1266 , thanks @humanwritten)
...
Co-authored-by: humanwritten <humanwritten@users.noreply.github.com >
2026-01-20 10:07:05 +00:00
humanwritten
93f80894a3
fix: prevent context-window-too-small error from being misclassified
...
The regex `/context window/i` was matching "Model context window too small"
and rewriting it to generic "Context overflow" message, hiding the actual
problem from users.
Add exclusion for "too small|minimum is" patterns so the original
informative error message passes through.
🤖 AI-assisted (Claude) - tested on local instance
Co-Authored-By: Claude <noreply@anthropic.com >
2026-01-20 10:07:05 +00:00
Peter Steinberger
c440cc2f84
fix: preserve gateway presence instanceId
2026-01-20 09:52:26 +00:00
ysqander
8ddedc3fc5
exec: prefer bash when fish is default shell
2026-01-20 17:42:02 +08:00
Peter Steinberger
2439c31844
chore: tune vitest parallelism
2026-01-20 09:40:10 +00:00
Peter Steinberger
292f21ae78
docs: add changelog entry for codex-cli dedupe
2026-01-20 09:38:56 +00:00
Peter Steinberger
9c2c4b1138
fix(auth): dedupe codex-cli profiles
...
Co-authored-by: Oliver Drobnik <oliver@cocoanetics.com >
2026-01-20 09:38:56 +00:00
George Pickett
e0e33e12d1
Docs: frame skills eval gap in testing
2026-01-20 09:37:59 +00:00
Peter Steinberger
eb5145c5d1
docs: mention tool_result_persist hook
2026-01-20 09:36:10 +00:00
Peter Steinberger
aedf4ce328
fix: treat OAuth refresh failures as auth errors ( #1261 ) (thanks @zknicker)
...
Co-authored-by: Zach Knickerbocker <zknicker@users.noreply.github.com >
2026-01-20 09:31:41 +00:00
Peter Steinberger
94af5a72fc
fix: prevent duplicate agent event emission
2026-01-20 09:25:20 +00:00
Peter Steinberger
9dbc1435a6
fix: enforce ws3 roles + node allowlist
2026-01-20 09:24:01 +00:00
Peter Steinberger
32a668e4d9
refactor: streamline TUI stream assembly updates
2026-01-20 08:57:42 +00:00
Peter Steinberger
c17c7b4e24
Merge pull request #1235 from dougvk/feat/tool-dispatch-skill-commands
...
Plugin API: tool-dispatched skill commands + tool_result_persist hook
2026-01-20 08:52:05 +00:00
Peter Steinberger
c5e732951b
fix: prefer bundled plugin schema
2026-01-20 08:47:56 +00:00
Peter Steinberger
069b50635b
fix: lazy-load pdf/image input deps
2026-01-20 08:47:56 +00:00
Peter Steinberger
074db1905a
fix: refactor TUI stream assembly ( #1202 , thanks @aaronveklabs)
...
Co-authored-by: Aaron <aaron@vektor-labs.com >
2026-01-20 08:36:54 +00:00
Aaron
9609a3af40
fix: check for error before early return in extractContentFromMessage
...
Addresses Codex review feedback - ensures error messages are surfaced
even when content is missing/undefined
2026-01-20 08:36:36 +00:00
Aaron
476087f879
fix(tui): buffer streaming messages by runId to prevent render ordering issues
...
Fixes #1172
- Add per-runId message buffering in ChatLog
- Separate thinking stream from content stream handling
- Ensure proper sequencing (thinking always before content)
- Model-agnostic: works with or without thinking tokens
2026-01-20 08:36:36 +00:00
Peter Steinberger
41b696fa83
chore: remove Peekaboo submodule
2026-01-20 08:31:06 +00:00
Peter Steinberger
a5adedea91
refactor: add aws-sdk auth mode and tighten provider auth
2026-01-20 08:28:40 +00:00
Peter Steinberger
9266e542ab
chore: remove peekaboo submodule references
2026-01-20 08:26:56 +00:00
Peter Steinberger
f06ad4502b
refactor: share responses input handling
2026-01-20 08:21:57 +00:00
Peter Steinberger
e26c647828
fix: defer pdf deps and profile flag detection
2026-01-20 08:20:07 +00:00
Bradley Priest
51f1f23235
ui(sessions): support editing session labels
...
Expose session "label" as an editable field in the Sessions view and persist changes via sessions.patch.
2026-01-20 21:07:41 +13:00
Bradley Priest
c9d02f0132
ui(chat): separate tool/thinking output and add toggle
...
- Render assistant reasoning as a distinct block (not merged into message text).\n- Detect tool-like messages reliably and style them separately.\n- Add a "🧠 " toggle to hide/show tool + thinking output, persisted in UI settings.
2026-01-20 21:07:29 +13:00
Peter Steinberger
bee72f1ae0
fix: guard systemd errors in doctor
2026-01-20 07:56:22 +00:00
Peter Steinberger
509bc81e28
Merge pull request #1288 from bradleypriest/pr/chat-session-url
...
ui(chat): persist session in URL and stabilize picker
2026-01-20 07:44:33 +00:00
Peter Steinberger
6d5195c890
refactor: normalize cli command hints
2026-01-20 07:43:00 +00:00
Peter Steinberger
11b9b6dba5
Merge pull request #1229 from RyanLisse/main
...
feat(gateway): add OpenResponses /v1/responses endpoint
2026-01-20 07:38:18 +00:00
Peter Steinberger
bbc67f3754
fix: expand /v1/responses inputs ( #1229 ) (thanks @RyanLisse)
2026-01-20 07:37:30 +00:00
Ryan Lisse
4f02c74dca
test(gateway): add OpenResponses parity E2E tests
...
- Add schema validation tests for input_image, input_file, client tools
- Add buildAgentPrompt tests for turn-based tool flow
2026-01-20 07:37:01 +00:00
Ryan Lisse
a5afe7bc2b
feat(gateway): implement OpenResponses /v1/responses endpoint phase 2
...
- Add input_image and input_file support with SSRF protection
- Add client-side tools (Hosted Tools) support
- Add turn-based tool flow with function_call_output handling
- Export buildAgentPrompt for testing
2026-01-20 07:37:01 +00:00
Ryan Lisse
f4b03599f0
feat(gateway): add OpenResponses /v1/responses endpoint
...
Add a new `/v1/responses` endpoint implementing the OpenResponses API
standard for agentic workflows. This provides:
- Item-based input (messages, function_call_output, reasoning)
- Semantic streaming events (response.created, response.output_text.delta,
response.completed, etc.)
- Full SSE event support with both event: and data: lines
- Configuration via gateway.http.endpoints.responses.enabled
The endpoint is disabled by default and can be enabled independently
from the existing Chat Completions endpoint.
Phase 1 implementation supports:
- String or ItemParam[] input
- system/developer/user/assistant message roles
- function_call_output items
- instructions parameter
- Agent routing via headers or model parameter
- Session key management
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-20 07:37:01 +00:00
Ryan Lisse
7f6e87e918
build: update bundle hash and register Peekaboo submodule
2026-01-20 07:37: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
44d55667de
docs: optimize PR review calls
2026-01-20 07:34:15 +00:00
Peter Steinberger
3e546e691d
fix: infer perplexity baseUrl from api key
2026-01-20 07:27:32 +00:00
Peter Steinberger
52e9450a79
docs: require git pull before review
2026-01-20 07:18:26 +00:00
Peter Steinberger
aa7c291ad6
Merge pull request #1289 from clawdbot/docs/bedrock-docs
...
docs: add Bedrock provider links
2026-01-20 07:14:37 +00:00
Peter Steinberger
3f44f4167b
fix: update Bedrock provider docs ( #1289 ) (thanks @steipete)
2026-01-20 07:14:03 +00:00
Peter Steinberger
90a6ec12cc
docs: update bedrock provider docs
2026-01-20 07:08:12 +00:00
Peter Steinberger
a91c653d8a
Merge pull request #1286 from alauppe/feat/bedrock-converse-stream-api
...
feat(models): Add AWS Bedrock Converse Stream API support
2026-01-20 07:03:27 +00:00
Peter Steinberger
7f6fcbf637
fix: stabilize update.run test
2026-01-20 06:56:10 +00:00
Peter Steinberger
5d7e38a786
fix: avoid duplicate doctor config output
2026-01-20 06:32:50 +00:00
Peter Steinberger
d5ffc672dd
fix: scope chat scroll lock to chat shell ( #1283 ) (thanks @bradleypriest)
2026-01-20 06:29:08 +00:00
Peter Steinberger
638fdad048
Merge pull request #1283 from bradleypriest/pr/chat-scroll
...
ui(chat): fix double-scroll in web UI
2026-01-20 06:28:28 +00:00
Andrew Lauppe
2dee177c9b
fix(models): attach provider to inline model definitions
...
When resolving models from custom provider configurations, ensure the
provider name is attached to each inline model entry. This fixes model
resolution for custom providers where the model definition exists in
the config but lacks an explicit provider field.
Without this fix, inline models from custom providers (like amazon-bedrock)
would fail to resolve because the provider context was lost during the
flatMap operation.
2026-01-20 01:28:13 -05:00
Andrew Lauppe
a793523b74
feat(models): add bedrock-converse-stream API type
...
Add AWS Bedrock Converse Stream API to the list of supported model APIs,
enabling custom provider configurations for Amazon Bedrock endpoints.
This allows users to configure Bedrock models in their clawdbot.json:
"models": {
"providers": {
"amazon-bedrock": {
"baseUrl": "https://bedrock-runtime.us-east-1.amazonaws.com ",
"api": "bedrock-converse-stream",
"models": [...]
}
}
}
The underlying adapter already exists; this change exposes it as a valid
configuration option.
2026-01-20 01:28:07 -05:00
Bradley Priest
5b0684ebcf
ui(chat): persist session in URL and stabilize picker
...
- Keep the selected chat session in ?session=... for deep links and reloads.\n- Only apply the query param on the Chat tab (avoid leaking it across navigation).\n- Render session <option> entries with stable keys to prevent label glitches.
2026-01-20 19:17:03 +13:00
Bradley Priest
ffe6d9ad54
ui(chat): fix double-scroll in web UI
...
Chat should scroll inside the thread, not the whole page.\n\n- Constrain the app shell to the viewport and disable outer scrolling.\n- Hide page-level scrolling for the chat tab so only .chat-thread scrolls.
2026-01-20 18:20:58 +13:00
Peter Steinberger
d4df747f9f
fix: harden doctor config cleanup
2026-01-20 01:43:59 +00:00
Peter Steinberger
8e33bd8610
fix: repair doctor config cleanup
2026-01-20 01:30:33 +00:00
Peter Steinberger
3036c38144
fix: clarify config invalid output
2026-01-20 00:47:33 +00:00
Peter Steinberger
d72fc1ce7f
fix: highlight invalid config error
2026-01-20 00:38:52 +00:00
Peter Steinberger
c6ef7ff921
fix: harden windows argv parsing
2026-01-19 23:41:06 +00:00
Peter Steinberger
44c61a77c5
fix: strip envelopes in chat history
2026-01-19 22:52:00 +00:00
Peter Steinberger
4bac76e66d
fix: improve memory status and batch fallback
2026-01-19 22:49:06 +00:00
George Zhang
0bd99717be
docs(bird): update skill for v0.5-0.8 features
...
- Add 18 missing commands (home, news, lists, engagement, etc.)
- Document pagination, media uploads, output options
- Add config file format and library usage
- Update posting advice (engagement actions now work)
- Add troubleshooting section
2026-01-20 03:49:40 +08:00
Shadow
39dfdccf6c
CLI: skip runner rebuilds when dist is fresh ( #1231 )
...
Co-authored-by: mukhtharcm <mukhtharcm@users.noreply.github.com >
2026-01-19 13:12:33 -06:00
Sebastian
154c49511c
Changelog: drop unrelated gateway fix
2026-01-19 13:19:09 -05:00
Sebastian
34462b3221
Config: allow Perplexity web_search provider
2026-01-19 13:03:59 -05:00
Peter Steinberger
754494d1a0
fix(android): align node protocol payloads
2026-01-19 16:53:31 +00:00
Peter Steinberger
37af1d6946
test: harden gateway sigterm argv
2026-01-19 16:35:45 +00:00
Peter Steinberger
90ea21536b
style: format gateway sigterm test
2026-01-19 16:17:47 +00:00
Peter Steinberger
3690be9419
test: stabilize gateway windows sigterm
2026-01-19 16:16:13 +00:00
Peter Steinberger
079c29ceb8
refactor(android): drop legacy bridge transport
2026-01-19 15:45:50 +00:00
Peter Steinberger
c7808a543d
test: stabilize windows gateway sigterm
2026-01-19 15:17:44 +00:00
Peter Steinberger
1aed588743
fix: sanitize windows argv control chars
2026-01-19 15:06:57 +00:00
Peter Steinberger
0af4eda8c5
fix: strip noisy windows argv entries
2026-01-19 15:04:26 +00:00
Peter Steinberger
cf2fe4b4c5
test: simplify sandbox path guard test
2026-01-19 14:46:07 +00:00
Peter Steinberger
5df58e404f
fix: stabilize windows cli tests
2026-01-19 14:44:17 +00:00
Peter Steinberger
ef352d4dc6
style: format windows argv helpers
2026-01-19 14:19:26 +00:00
Peter Steinberger
cb2add8459
fix: sanitize windows node argv
2026-01-19 14:16:45 +00:00
Peter Steinberger
d9c20f6fa5
fix: normalize windows argv in cli
2026-01-19 13:55:34 +00:00
Peter Steinberger
79c93b2cf8
style: resolve swift lint warnings
2026-01-19 13:37:28 +00:00
Peter Steinberger
48bfaa2371
fix: normalize quoted windows argv
2026-01-19 13:30:34 +00:00
tsu
0372bdf6fe
fix: add enabled property to groupConfigSchema for improved configuration
2026-01-19 20:25:17 +07:00
Peter Steinberger
56316ad932
fix: strip windows node exec from argv
2026-01-19 13:08:21 +00:00
Peter Steinberger
ba2514fc4c
fix: stabilize windows test timeouts
2026-01-19 12:35:58 +00:00
tsu
cd8309cc31
chore: simplify user parsing logic in probeZalouser function
2026-01-19 19:18:04 +07:00
Peter Steinberger
9e06d945a2
fix: stabilize gateway tests on windows
2026-01-19 12:12:51 +00:00
Doug von Kohorn
c3a34408f3
feat: add tool_result_persist hook
2026-01-19 13:11:31 +01:00
Doug von Kohorn
9f280454ba
feat: tool-dispatch skill commands
2026-01-19 13:11:25 +01:00
Peter Steinberger
588dc43787
fix: resolve format/build failures
2026-01-19 11:32:15 +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
fcea6303ed
fix: add agents identity helper
2026-01-19 10:44:18 +00:00
Peter Steinberger
9292ec9880
chore: clean artifacts and fix device roles
2026-01-19 10:09:35 +00:00
Peter Steinberger
35e7c62e78
docs: unify ws protocol + platform guides
2026-01-19 10:09:28 +00:00
Peter Steinberger
66193dab92
fix: wire gateway tls fingerprint for wss
2026-01-19 10:09:22 +00:00
Peter Steinberger
4609ed70c1
fix: align exec approval gateway timeout
2026-01-19 10:09:17 +00:00
Peter Steinberger
428241d941
fix: treat exec approval timeouts as no-decision
2026-01-19 10:09:14 +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
73afbc9193
chore: ignore local build artifacts
2026-01-19 10:08:38 +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
47d1f23d55
fix(daemon): include HOME in service env ( #1214 )
...
Thanks @ameno-.
Co-authored-by: Ameno Osman <ameno.osman13@gmail.com >
2026-01-19 08:39:12 +00:00
tsu
5d9a5b7958
feat: implement zalouser channel plugin with configuration and status monitoring
2026-01-19 14:26:16 +07:00
Peter Steinberger
c21469b282
docs: add showcase video
2026-01-19 07:01:44 +00:00
Peter Steinberger
10a0c96ee6
fix: drop reasoning-only openai-responses history
2026-01-19 06:22:46 +00:00
Peter Steinberger
e071493bb3
Merge pull request #1213 from andrew-kurin/fix/voicecall-tailscale-path
...
Voice-call: fix tailscale tunnel, Twilio signatures, and callbacks
2026-01-19 06:00:33 +00:00
Peter Steinberger
2dc9c95530
style: oxfmt core files
2026-01-19 05:59:29 +00:00
Peter Steinberger
d126e7f610
fix: resolve cli-highlight types and runtime info
2026-01-19 05:57:29 +00:00
Peter Steinberger
5ee03c82b4
Merge pull request #1212 from longmaba/fix/ui-build-windows-spawn
...
fix(ui): enable shell mode for spawn on Windows
2026-01-19 05:43:15 +00:00
Peter Steinberger
111aeb2c4f
fix: cover sync ui spawn on Windows ( #1212 ) (thanks @longmaba)
2026-01-19 05:42:42 +00:00
Long
23c2c638b7
fix(ui): enable shell mode for spawn on Windows
2026-01-19 05:41:38 +00:00
Peter Steinberger
6b8299eb33
chore: update package resolutions
2026-01-19 05:40:04 +00:00
Peter Steinberger
9822a53649
fix: centralize cli command registry
...
Co-authored-by: gumadeiras <gumadeiras@users.noreply.github.com >
2026-01-19 05:36:09 +00:00
Peter Steinberger
81d392a2d7
refactor: extract TUI syntax theme and fix changelog
2026-01-19 05:32:53 +00:00
Peter Steinberger
dbcec3ffaf
docs: clarify session log agent id
2026-01-19 05:27:52 +00:00
Peter Steinberger
50c5231486
refactor: reuse prompt params in context report
2026-01-19 05:27:52 +00:00
Peter Steinberger
55d034358d
refactor: unify system prompt runtime params
2026-01-19 05:27:52 +00:00
Peter Steinberger
374da34936
fix: canonicalize legacy session keys
2026-01-19 05:17:31 +00:00
Peter Steinberger
c578fca687
fix(tui): generic empty-state for searchable pickers (PR #1201 , thanks @vignesh07)
...
Co-authored-by: Vignesh Natarajan <vigneshnatarajan92@gmail.com >
2026-01-19 05:16:06 +00:00
Vignesh Natarajan
dd18765b50
feat(tui): add fuzzy search to session and agent pickers
...
Use SearchableSelectList for /sessions and /agents pickers,
matching the /models picker behavior.
- Session picker: search by session key, display name, or date
- Agent picker: search by agent ID or name
🤖 AI-assisted (Claude)
2026-01-19 05:16:06 +00:00
Peter Steinberger
3e06fe84dc
feat: add TUI code block syntax highlighting ( #1200 ) (thanks @vignesh07)
2026-01-19 05:07:23 +00:00
Peter Steinberger
640e19988f
Merge pull request #1200 from vignesh07/feat/tui-syntax-highlighting
...
feat(tui): add syntax highlighting for code blocks
2026-01-19 05:05:51 +00:00
Ghost
80dae2e5e8
Voice-call: avoid streaming on notify callbacks
2026-01-18 20:27:23 -08:00
Ghost
60b87826bb
Voice-call: fix Twilio status callbacks
2026-01-18 20:20:53 -08:00
Ghost
b04b51d2c4
Voice-call: fix Twilio signature ordering
2026-01-18 20:03:13 -08:00
Peter Steinberger
de33bc70e7
docs: clarify node_modules guidance
2026-01-19 04:01:36 +00:00
Peter Steinberger
0c8ba6599b
fix: add plugin config schema helper
2026-01-19 03:39:36 +00:00
Peter Steinberger
d1e9490f95
fix: enforce strict config validation
2026-01-19 03:39:25 +00:00
Ghost
cb7edb669f
Voice-call: fix tailscale tunnel path
2026-01-18 18:59:58 -08:00
Peter Steinberger
a9fc2ca0ef
fix: add git hook setup and stable config hash sorting
2026-01-19 02:02:17 +00:00
Peter Steinberger
dd1b08b3e8
fix: add safeguard compaction tool summaries
2026-01-19 01:44:17 +00:00
cpojer
af1004ebbd
Make tool calls use human language by default.
2026-01-19 01:42:23 +00:00
cpojer
ed909d6013
Improve cron reminder tool description.
2026-01-19 10:42:21 +09:00
Peter Steinberger
f3516fb316
fix: skip respawn in gateway sigterm test
2026-01-19 01:37:10 +00:00
Peter Steinberger
79d8267413
feat: auto-recreate sandbox containers on config change
2026-01-19 01:35:27 +00:00
Peter Steinberger
99bf65c539
style: apply oxfmt
2026-01-19 01:11:42 +00:00
Peter Steinberger
6a4b5fa4b5
fix: harden windows cli launch
2026-01-19 01:11:39 +00:00
Peter Steinberger
83511c0c09
refactor: consolidate nodes cli error handling
2026-01-19 00:52:31 +00:00
Peter Steinberger
1fec41b3df
refactor: share cli runtime error handling
2026-01-19 00:52:31 +00:00
Peter Steinberger
c532d161c4
refactor: streamline routed cli setup
2026-01-19 00:52:31 +00:00
Peter Steinberger
989543c9c3
fix: propagate agent run context for subagent announce
2026-01-19 00:45:30 +00:00
Vignesh Natarajan
145adf540f
fix: make syntax highlighting tests environment-agnostic
...
Tests now verify structure and content preservation rather than
checking for specific ANSI escape codes, which may not be present
in CI environments without TTY/color support.
2026-01-18 16:40:06 -08:00
Peter Steinberger
953472bf25
feat: add exec pathPrepend config
2026-01-19 00:35:43 +00:00
Peter Steinberger
d9384785a3
fix: stabilize ci checks
2026-01-19 00:34:26 +00:00
Seb Slight
2f6b5ffdfe
Web: trim HTML error bodies in web_fetch ( #1193 )
...
* Web: trim HTML error bodies in web_fetch
* fix: trim web_fetch HTML error bodies (#1193 ) (thanks @sebslight)
---------
Co-authored-by: Sebastian Slight <sbarrios93@gmail.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-01-19 00:24:16 +00:00
Vignesh Natarajan
0e3c9e4a0e
feat(tui): add syntax highlighting for code blocks
...
Add syntax highlighting to markdown code blocks in the TUI using
cli-highlight with a VS Code Dark-inspired color theme.
Features:
- 191 languages supported via highlight.js
- Auto-detection fallback for unknown languages
- Graceful fallback to plain styling on errors
- VS Code Dark-inspired color palette
Colors:
- Purple: keywords (const, function, if, etc.)
- Teal: built-ins (console, Math, print, etc.)
- Orange: strings
- Green: numbers, comments
- Yellow: function names
- Blue: literals (true, false, null)
- Red: diff deletions
- Light blue: variables, parameters
🤖 AI-assisted (Claude) - fully tested locally
2026-01-18 16:24:14 -08:00
Peter Steinberger
15311c138a
macOS: fix onboarding test helper call
2026-01-19 00:19:44 +00:00
Peter Steinberger
dec71dbcf1
docs: update README channels + deepwiki badge
2026-01-19 00:17:42 +00:00
Peter Steinberger
5a4482412d
fix(plugins): prefer dist plugin-sdk in tests
2026-01-19 00:15:45 +00:00
Peter Steinberger
4cf829608c
chore: remove unused program context imports
2026-01-19 00:15:45 +00:00
Peter Steinberger
8de02e6074
test: stabilize sessions_send waits
2026-01-19 00:15:45 +00:00
Peter Steinberger
d802844bd6
fix: gate gateway restarts and discord abort reconnects
2026-01-19 00:15:45 +00:00
Peter Steinberger
e97bcf4dae
refactor(plugins): improve loader resolution
2026-01-19 00:15:44 +00:00
Peter Steinberger
dad8e11f1e
test: harden gateway mocks and env isolation
2026-01-19 00:15:44 +00:00
Peter Steinberger
50fdd514ae
refactor(logging): split config + subsystem imports
2026-01-19 00:15:44 +00:00
Peter Steinberger
ee36e12f81
fix: log plugin load errors in gateway
2026-01-19 00:15:24 +00:00
Peter Steinberger
1e5569d56a
fix: refine TUI model search rendering
2026-01-19 00:15:16 +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
66b6c9e0e5
chore: document slack bolt import interop
2026-01-18 23:55:36 +00:00
Peter Steinberger
b5e99dad1f
fix(slack): handle bolt CJS interop ( #1191 ) — thanks @CoreyH
...
Co-authored-by: Corey Henderson <corey@example.com >
2026-01-18 23:54:50 +00:00
Peter Steinberger
6f5205d826
docs: elevate security audit callout
2026-01-18 23:37:14 +00:00
Peter Steinberger
5f975a4eff
Merge pull request #1195 from gumadeiras/main
...
enhancement: 3x faster CLI invocation, unify boolean/env parsing, streamline CLI startup paths
2026-01-18 23:28:36 +00:00
Peter Steinberger
aadfdbc59f
chore: update pnpm lockfile
2026-01-18 23:28:21 +00:00
Peter Steinberger
d5c8172197
fix: optimize routed CLI path ( #1195 ) (thanks @gumadeiras)
2026-01-18 23:28:09 +00:00
Peter Steinberger
9e804f6f40
Merge pull request #1185 from KrauseFx/improve-anthropic-token-hints
...
chore(auth): Improve Anthropic token option hints in onboarding wizard
2026-01-18 23:27:58 +00:00
Peter Steinberger
bedfc3642d
Merge pull request #1198 from vignesh07/feat/tui-model-picker-search
...
feat(tui): add fuzzy search to model picker 🔍
2026-01-18 23:27:02 +00:00
Peter Steinberger
46dcda1d0c
fix: preserve fuzzy ranking in model picker ( #1198 ) (thanks @vignesh07)
2026-01-18 23:26:42 +00:00
Vignesh Natarajan
950f8a04ea
fix: prioritize exact substring matches over fuzzy in model search
...
- Exact substring in label (earliest position wins)
- Word-boundary prefix matches
- Description substring matches
- Fuzzy matching as fallback
This ensures 'opus' shows claude-3-opus before openrouter models.
2026-01-18 23:18:28 +00:00
Vignesh Natarajan
de44e0ad33
feat(tui): add fuzzy search to model picker
...
- Add SearchableSelectList component with fuzzy filtering
- Integrate with /models command for quick model search
- Support up/down navigation while typing
- Uses pi-tui's fuzzyFilter for intelligent matching
2026-01-18 23:18:28 +00:00
Peter Steinberger
c639b386da
fix: hide menubar usage errors
2026-01-18 23:18:10 +00:00
Gustavo Madeira Santana
fac0110e49
removing aux funcs for benchmarking
...
Leftover functions I was using the benchmark and time CLI calls
2026-01-18 23:10:39 +00:00
Gustavo Madeira Santana
97971f3aef
Remove unused import from run-main.ts
...
Deleted the unused import of hasHelpOrVersion from argv.js to clean up the code.
2026-01-18 23:10:39 +00:00
Gustavo Madeira Santana
acb523de86
CLI: streamline startup paths and env parsing
...
Add shared parseBooleanValue()/isTruthyEnvValue() and apply across CLI, gateway, memory, and live-test flags for consistent env handling.
Introduce route-first fast paths, lazy subcommand registration, and deferred plugin loading to reduce CLI startup overhead.
Centralize config validation via ensureConfigReady() and add config caching/deferred shell env fallback for fewer IO passes.
Harden logger initialization/imports and add focused tests for argv, boolean parsing, frontmatter, and CLI subcommands.
2026-01-18 23:10:39 +00:00
Peter Steinberger
97531f174f
fix: import wizard prompter in onboarding adapters
2026-01-18 23:05:05 +00:00
Peter Steinberger
ef125d5ba7
docs: update changelog for docs:list guard
2026-01-18 22:53:59 +00:00
Peter Steinberger
86950d3474
fix: guard docs:list when docs dir missing
2026-01-18 22:53:39 +00:00
Peter Steinberger
3a9582bc41
docs: update channel allowlist guidance
2026-01-18 22:52:00 +00:00
Peter Steinberger
d198474415
feat: resolve allowlists in channel plugins
2026-01-18 22:52:00 +00:00
Peter Steinberger
ace8a1b44e
feat: expand dm allowlist onboarding
2026-01-18 22:52:00 +00:00
Peter Steinberger
a7be3a9649
fix: honor telegram pairing allowlists for native commands
2026-01-18 22:52:00 +00:00
Peter Steinberger
0d543dd1ff
test: update expectations for session reset behavior
2026-01-18 22:51:37 +00:00
Peter Steinberger
404c373153
feat: add agent targeting + reply overrides
2026-01-18 22:50:51 +00:00
Peter Steinberger
024691e4e7
feat(mac): manage node service in remote mode
2026-01-18 22:50:02 +00:00
Peter Steinberger
a86d7a2f35
Merge pull request #1196 from vignesh07/feat/tui-waiting-shimmer-clean
...
feat(tui): animated waiting status with shimmer effect ✨
2026-01-18 22:38:08 +00:00
Peter Steinberger
e7e34c442e
fix: smooth TUI waiting shimmer ( #1196 ) (thanks @vignesh07)
2026-01-18 22:37:36 +00:00
Peter Steinberger
9b9e8d4ae8
chore: block node_modules commits
2026-01-18 22:28:59 +00:00
Peter Steinberger
bf925e5758
chore: rename memory-lancedb extension folder
2026-01-18 22:27:22 +00:00
Peter Steinberger
c0c9df4ab7
build: update A2UI bundle hash
2026-01-18 22:26:12 +00:00
Peter Steinberger
6aa90f8b18
build: refresh A2UI bundle
2026-01-18 22:26:12 +00:00
Peter Steinberger
9af1c8a886
fix: patch session store updates
2026-01-18 22:26:12 +00:00
Peter Steinberger
ed5ece4120
fix: remove unreachable approval fallback
2026-01-18 22:26:12 +00:00
Peter Steinberger
85d1835476
feat: add live memory index progress
2026-01-18 22:25:08 +00:00
Vignesh Natarajan
e85d2dff97
TUI: pick waiting phrase once per waiting session
2026-01-18 22:19:47 +00:00
Vignesh Natarajan
fac66d4dda
TUI: waiting shimmer helper + tests
2026-01-18 22:19:47 +00:00
Vignesh Natarajan
2e99369113
TUI: add animated waiting status with shimmer
2026-01-18 22:19:47 +00:00
Peter Steinberger
835f9ee575
docs: clarify envelope time work
2026-01-18 22:17:24 +00:00
Peter Steinberger
a136c6aa89
Merge pull request #1187 from fayrose/fix/compaction-failure-silent-reset
...
fix: return user-facing error when session reset after compaction failure
2026-01-18 22:02:36 +00:00
Chris Eidhof
af96bac2dd
The link should be skills
2026-01-18 22:44:41 +01:00
Peter Steinberger
b621d4550b
chore: tighten skills prompt rules
2026-01-18 21:30:27 +00:00
Vignesh Natarajan
9497ffcc50
Add SKILL.md to teach Clawdbot when/how to use Lobster
2026-01-18 12:11:25 -08:00
Lauren Rosenberg
c290217305
fix: add reserveTokensFloor suggestion to compaction error messages
...
When context limit is exceeded, the error message now suggests
setting agents.defaults.compaction.reserveTokensFloor to 4000
or higher to prevent future occurrences.
2026-01-18 19:37:15 +00:00
Peter Steinberger
769b286cf2
fix: make docs list node-safe
2026-01-18 19:37:13 +00:00
Peter Steinberger
690bb192e6
style: format code
2026-01-18 19:36:46 +00:00
Peter Steinberger
601a052216
fix: unblock bundled plugin load
2026-01-18 19:34:21 +00:00
Peter Steinberger
bf3021d266
fix: stabilize logging imports and tests
2026-01-18 19:34:08 +00:00
Vignesh Natarajan
032c780a79
Add lobster.md documentation
2026-01-18 11:07:47 -08:00
Peter Steinberger
145b2e5f52
fix: menu preview label colors
2026-01-18 19:04:01 +00:00
Peter Steinberger
4b73dc95c4
fix: normalize envelope options
2026-01-18 18:59:34 +00:00
Peter Steinberger
e17cb408a5
fix(cli): load pairing channels after plugins
2026-01-18 18:56:40 +00:00
Peter Steinberger
3cf92152c3
fix: appease tsc in test helpers
2026-01-18 18:54:59 +00:00
Peter Steinberger
c50cde2170
fix: clean up lint in gateway tests
2026-01-18 18:51:43 +00:00
Peter Steinberger
7e0bebd669
docs: update clawtributors
2026-01-18 18:51:08 +00:00
Peter Steinberger
7c49326191
fix: satisfy oxlint spread rule
2026-01-18 18:50:52 +00:00
Peter Steinberger
744d1329cb
feat: make inbound envelopes configurable
...
Co-authored-by: Shiva Prasad <shiv19@users.noreply.github.com >
2026-01-18 18:50:37 +00:00
Peter Steinberger
42e6ff4611
feat(cli): show Telegram bot username in status
2026-01-18 18:48:25 +00:00
Peter Steinberger
5f21bf735a
chore: switch repo scripts to node
2026-01-18 18:46:18 +00:00
Peter Steinberger
ee380e9ab9
fix: run cli scripts via node build runner
2026-01-18 18:43:39 +00:00
Peter Steinberger
ab340c82fb
fix: stabilize tests and logging
2026-01-18 18:43:31 +00:00
Peter Steinberger
57dd0505a3
Merge pull request #1181 from sebslight/plugins/exclusive-slots
...
Plugins: auto-select exclusive slots
2026-01-18 18:40:38 +00:00
Peter Steinberger
d6f9f1c79a
Merge pull request #1182 from zerone0x/fix/issue-1115-filter-openrouter-auto
...
fix(configure): filter openrouter/auto from model selection list
2026-01-18 18:32:47 +00:00
Peter Steinberger
a08a772ffc
fix: add model picker regression for openrouter auto ( #1182 ) (thanks @zerone0x)
2026-01-18 18:32:25 +00:00
zerone0x
2622b1936b
fix(configure): filter openrouter/auto from model selection list
...
The openrouter/auto model is OpenRouter's internal routing feature,
not a callable model. While it's valid as a default (set automatically
during OpenRouter auth flow), showing it in the configure wizard's
model selection causes "Unknown model: openrouter/auto" errors when
users select it manually.
Add a HIDDEN_ROUTER_MODELS set to filter out such internal models
from the selection list while preserving existing functionality.
Fixes #1115
Co-Authored-By: Claude <noreply@anthropic.com >
2026-01-18 18:31:55 +00:00
Peter Steinberger
c0457e0cc4
fix(mac): load menu session previews
2026-01-18 18:28:48 +00:00
Peter Steinberger
ee2f0a175a
docs: add Windows installer git mode
2026-01-18 18:26:20 +00:00
Lauren Rosenberg
0e94f0c018
style: apply prettier formatting
2026-01-18 18:21:11 +00:00
Lauren Rosenberg
576485b0c9
fix: return user-facing error when session reset after compaction failure
...
Previously, when auto-compaction failed due to context overflow, the system
would reset the session and silently continue the execution loop without
sending any response to the user. This made it appear as if messages were
being ignored.
This change ensures users receive a clear error message explaining that
the context limit was exceeded and the conversation has been reset,
consistent with how role ordering conflicts are already handled.
Fixes the silent failure case where message + compaction exceeds context limits.
2026-01-18 18:16:20 +00:00
Peter Steinberger
60efe8ed7b
fix: restore bun runners for dev scripts
2026-01-18 18:00:48 +00:00
Peter Steinberger
332a20d9cc
fix: update gateway watch runner
2026-01-18 17:55:50 +00:00
Felix Krause
57bf6d5eaf
Improve Anthropic token option hints in onboarding wizard
2026-01-18 18:39:14 +01: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
5fe3c36471
fix(build): resolve ts2367 comparisons
2026-01-18 16:35:52 +00:00
Peter Steinberger
e06158c645
docs: update changelog
2026-01-18 16:35:52 +00:00
Peter Steinberger
19a8547ecd
feat(onboarding): wire plugin-backed auth choices
2026-01-18 16:35:52 +00:00
Peter Steinberger
32ae4566c6
feat(config): auto-enable configured plugins
2026-01-18 16:35:52 +00:00
Peter Steinberger
be6a3d4caf
fix: unblock build and slack monitor
2026-01-18 16:35:18 +00:00
Peter Steinberger
1db0384090
feat(doctor): repair launch agent bootstrap
...
Co-authored-by: Dr Alexander Mikhalev <alex@metacortex.engineer >
2026-01-18 16:35:18 +00:00
Peter Steinberger
d024dceef7
Merge pull request #1180 from andrew-kurin/fix/voice-call-statuscallback
...
fix(voice-call): resolve StatusCallback with inline TwiML (#864 )
2026-01-18 16:34:58 +00:00
Peter Steinberger
5ec499e14c
docs: clarify mac gateway launch behavior
2026-01-18 16:29:38 +00:00
Peter Steinberger
0b350d78d5
fix: harden macOS signing flow
2026-01-18 16:28:39 +00:00
Peter Steinberger
96ee027371
feat: list eligible hooks in onboarding
2026-01-18 16:28:39 +00:00
Peter Steinberger
ffcf3263c1
fix: exec approvals parsing + boot-md changelog
2026-01-18 16:28:39 +00:00
Sebastian Slight
cef6b16d14
Plugins: auto-select exclusive slots
2026-01-18 11:26:50 -05:00
Peter Steinberger
d06d440086
docs: clarify macOS node service IPC plan
2026-01-18 16:24:43 +00:00
Peter Steinberger
415fc9092e
test(cli): align memory CLI tests
2026-01-18 16:12:10 +00:00
Peter Steinberger
0be9d773cb
fix(memory): preserve fallback source id
2026-01-18 16:12:10 +00:00
Peter Steinberger
ecb45660e9
fix(cli): avoid empty spreads in approvals CLI
2026-01-18 16:12:10 +00:00
Peter Steinberger
f6fefd7f5f
fix(exec-approvals): fix command token parsing
2026-01-18 16:12:10 +00:00
Peter Steinberger
4206b9684b
docs(faq): refresh nodes, sessions, memory defaults
...
Co-authored-by: Gustavo Madeira Santana <gumadeiras@gmail.com >
2026-01-18 16:12:10 +00:00
Peter Steinberger
a4aad1c76a
feat(cli): expand memory status across agents
...
Co-authored-by: Gustavo Madeira Santana <gumadeiras@gmail.com >
2026-01-18 16:12:10 +00:00
Peter Steinberger
9464774133
feat(memory): add gemini batches + safe reindex
...
Co-authored-by: Gustavo Madeira Santana <gumadeiras@gmail.com >
2026-01-18 16:12:10 +00:00
Peter Steinberger
be7191879a
feat(memory): add gemini embeddings + auto select providers
...
Co-authored-by: Gustavo Madeira Santana <gumadeiras@gmail.com >
2026-01-18 16:12:10 +00:00
Gustavo Madeira Santana
7252938339
fix(utils): share clamp helpers
...
Co-authored-by: Gustavo Madeira Santana <gumadeiras@gmail.com >
2026-01-18 16:11:43 +00:00
Peter Steinberger
810394f43b
fix: improve remote bin probe logging
2026-01-18 16:09:48 +00:00
Peter Steinberger
835162fb62
fix: retry openai batch indexing
2026-01-18 16:08:22 +00:00
Peter Steinberger
82883095fe
docs: explain Copilot provider options
2026-01-18 16:06:48 +00:00
Peter Steinberger
49d8ad3049
feat: surface node core/ui versions in macOS
2026-01-18 16:00:36 +00:00
Peter Steinberger
1721d04405
feat: add node core/ui versions in bridge
2026-01-18 15:59:54 +00:00
Peter Steinberger
633e0d9382
Merge pull request #1164 from ngutman/feat/boot-md
...
feat(hooks): run BOOT.md on gateway startup
2026-01-18 15:59:53 +00:00
Ghost
e156320c51
fix(voice-call): resolve StatusCallback with inline TwiML
...
- Switch from inline to URL-based TwiML for outbound calls
- Store TwiML content temporarily and serve on webhook request
- Add twimlStorage map and cleanup helper methods
- Fix TwiML serving to handle CallStatus='in-progress' on initial request
Closes #864
2026-01-18 07:51:59 -08:00
Peter Steinberger
f06ce98312
refactor: rename lancedb memory plugin
2026-01-18 15:48:05 +00:00
Peter Steinberger
b546b2a48d
fix: stabilize slack http receiver import
2026-01-18 15:44:17 +00:00
Peter Steinberger
c11b016d22
fix: prefer node service naming
2026-01-18 15:33:22 +00:00
Peter Steinberger
3686bde783
feat: add exec approvals tooling and service status
2026-01-18 15:23:41 +00:00
Peter Steinberger
9c06689569
fix: sanitize oversized image payloads
2026-01-18 15:21:38 +00:00
Peter Steinberger
891a2cc64a
docs: tighten GitHub newline guidance
2026-01-18 15:20:09 +00:00
Peter Steinberger
01211937fc
fix: link bash disabled docs
2026-01-18 15:17:09 +00:00
Peter Steinberger
4726580c7e
feat(slack): add HTTP receiver webhook mode ( #1143 ) - thanks @jdrhyne
...
Co-authored-by: Jonathan Rhyne <jdrhyne@users.noreply.github.com >
2026-01-18 15:04:07 +00:00
Peter Steinberger
e9a08dc507
feat: enrich system prompt docs guidance
2026-01-18 15:00:36 +00:00
Peter Steinberger
f3698e360b
docs: add api usage and costs overview
2026-01-18 14:55:09 +00:00
Peter Steinberger
c69947dff8
feat: auto-enable audio understanding when keys exist
2026-01-18 14:55:09 +00:00
Peter Steinberger
173bce34b0
docs: add dep patch approval rule
2026-01-18 14:46:03 +00:00
Peter Steinberger
6a27e385b1
docs: map agent loop hook points
2026-01-18 14:43:35 +00:00
Peter Steinberger
5f0d9c3eb9
docs: expand agent loop overview
2026-01-18 14:30:12 +00:00
Peter Steinberger
0e31c8153c
fix: bump Peekaboo revision
2026-01-18 14:26:19 +00:00
Peter Steinberger
9c0773c469
chore: update dependencies
2026-01-18 14:16:04 +00:00
Peter Steinberger
f5533baf61
test: add vector dedupe regression coverage
2026-01-18 14:08:06 +00:00
Peter Steinberger
60bc436e99
Merge pull request #1175 from vrknetha/fix/tool-error-fallback
...
Agents: surface tool failures without assistant output
2026-01-18 14:08:02 +00:00
Peter Steinberger
741b984a68
docs: fix #1151 changelog attribution
2026-01-18 14:04:38 +00:00
Peter Steinberger
858a5f48d8
Merge pull request #1176 from sibbl/fix-matrix-allowfrom
...
Matrix: fix redundant allowFrom assignment in monitorMatrixProvider
2026-01-18 13:57:00 +00:00
Peter Steinberger
20c26eb303
fix: prevent sqlite-vec duplicate id failures
2026-01-18 13:55:56 +00:00
Peter Steinberger
f3ef609839
fix: show exec approval alerts for local mac node
2026-01-18 13:42:23 +00:00
Sebastian Schubotz
234fe5b5cd
fix(matrix): remove redundant allowFrom assignment in monitorMatrixProvider
2026-01-18 14:05:08 +01:00
vrknetha
65710932ff
Agents: surface tool failures without assistant output
2026-01-18 18:35:03 +05:30
Peter Steinberger
e944f21ec0
test: drop core runtime import in matrix directory
2026-01-18 11:03:27 +00:00
Peter Steinberger
ee6e534ccb
refactor: route channel runtime via plugin api
2026-01-18 11:01:16 +00:00
Nimrod Gutman
11b07f4a29
feat(hooks): run boot.md on gateway startup
2026-01-18 11:50:25 +02:00
Peter Steinberger
676d41d415
fix: seed embedding cache for atomic reindex
2026-01-18 09:28:42 +00:00
Peter Steinberger
a3a4996adb
feat: add gemini memory embeddings
2026-01-18 09:09:45 +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
b739a3897f
fix: stabilize acp streams and tests
2026-01-18 08:54:00 +00:00
Peter Steinberger
c5e19f5c67
refactor: migrate messaging plugins to sdk
2026-01-18 08:54:00 +00:00
Peter Steinberger
9241e21114
fix: address acp client typing
2026-01-18 08:51:57 +00:00
Peter Steinberger
65bed815a8
fix: resolve ci failures
2026-01-18 08:45:29 +00:00
Peter Steinberger
d776cfb4e1
fix: skip launchd for remote mode
2026-01-18 08:35:14 +00:00
Peter Steinberger
c6e7e1821b
test: tolerate tool summary payloads in install e2e
2026-01-18 08:33:45 +00:00
Peter Steinberger
f76ab69612
feat: add memory indexing progress options
2026-01-18 08:30:04 +00:00
Peter Steinberger
889db137b8
test: add beta tag install option for docker installer
2026-01-18 08:30:00 +00:00
Peter Steinberger
9db682750d
chore: point Peekaboo to main
2026-01-18 08:29:00 +00:00
Peter Steinberger
9809b47d45
feat(acp): add interactive client harness
2026-01-18 08:27:37 +00:00
Peter Steinberger
68d79e56c2
feat: add node binding controls in control ui
2026-01-18 08:26:32 +00:00
Peter Steinberger
d3862ae30a
fix(auth): preserve auto-pin preference
...
Co-authored-by: Mykyta Bozhenko <21245729+cheeeee@users.noreply.github.com >
2026-01-18 08:22:55 +00:00
Peter Steinberger
e49a2952d9
fix: clean up duplicate import ( #1098 )
...
Follow-up after rebase.
2026-01-18 08:15:21 +00:00
Peter Steinberger
8b57f519c3
fix: tighten native image injection ( #1098 )
...
Thanks @tyler6204.
Co-authored-by: Tyler Yust <tyler6204@users.noreply.github.com >
2026-01-18 08:15:21 +00:00
Tyler Yust
ddcc05f5f4
fix: improve error handling for file URL processing
...
- Enhanced error handling in image reference detection to skip malformed file URLs without crashing.
- Updated media loading logic to throw an error for invalid file URLs, ensuring better feedback for users.
2026-01-18 08:15:21 +00:00
Tyler Yust
8c0e290db1
fix: enhance image reference detection and optimize image processing
...
- Added support for detecting file URLs in prompts using fileURLToPath for accurate path resolution.
- Updated image loading logic to default to JPEG format for optimized image processing.
- Improved error handling in image optimization to continue processing on failures.
2026-01-18 08:15:21 +00:00
Tyler Yust
7bfc77db25
fix: improve file URL handling and enhance image loading logic
...
- Added handling for file URLs using fileURLToPath for proper resolution.
- Updated logic to skip relative path resolution if ref.resolved is already absolute.
- Enhanced cap calculation for image loading to handle undefined maxBytes more gracefully.
2026-01-18 08:15:21 +00:00
Tyler Yust
8d74578ceb
feat: native image injection for vision-capable models
...
- Auto-detect and load images referenced in user prompts
- Inject history images at their original message positions
- Fix EXIF orientation - rotate before resizing in resizeToJpeg
- Sandbox security: validate paths, block remote URLs when sandbox enabled
- Prevent duplicate history image injection across turns
- Handle string-based user message content (convert to array)
- Add bounds check for message index in history processing
- Fix regex to properly match relative paths (./ ../)
- Add multi-image support for iMessage attachments
- Pass MAX_IMAGE_BYTES limit to image loading
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-18 08:15:21 +00:00
Peter Steinberger
f7123ec30a
fix: repair context report and tool config
2026-01-18 08:15:21 +00:00
Peter Steinberger
ad4f4388f4
docs: explain per-agent exec node binding
2026-01-18 08:15:15 +00:00
Peter Steinberger
2a86504723
perf: lazy-load memory manager
2026-01-18 08:05:36 +00:00
Peter Steinberger
de3b68740a
feat(acp): add experimental ACP support
...
Co-authored-by: Jonathan Taylor <visionik@pobox.com >
2026-01-18 08:03:36 +00:00
Peter Steinberger
efaa73f543
docs: align exec event text
2026-01-18 08:01:25 +00:00
Peter Steinberger
1589c73697
test: cover bridge exec events
2026-01-18 08:01:25 +00:00
Peter Steinberger
359d2af8a8
fix: resolve mac build errors
2026-01-18 08:00:58 +00:00
Peter Steinberger
fa897e5dfe
docs: explain node host use cases
2026-01-18 07:59:03 +00:00
Peter Steinberger
7fa8ae56cb
docs: add exec events to bridge protocol
2026-01-18 07:59:03 +00:00
Peter Steinberger
ec27c813cc
fix(fallback): handle timeout aborts
...
Co-authored-by: Mykyta Bozhenko <21245729+cheeeee@users.noreply.github.com >
2026-01-18 07:52:44 +00:00
Peter Steinberger
3b24fe639a
chore: remove peekaboo submodule
2026-01-18 07:47:32 +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
49bd2d96fa
test: fix gateway test lint
2026-01-18 07:44:14 +00:00
Peter Steinberger
ca350fc66c
chore(format): oxfmt memory
2026-01-18 07:30:07 +00:00
Peter Steinberger
30338ce1a7
refactor: share memory plugin config helpers
2026-01-18 07:24:16 +00:00
Peter Steinberger
faa94f0168
Merge pull request #1148 from TSavo/refactor/gateway-test-monkeypatching
...
refactor: remove monkeypatching from gateway tests
2026-01-18 07:16:33 +00:00
Peter Steinberger
f5c84768ff
chore(format): oxfmt
2026-01-18 07:14:40 +00:00
Peter Steinberger
df752d4706
Merge pull request #1149 from radek-paclt/feature/memory-plugin-v2
...
feat(memory): add lifecycle hooks and vector memory plugin
2026-01-18 07:10:06 +00:00
Peter Steinberger
c9c9516206
refactor(memory): extract sync + status helpers
2026-01-18 07:03:06 +00:00
Peter Steinberger
d3b15c6afa
ci: stabilize vitest runs
2026-01-18 06:58:54 +00:00
Peter Steinberger
f86b24c511
refactor(session): centralize thread reset detection
...
Co-authored-by: Austin Mudd <austinm911@gmail.com >
2026-01-18 06:55:04 +00:00
Peter Steinberger
b5ddf08763
test: expand soul-evil coverage
2026-01-18 06:39:26 +00:00
Peter Steinberger
367826f6e4
feat(session): add daily reset policy
...
Co-authored-by: Austin Mudd <austinm911@gmail.com >
2026-01-18 06:37:37 +00:00
Peter Steinberger
f03c3b3f05
docs: update changelog for #1147
...
Co-authored-by: Andrew Lauppe <andy@t5tele.com >
2026-01-18 06:37:29 +00:00
Radek Paclt
ebfeb7a6bf
feat(memory): add lifecycle hooks and vector memory plugin
...
Add plugin lifecycle hooks infrastructure:
- before_agent_start: inject context before agent loop
- agent_end: analyze conversation after completion
- 13 hook types total (message, tool, session, gateway hooks)
Memory plugin implementation:
- LanceDB vector storage with OpenAI embeddings
- kind: "memory" to integrate with upstream slot system
- Auto-recall: injects <relevant-memories> when context found
- Auto-capture: stores preferences, decisions, entities
- Rule-based capture filtering with 0.95 similarity dedup
- Tools: memory_recall, memory_store, memory_forget
- CLI: clawdbot ltm list|search|stats
Plugin infrastructure:
- api.on() method for hook registration
- Global hook runner singleton for cross-module access
- Priority ordering and error catching
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-18 06:34:43 +00:00
Peter Steinberger
ac1b2d8c40
chore(gate): fix lint and protocol
2026-01-18 06:31:02 +00:00
Peter Steinberger
2087f0c6a1
ci: bump vitest timeouts
2026-01-18 06:31:02 +00:00
Peter Steinberger
bcfdcc6820
fix: keep bootstrap files in context report
2026-01-18 06:30:01 +00:00
Peter Steinberger
b65acfcbb7
chore(lint): fix context report bootstrap destructure
2026-01-18 06:30:01 +00:00
Peter Steinberger
f7fcfafb4c
fix: resolve lint after rebase
2026-01-18 06:30:01 +00:00
Peter Steinberger
15606b4d88
test: cover bundled memory plugin package metadata
2026-01-18 06:30:01 +00:00
Peter Steinberger
bb8f08734a
build: package memory-core as a workspace plugin
2026-01-18 06:30:01 +00:00
Peter Steinberger
0b00e591e1
fix(streaming): emit assistant deltas
...
Co-authored-by: Andrew Lauppe <andy@t5tele.com >
2026-01-18 06:24:52 +00:00
Peter Steinberger
e39fd7dbb3
docs: update bundled hooks list
2026-01-18 06:23:09 +00:00
Peter Steinberger
b8a82923e9
docs: add soul-evil hook docs
2026-01-18 06:21:00 +00:00
Peter Steinberger
28f8b7bafa
refactor: add hook guards and test helpers
2026-01-18 06:15:24 +00:00
Peter Steinberger
32dd052260
chore: show plugin hooks in plugins info
2026-01-18 06:14:09 +00:00
Peter Steinberger
8f7f7ee7dc
feat: add /exec session overrides
2026-01-18 06:12:54 +00:00
Peter Steinberger
1d8614c7c2
fix: align exec tool config and test timeouts
2026-01-18 06:12:53 +00:00
Peter Steinberger
436c5fd751
fix(openai-http): reuse history markers for chat prompts
...
Co-authored-by: Andrew Lauppe <andy@t5tele.com >
2026-01-18 06:07:59 +00:00
Peter Steinberger
f5f7f47c81
chore(format): oxfmt hooks-cli
2026-01-18 06:03:22 +00:00
Peter Steinberger
d4bd387e0e
chore(gate): fix lint and formatting
2026-01-18 06:01:25 +00:00
Peter Steinberger
d1c85cb32d
test(gateway): stabilize cron temp cleanup
2026-01-18 06:01:25 +00:00
Peter Steinberger
a3a2c641a7
test(usage): cover modes and full footer
2026-01-18 06:01:25 +00:00
Peter Steinberger
54d7551b53
refactor(usage): centralize responseUsage mode
2026-01-18 06:01:25 +00:00
Peter Steinberger
e2c10a2b7a
feat: support plugin-managed hooks
2026-01-18 05:57:05 +00:00
Peter Steinberger
88b37e80fc
refactor: expand bootstrap helpers and tests
2026-01-18 05:51:55 +00:00
Peter Steinberger
d5be8fa576
test: avoid timer hangs in cron tests
2026-01-18 05:44:22 +00:00
Peter Steinberger
208398973b
test: stabilize gateway suites
2026-01-18 05:44:22 +00:00
Peter Steinberger
8f998741b7
fix: shorten doctor gateway health timeout in non-interactive
2026-01-18 05:44:22 +00:00
Peter Steinberger
9c0ff87c86
fix: align plugin runtime and exec wiring
2026-01-18 05:44:22 +00:00
Peter Steinberger
1a0d1cb7b2
test: stabilize gateway ports and timers
2026-01-18 05:44:22 +00:00
Peter Steinberger
cf8b3ed988
fix: harden memory indexing and embedded session locks
2026-01-18 05:41:45 +00:00
Peter Steinberger
b7575a889e
refactor: align status with plugin memory slot
2026-01-18 05:40:10 +00:00
Peter Steinberger
154d4a43db
build: export plugin-sdk for extensions
2026-01-18 05:40:10 +00:00
Peter Steinberger
b5c023044b
docs: expand memory hybrid search explainer
2026-01-18 05:40:10 +00:00
Peter Steinberger
072a13f3b2
test: expand memory hybrid coverage
2026-01-18 05:40:10 +00:00
Peter Steinberger
c00ea63bb0
refactor: split memory manager internals
2026-01-18 05:40:10 +00:00
Peter Steinberger
8350758635
chore(lint): fix unused vars and formatting
2026-01-18 05:38:23 +00:00
Peter Steinberger
2dabce59ce
feat(slash-commands): usage footer modes
2026-01-18 05:35:35 +00:00
tsavo
b594f5130d
refactor: add afterEach cleanup to all gateway tests
...
Added afterEach hooks with server/ws cleanup to:
- server.channels.test.ts (3 tests)
- server.config-apply.test.ts (2 tests)
- server.sessions-send.test.ts (already had this)
This ensures ports are properly released between tests, preventing
timeout issues from port conflicts.
2026-01-17 21:35:01 -08:00
tsavo
e2bb5eecf3
refactor: remove monkeypatching from gateway tests
...
Replace manual process.env backup/restore with vi.stubEnv():
- server.config-apply.test.ts: Simplified env var pattern
- server.channels.test.ts: Simplified env var pattern
- server.sessions-send.test.ts: Added afterEach cleanup hook, removed try-finally blocks from all 4 tests
Uses proper Vitest isolation instead of manual restoration.
2026-01-17 21:32:14 -08:00
Peter Steinberger
e7a4931932
refactor: centralize bootstrap file resolution
2026-01-18 05:31:04 +00:00
Peter Steinberger
ad3c12a43a
feat: add bootstrap hook and soul-evil hook
2026-01-18 05:24:47 +00:00
Peter Steinberger
7e2d91f3b7
test: cover subagent helpers
2026-01-18 05:19:56 +00:00
Peter Steinberger
97cef49046
refactor: share subagent helpers
2026-01-18 05:19:56 +00:00
Peter Steinberger
016693a1f5
fix: abort embedded prompts on cancel
2026-01-18 05:18:10 +00:00
Peter Steinberger
89c5185f1c
feat: migrate zalouser plugin to sdk
...
# Conflicts:
# CHANGELOG.md
2026-01-18 05:17:40 +00:00
Peter Steinberger
b105745299
feat: expand subagent status visibility
2026-01-18 04:46:04 +00:00
Peter Steinberger
1ae415e395
fix: align agent exec config
2026-01-18 04:37:15 +00:00
Vignesh Natarajan
e011c764a7
Gate lobster plugin tool in sandboxed contexts
2026-01-17 20:33:31 -08:00
Peter Steinberger
55aff22274
feat: surface batch request progress
2026-01-18 04:30:15 +00:00
Peter Steinberger
e4e1396a98
perf: improve batch status logging
2026-01-18 04:28:14 +00:00
Peter Steinberger
331b8157b0
docs: clarify plugin agent tool config
2026-01-18 04:28:00 +00:00
Peter Steinberger
efdb33c975
feat: add exec host approvals flow
2026-01-18 04:27:41 +00:00
Peter Steinberger
fa1079214b
fix: include query in Twilio webhook verification
2026-01-18 04:25:28 +00:00
Peter Steinberger
82e49af5a7
fix: resolve plugin tool meta typing
2026-01-18 04:24:16 +00:00
Peter Steinberger
fabc2882aa
fix: avoid keychain prompts in embedded runner
2026-01-18 04:19:28 +00:00
Vignesh Natarajan
b2650ba672
Move lobster integration to optional plugin tool
2026-01-17 20:18:54 -08:00
Peter Steinberger
6b3d3f5e21
refactor: centralize plugin tool policy helpers
2026-01-18 04:18:32 +00:00
Vignesh Natarajan
147fccd967
Add lobster tool for running local Lobster pipelines
2026-01-17 20:13:00 -08:00
Peter Steinberger
6da6582ced
feat: add optional plugin tools
2026-01-18 04:08:00 +00:00
Peter Steinberger
45bf07ba31
Update canvas skill with Tailscale integration details and architecture
2026-01-18 03:57:19 +00:00
Peter Steinberger
50ae43f886
Add canvas skill documentation
2026-01-18 03:55:52 +00:00
Peter Steinberger
afb877a96b
perf: speed up memory batch polling
2026-01-18 03:55:14 +00:00
Peter Steinberger
0d9172d761
fix: persist session origin metadata
2026-01-18 03:41:51 +00:00
Peter Steinberger
dad69afc84
fix: align plugin runtime types
2026-01-18 03:41:25 +00:00
Peter Steinberger
787bed4996
test: stabilize doctor + pi-embedded suites
2026-01-18 03:40:47 +00:00
Peter Steinberger
b6d470a679
feat: migrate zalo plugin to sdk
2026-01-18 03:37:26 +00:00
Peter Steinberger
5fa1a63978
Merge pull request #1136 from cheeeee/fix/prompt-failover
...
fix(agent): Enable model fallback for prompt-phase quota/rate limit errors
2026-01-18 03:32:03 +00:00
Peter Steinberger
6cc57ae772
feat: add bluebubbles plugin
2026-01-18 03:17:43 +00:00
Peter Steinberger
0f6f7059d9
test: stabilize embedded runner tests
2026-01-18 02:55:41 +00:00
Peter Steinberger
67f63ecd7e
chore: remove tracked artifacts
2026-01-18 02:55:07 +00:00
Peter Steinberger
1420d113d8
refactor: migrate extensions to plugin sdk
2026-01-18 02:55:07 +00:00
Peter Steinberger
5b4651d9ed
refactor: add plugin sdk runtime scaffolding
2026-01-18 02:52:30 +00:00
Peter Steinberger
5f22b68268
feat: add session origin metadata helpers
2026-01-18 02:42:11 +00:00
Peter Steinberger
34590d2144
feat: persist session origin metadata across connectors
2026-01-18 02:42:10 +00:00
Peter Steinberger
0c93b9b7bb
style: apply oxfmt
2026-01-18 02:19:35 +00:00
Peter Steinberger
b659db0a5b
chore(changelog): align 2026.1.17 versions
2026-01-18 02:13:56 +00:00
Peter Steinberger
9fd9f4c896
feat(plugins): add memory slot plugin
2026-01-18 02:12:10 +00:00
Peter Steinberger
005b831023
test: stabilize env-dependent tool defaults
2026-01-18 01:57:54 +00:00
Peter Steinberger
8013c4717c
feat: show memory summary in status
2026-01-18 01:57:54 +00:00
Peter Steinberger
14e6b21b50
test: cover perplexity baseUrl precedence
2026-01-18 01:56:34 +00:00
Peter Steinberger
62354dff9c
refactor: share allowlist match metadata
...
Co-authored-by: thewilloftheshadow <thewilloftheshadow@users.noreply.github.com >
2026-01-18 01:49:25 +00:00
Peter Steinberger
ccb30665f7
feat: add hybrid memory search
2026-01-18 01:47:58 +00:00
Peter Steinberger
0fb2777c6d
feat: add memory embedding cache
2026-01-18 01:47:58 +00:00
Peter Steinberger
568b8ee96c
refactor: split web tools and docs
2026-01-18 01:42:54 +00:00
Peter Steinberger
fc60699f03
fix: delay discord slow listener warnings
2026-01-18 01:41:10 +00:00
Peter Steinberger
c1da78a271
refactor: share teams allowlist matching helpers
...
Co-authored-by: thewilloftheshadow <thewilloftheshadow@users.noreply.github.com >
2026-01-18 01:37:22 +00:00
Peter Steinberger
0674f1fa3c
feat: add exec approvals allowlists
2026-01-18 01:34:31 +00:00
Mykyta Bozhenko
448394a0de
fix(agent): Enable model fallback for prompt-phase quota/rate limit errors
...
When a prompt submission fails with quota or rate limit errors, throw
FailoverError instead of the raw promptError. This enables the model
fallback system to try alternative models.
Previously, rate limit errors during the prompt phase (before streaming)
were thrown directly, bypassing fallback. Only response-phase errors
triggered model fallback.
Now checks if fallback models are configured and the error is failover-
eligible. If so, wraps in FailoverError to trigger the fallback chain.
2026-01-18 01:29:48 +00:00
Peter Steinberger
3a0fd6be3c
test: stub slack allowlist resolvers
2026-01-18 01:25:19 +00:00
Peter Steinberger
8b1bec11d0
feat: speed up memory batch indexing
2026-01-18 01:24:51 +00:00
Peter Steinberger
f73dbdbaea
refactor: unify channel config matching and gating
...
Co-authored-by: thewilloftheshadow <thewilloftheshadow@users.noreply.github.com >
2026-01-18 01:24:00 +00:00
Peter Steinberger
05f49d2846
fix(slack): resolve allowlists async
2026-01-18 01:23:25 +00:00
Peter Steinberger
1d83389776
Merge pull request #1131 from CMLKevin/feat/perplexity-search-provider
...
feat(web): add Perplexity Sonar as alternative search provider
2026-01-18 01:16:00 +00:00
Peter Steinberger
e0e8f11f70
fix: bundle Textual resources in macOS app
2026-01-18 01:15:19 +00:00
Peter Steinberger
36d88f6079
fix: normalize gateway dev mode detection
2026-01-18 01:08:47 +00:00
Peter Steinberger
2c070952e1
Merge pull request #1120 from mukhtharcm/qwen-portal-oauth
...
Models: add Qwen Portal OAuth support
2026-01-18 01:04:46 +00:00
Peter Steinberger
fc45148155
fix: harden qwen oauth flow ( #1120 ) (thanks @mukhtharcm)
2026-01-18 01:03:08 +00:00
Muhammed Mukhthar CM
215c395fc2
UI: simplify Qwen labels
2026-01-18 01:03:08 +00:00
Muhammed Mukhthar CM
b56b67cdbd
UI: label Qwen provider
2026-01-18 01:03:08 +00:00
Muhammed Mukhthar CM
a760db9921
Docs: add Qwen Portal provider
2026-01-18 01:03:08 +00:00
Muhammed Mukhthar CM
8eb80ee40a
Models: add Qwen Portal OAuth support
2026-01-18 01:03:08 +00:00
Peter Steinberger
f9e3b129ed
test: reindex on embedding model change
2026-01-18 01:00:57 +00:00
Peter Steinberger
e5050abe2a
docs: note model change reindex
2026-01-18 01:00:57 +00:00
Peter Steinberger
4f0771f67b
fix(channels): clean up discord resolve typing
2026-01-18 01:00:25 +00:00
Peter Steinberger
075ff675ac
refactor(channels): share allowlist + resolver helpers
2026-01-18 01:00:25 +00:00
Peter Steinberger
c7ea47e886
feat(channels): add resolve command + defaults
2026-01-18 01:00:24 +00:00
Rodrigo Uroz
b543339373
Update tagline.ts with a nice reference from an old movie
2026-01-18 00:59:43 +00:00
Peter Steinberger
22c7f659f6
fix: surface match metadata in audits and slack logs
...
Co-authored-by: thewilloftheshadow <thewilloftheshadow@users.noreply.github.com >
2026-01-18 00:50:36 +00:00
Peter Steinberger
79a44d0da4
refactor(channels): unify target parsing
2026-01-18 00:31:42 +00:00
Peter Steinberger
d593a809f0
fix: apply openai batch defaults
2026-01-18 00:29:18 +00:00
Peter Steinberger
22add31e91
docs: update changelog for sessions_spawn thinking
2026-01-18 00:17:28 +00:00
Peter Steinberger
b44d740720
refactor: centralize cli manager cleanup
...
Co-authored-by: Nicholas Spisak <jsnsdirect@gmail.com >
2026-01-18 00:16:01 +00:00
Peter Steinberger
4d590f9254
refactor(slack): centralize target parsing
2026-01-18 00:15:05 +00:00
Peter Steinberger
a5aa48beea
feat: add dm allowlist match metadata logs
...
Co-authored-by: thewilloftheshadow <thewilloftheshadow@users.noreply.github.com >
2026-01-18 00:14:44 +00:00
Peter Steinberger
1bf3861ca4
feat: add thinking override to sessions_spawn
2026-01-18 00:14:18 +00:00
Kevin Lin
ff9d069a33
feat(web): add Perplexity Sonar as alternative search provider
2026-01-18 08:08:36 +08:00
joshrad-dev
f8052be369
docs: add docs for Copilot device flow
2026-01-18 00:06:04 +00:00
Peter Steinberger
a08438ae97
refactor(discord): centralize target parsing
...
Co-authored-by: Jonathan Rhyne <jonathan@pspdfkit.com >
2026-01-18 00:04:38 +00:00
Peter Steinberger
fe00d6aacf
feat: add matrix room match metadata logs
...
Co-authored-by: thewilloftheshadow <thewilloftheshadow@users.noreply.github.com >
2026-01-18 00:00:00 +00:00
Peter Steinberger
984692cda2
refactor: reuse channel config resolver in matrix extension
...
Co-authored-by: thewilloftheshadow <thewilloftheshadow@users.noreply.github.com >
2026-01-17 23:53:05 +00:00
Peter Steinberger
4c12c4fc04
feat: add channel match metadata logs
...
Co-authored-by: thewilloftheshadow <thewilloftheshadow@users.noreply.github.com >
2026-01-17 23:48:45 +00:00
Peter Steinberger
794bab45ff
fix: harden memory cli manager cleanup
...
Co-authored-by: Nicholas Spisak <jsnsdirect@gmail.com >
2026-01-17 23:45:42 +00:00
Peter Steinberger
16e5fa1db9
test: cover daemon install helpers
2026-01-17 23:41:45 +00:00
Peter Steinberger
125be3e111
fix: restore wizard/doctor imports
2026-01-17 23:41:45 +00:00
Peter Steinberger
b60a53e10d
feat: enable batch indexing by default
2026-01-17 23:29:40 +00:00
Peter Steinberger
9de762faa2
refactor: unify gateway daemon install plan
2026-01-17 23:29:34 +00:00
Peter Steinberger
5aed38eebc
fix(discord): honor thread allowlists in reactions
...
Co-authored-by: Codex <codex@openai.com >
2026-01-17 23:03:51 +00:00
Peter Steinberger
e63e483c38
refactor(channels): share channel config matching
...
Co-authored-by: Codex <codex@openai.com >
2026-01-17 23:03:51 +00:00
Shadow
277e43e32c
Discord: inherit thread allowlists
2026-01-17 23:03:51 +00:00
Peter Steinberger
852aa16ca0
fix: stabilize memory sync progress
2026-01-17 23:02:03 +00:00
Peter Steinberger
82b7153ac1
fix: handle daemon install failure in wizard
2026-01-17 23:00:34 +00:00
Peter Steinberger
7d2e510087
fix: retry embedding 5xx errors
2026-01-17 22:48:50 +00:00
Peter Steinberger
9ca4c10e59
test: cover channels capabilities probes
2026-01-17 22:33:18 +00:00
Peter Steinberger
a31a79396b
feat: add OpenAI batch memory indexing
2026-01-17 22:32:04 +00:00
Peter Steinberger
acc3eb11d0
Update bird skill with Twitter posting wisdom from Ruby
...
- CLI for reading only (Twitter flags CLI posts as automated)
- Browser tool with paste hack for writing
- React input workaround with ClipboardEvent
- Selectors and rate limiting tips
- Credit: Shadow's Ruby documented the forbidden arts
2026-01-17 22:28:23 +00:00
Peter Steinberger
9d9fff2991
fix: sessions list label fallback
...
Co-authored-by: abdaraxus <abdaraxus@users.noreply.github.com >
2026-01-17 22:22:01 +00:00
Peter Steinberger
030ed5d592
fix: skip empty memory chunks
2026-01-17 21:58:59 +00:00
Peter Steinberger
f6d359932a
fix: parallelize memory embedding indexing
2026-01-17 21:57:12 +00:00
Peter Steinberger
3200b51160
fix: format exec elevated flag first in tool summaries
2026-01-17 21:54:24 +00:00
Peter Steinberger
4b11ebb30e
fix: split long memory lines
2026-01-17 21:11:56 +00:00
Peter Steinberger
40345642fa
fix: show memory index counts in progress
2026-01-17 21:09:22 +00:00
Peter Steinberger
e932772230
fix: report memory index progress
2026-01-17 20:42:04 +00:00
Peter Steinberger
63d466fe5e
fix(telegram): expand text_link entities in inbound text
...
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-17 20:41:34 +00:00
Peter Steinberger
c2fada7062
fix: suppress duplicate discord slow-listener logs
2026-01-17 20:37:36 +00:00
Peter Steinberger
d9c29f5ce5
fix: add agent context to ws logs
2026-01-17 20:37:36 +00:00
Peter Steinberger
f5d5ef6857
feat: confirm memory index completion
2026-01-17 20:35:15 +00:00
Peter Steinberger
361a17415f
chore: release 2026.1.17-1
2026-01-17 20:26:24 +00:00
Peter Steinberger
fb393c3c51
feat: add progress to memory status deep
2026-01-17 20:25:19 +00:00
Peter Steinberger
e0158c5d5d
feat: add deep memory status checks
2026-01-17 20:18:36 +00:00
Peter Steinberger
be12b0771c
fix: soften windows daemon install
2026-01-17 20:12:26 +00:00
Peter Steinberger
1309fc1f48
test: expand frontmatter coverage
2026-01-17 20:12:04 +00:00
Peter Steinberger
4fdecfb845
fix: split memory embedding batches
2026-01-17 20:10:11 +00:00
Peter Steinberger
31c6f178f3
fix: preserve inline frontmatter values
2026-01-17 19:56:10 +00:00
Peter Steinberger
1e2ab8bf1e
fix: improve frontmatter parsing
2026-01-17 19:56:10 +00:00
Sebastian Slight
35a1d81518
fix: handle multi-line metadata blocks in HOOK.md frontmatter
...
The frontmatter parser was using a simple line-by-line regex that only
captured single-line key-value pairs. This meant multi-line metadata
blocks (as used by bundled hooks) were not parsed correctly.
Changes:
- Add extractMultiLineValue() to handle indented continuation lines
- Use JSON5 instead of JSON.parse() to support trailing commas
- Add comprehensive test coverage for frontmatter parsing
Fixes #1113
2026-01-17 19:56:10 +00:00
Peter Steinberger
1c4297d8b5
test: update memory cli mocks for vector probe
2026-01-17 19:49:41 +00:00
Peter Steinberger
e3638a9a9e
fix: probe memory vector availability
2026-01-17 19:46:34 +00:00
Peter Steinberger
1f8558771a
Docs: note MiniMax usage endpoint
2026-01-17 19:45:54 +00:00
Peter Steinberger
2e231d09ec
Infra: update MiniMax usage endpoint
2026-01-17 19:45:48 +00:00
Peter Steinberger
727c07bd88
feat: add slack user scopes and teams graph hints
2026-01-17 19:33:03 +00:00
Peter Steinberger
c32ad19377
docs: restore changelog entries
2026-01-17 19:32:30 +00:00
Peter Steinberger
ef40ab2933
test: expand memory cli coverage
2026-01-17 19:30:46 +00:00
Peter Steinberger
e71fa4a145
docs: note session log disk access
2026-01-17 19:30:46 +00:00
Peter Steinberger
a7c0887f94
feat: add per-provider scope probes to channels capabilities
2026-01-17 19:28:52 +00:00
Peter Steinberger
53218b91c6
fix: close memory cli managers
2026-01-17 19:20:55 +00:00
Peter Steinberger
2d4de656d2
test: avoid global SIGTERM emit in child-process-bridge
2026-01-17 19:20:48 +00:00
Peter Steinberger
b0f44acf9e
chore: bump versions to 2026.1.17
2026-01-17 19:16:35 +00:00
Peter Steinberger
a828e60067
feat: add channels capabilities command
2026-01-17 19:06:07 +00:00
Peter Steinberger
96df70fccf
fix: add nested agent log context
2026-01-17 18:59:59 +00:00
Peter Steinberger
0e49dca53c
feat: add experimental session memory source
2026-01-17 18:53:52 +00:00
Peter Steinberger
8ec4af4641
fix(status): show 2 usage windows in /status ( #1101 )
...
Thanks @rhjoh.
Co-authored-by: Rhys Johnston <rhys.johnston00@gmail.com >
2026-01-17 18:46:41 +00:00
Peter Steinberger
2f6d9417bd
test(memory): await watch sync completion
2026-01-17 18:45:42 +00:00
Peter Steinberger
534a012a4e
style: apply oxfmt
2026-01-17 18:32:23 +00:00
Peter Steinberger
7a3fa9ce03
feat: show update availability in status
2026-01-17 18:23:27 +00:00
Peter Steinberger
8a67d29748
fix: improve WSL2 systemd daemon hints
2026-01-17 18:19:55 +00:00
Peter Steinberger
408f4f2dac
fix: reuse shared ansi stripper
2026-01-17 18:18:14 +00:00
Peter Steinberger
3df2dc0b15
fix: normalize exec tool alias naming
2026-01-17 18:15:45 +00:00
Peter Steinberger
5304a8c2d1
fix: add timestamped tool context to logs
2026-01-17 18:14:21 +00:00
Peter Steinberger
1569d29b2d
fix: normalize telegram forwarded context ( #1090 ) (thanks @sleontenko)
2026-01-17 18:08:23 +00:00
Peter Steinberger
50c8e74230
fix(doctor): avoid ack reaction migration without config ( #1087 )
...
Thanks @YuriNachos.
Co-authored-by: Yuri Chukhlib <YuriNachos@users.noreply.github.com >
2026-01-17 18:07:06 +00:00
Peter Steinberger
1045b032a2
refactor(logging): use subsystem loggers for discord/ws
2026-01-17 18:03:40 +00:00
Peter Steinberger
a813343aa7
docs: clarify model refs and runtime notes
...
Co-authored-by: Yuri Chukhlib <YuriNachos@users.noreply.github.com >
2026-01-17 18:03:40 +00:00
Peter Steinberger
5a08471dcd
feat: add sqlite-vec memory search acceleration
2026-01-17 18:02:34 +00:00
Peter Steinberger
252dfbcd40
fix: include context in elevated exec denial
2026-01-17 17:55:11 +00:00
Peter Steinberger
75588fe732
test: expand semver parsing coverage
2026-01-17 17:54:41 +00:00
Peter Steinberger
9bbdeb3d52
Merge pull request #1111 from artuskg/fix/cli-install-version-suffix
...
macos: keep CLI install build suffix
2026-01-17 17:46:13 +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
5599e4cf35
test: make session update timestamp UTC
2026-01-17 17:45:14 +00:00
Artus KG
84cdd2df73
changelog: note CLI install build suffix fix
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
7876679c5d
style: apply oxfmt
2026-01-17 17:44:54 +00:00
Peter Steinberger
bc6928525d
docs: note discord interaction logging fix
2026-01-17 17:42:56 +00:00
Peter Steinberger
755c847d9a
fix: soften discord interaction logging
2026-01-17 17:42:46 +00:00
Peter Steinberger
80a8639940
refactor: centralize telegram send param parsing
2026-01-17 17:36:37 +00:00
Peter Steinberger
6cb5704291
Merge pull request #1085 from dan-dr/chore/kimi-code-provider
...
Add Kimi Code provider onboarding
2026-01-17 17:36:30 +00:00
Peter Steinberger
4a987c836d
fix: add Kimi Code docs + defaults ( #1085 ) (thanks @dan-dr)
2026-01-17 17:35:40 +00:00
Peter Steinberger
a2fb55326c
Merge pull request #1099 from mukhtharcm/feat/message-tool-voice-support
...
feat(telegram): support sending audio as native voice notes via asVoice param in message tool
2026-01-17 17:33:20 +00:00
Peter Steinberger
af29c6a980
fix: allow media-only telegram voice sends ( #1099 ) (thanks @mukhtharcm)
2026-01-17 17:33:08 +00:00
Muhammed Mukhthar CM
f2a0e8e5bb
feat(telegram): support sending audio as native voice notes via asVoice param in message tool
2026-01-17 17:32:50 +00:00
Peter Steinberger
f6456c2883
Merge pull request #1106 from gumadeiras/patch-2
...
Remove extra 'logging' page in the docs
2026-01-17 17:32:15 +00:00
Peter Steinberger
39f0d000d1
Merge pull request #1088 from sibbl/fix-matrix
...
feat(matrix): fix sending bug, add specific support for voice messages and images
2026-01-17 17:27:44 +00:00
Peter Steinberger
a8d9d630bc
fix: handle legacy matrix polls ( #1088 ) (thanks @sibbl)
2026-01-17 17:27:12 +00:00
ddyo
e93a1d8138
feat: add kimi code provider onboarding
2026-01-17 17:25:07 +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
Sebastian Schubotz
b78b06353a
feat(matrix): add specific voice message + image sending extending generic attachment sending
2026-01-17 17:12:38 +00:00
Sebastian Schubotz
c49b6cc241
fix(matrix): fix sending being broken by normalizing thread ID normalization in message sending functions; improve matrix types
2026-01-17 17:12:38 +00:00
Peter Steinberger
30c945fe92
fix: cover semver patch suffix parsing ( #1110 ) (thanks @zerone0x)
2026-01-17 16:50:05 +00:00
Peter Steinberger
dfd511c310
Merge pull request #1110 from zerone0x/fix/issue-1107-semver-prerelease-suffix
...
fix(macos): parse semver patch correctly when version has prerelease suffix
2026-01-17 16:45:49 +00:00
Peter Steinberger
1657525201
chore: prep 2026.1.17 and onboard flow
2026-01-17 16:41:25 +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
Michael Behr
003c6c9ae1
add patches/.gitkeep ( #1104 )
2026-01-17 08:50:50 -06:00
Gustavo Madeira Santana
41fbb4d8b0
Remove extra 'logging' page in the docs
...
Removed 'logging' from the list of gateways.
2026-01-17 09:49:39 -05:00
Peter Steinberger
eecb340f64
style: format update-cli
2026-01-17 12:51:08 +00:00
Peter Steinberger
d029eaa0bb
docs: tighten release preflight
2026-01-17 12:47:54 +00:00
Peter Steinberger
9c7dcc1ed7
chore: update appcast for 2026.1.16-2
2026-01-17 12:46:42 +00:00
Peter Steinberger
be37b39782
docs: clarify build-info release check
2026-01-17 12:34:37 +00:00
Peter Steinberger
49c35c752c
fix: stamp build commit metadata
2026-01-17 12:30:11 +00:00
Peter Steinberger
25d8043b9d
feat: add gateway update check on start
2026-01-17 12:07:17 +00:00
Peter Steinberger
f9f4a953fc
docs: restore tmux skill
2026-01-17 11:52:50 +00:00
Peter Steinberger
34c3fbc66c
chore: set extension versions to 2026.1.16
2026-01-17 11:40:25 +00:00
Peter Steinberger
a9f21b3d3a
feat: add update channel support
2026-01-17 11:40:05 +00:00
Peter Steinberger
ed5c5629f6
fix: cut 2026.1.16-1 beta
2026-01-17 11:12:43 +00:00
Peter Steinberger
868952f958
docs: add release guardrails
2026-01-17 11:12:27 +00:00
Peter Steinberger
9b9836be71
fix: repair 2026.1.16 beta pack
2026-01-17 11:08:37 +00:00
Peter Steinberger
22cd839cb2
fix: include media-understanding in npm pack
2026-01-17 11:03:46 +00:00
Peter Steinberger
dc3ac9fa28
docs: update coding-agent skill guidance
2026-01-17 10:59:23 +00:00
Peter Steinberger
c874fa9712
chore: bump 2026.1.16 for beta
2026-01-17 10:49:49 +00:00
Peter Steinberger
6b784a9771
style: oxfmt
2026-01-17 10:26:08 +00:00
Peter Steinberger
f8e673cdbc
fix: block invalid config startup
...
Co-authored-by: Muhammed Mukhthar CM <mukhtharcm@gmail.com >
2026-01-17 10:25:24 +00:00
Peter Steinberger
ad360b4d18
docs(discord): clarify slash command visibility
2026-01-17 10:19:34 +00:00
Peter Steinberger
69ba2765de
refactor(security): harden CommandAuthorized plumbing
2026-01-17 10:19:34 +00:00
Peter Steinberger
31e8ecca10
fix: format verbose tool output by channel
2026-01-17 10:17:57 +00:00
Peter Steinberger
4ca38286d8
chore: fix lint/format and update changelog
...
Co-authored-by: ItzR3NO <ItzR3NO@users.noreply.github.com >
2026-01-17 10:16:35 +00:00
Peter Steinberger
fbf1c3ca3c
test: cover plugin enable/disable semantics
2026-01-17 10:16:35 +00:00
Peter Steinberger
1a4313c2aa
fix: avoid crash on memory embeddings errors ( #1004 )
2026-01-17 09:45:53 +00:00
Peter Steinberger
a6deb0d9d5
feat: bundle provider auth plugins
...
Co-authored-by: ItzR3NO <ItzR3NO@users.noreply.github.com >
2026-01-17 09:38:53 +00:00
Peter Steinberger
b6ea5895b6
fix: gate image tool and deepgram audio payload
2026-01-17 09:34:40 +00:00
Peter Steinberger
d66bc65ca6
refactor: unify media provider options
2026-01-17 09:28:05 +00:00
Peter Steinberger
89f85ddeab
fix: normalize deepgram audio upload bytes
2026-01-17 09:19:27 +00:00
Peter Steinberger
bbb71c9198
refactor: prune legacy group targets
2026-01-17 09:01:47 +00:00
Peter Steinberger
ae6792522d
feat: add deepgram audio options
2026-01-17 08:53:42 +00:00
Peter Steinberger
e637bbdfb5
feat: add Deepgram audio transcription
...
Co-authored-by: Safzan Pirani <safzanpirani@users.noreply.github.com >
2026-01-17 08:53:42 +00:00
Peter Steinberger
869ef0c5ba
refactor(macos): centralize process pipe draining
2026-01-17 08:53:10 +00:00
Peter Steinberger
1002c74d9c
refactor: share inbound envelope label helper
2026-01-17 08:51:31 +00:00
Peter Steinberger
61e60f3b84
docs: update changelog for 2026.1.16
2026-01-17 08:50:33 +00:00
Peter Steinberger
13b931c006
refactor: prune legacy group prefixes
2026-01-17 08:47:25 +00:00
Peter Steinberger
ab49fe0e92
fix: tidy iMessage/Signal sender envelopes ( #1080 ) - thanks @tyler6204
...
Co-authored-by: Tyler Yust <TYTYYUST@YAHOO.COM >
2026-01-17 08:29:54 +00:00
Tyler Yust
d0bc08a934
fix: reduce redundant envelope formatting for iMessage and Signal
2026-01-17 08:29:54 +00:00
Tyler Yust
64d21f5ea8
fix: improve message handling by logging sender issues
2026-01-17 08:29:54 +00:00
Peter Steinberger
0a95d8a840
fix(skills): fix watcher ignored typing
2026-01-17 08:28:09 +00:00
Peter Steinberger
56f3a2de25
fix(security): default-deny command execution
2026-01-17 08:28:09 +00:00
Peter Steinberger
d8b463d0b3
fix: cap pending process output
2026-01-17 08:26:12 +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
837eea4ebd
fix: refresh TUI session info after runs
2026-01-17 08:22:32 +00:00
Peter Steinberger
55622bac06
Merge pull request #1079 from d-ploutarchos/fix/tui-token-refresh
...
TUI: refresh token counts after agent runs complete
2026-01-17 08:17:03 +00:00
Peter Steinberger
f172ccfcf6
fix: remove stray skills watcher bracket
2026-01-17 08:15:21 +00:00
Peter Steinberger
a2a6893566
fix: allow skills watcher ignore list
2026-01-17 08:12:57 +00:00
Peter Steinberger
616ee3075c
fix: repair skills watcher ignored typing
2026-01-17 08:12:00 +00:00
Peter Steinberger
c5239f6a8e
fix: stabilize pty tests and media kind
2026-01-17 08:10:44 +00:00
Peter Steinberger
cccd7c7b8e
test: stabilize windows pty expectations
2026-01-17 08:07:31 +00:00
Peter Steinberger
8f1132e8ec
fix: share skills watcher ignores
2026-01-17 08:07:06 +00:00
Peter Steinberger
e6477363e9
refactor: normalize channel capabilities typing
2026-01-17 08:06:35 +00:00
Peter Steinberger
1a4fc8dea6
fix: guard memory sync errors
2026-01-17 08:04:48 +00:00
Peter Steinberger
a3daf3d115
style: oxfmt
2026-01-17 08:01:46 +00:00
Peter Steinberger
f3f80509e3
test: cover tg/group/topic inline button targets ( #1072 ) — thanks @danielz1z
...
Co-authored-by: danielz1z <danielz1z@users.noreply.github.com >
2026-01-17 08:00:16 +00:00
Peter Steinberger
7cebe7a506
style: run oxfmt
2026-01-17 08:00:05 +00:00
Peter Steinberger
5986175268
fix: restore CI lint/build
2026-01-17 08:00:05 +00:00
Peter Steinberger
7630c6dccb
Merge pull request #1074 from roshanasingh4/fix/1056-ignore-heavy-watch-paths
...
Fix #1056 : prevent macOS FD exhaustion by ignoring node_modules in skills watcher
2026-01-17 07:56:54 +00:00
Peter Steinberger
d63cc1e8a7
fix: allow telegram prefixes/topics for inline buttons ( #1072 ) — thanks @danielz1z
...
Co-authored-by: danielz1z <danielz1z@users.noreply.github.com >
2026-01-17 07:49:57 +00:00
danielz1z
80bb6b712c
fix: handle telegram: prefix in resolveTelegramTargetChatType
...
When using inlineButtons="dm" or "group" scope, the validation check
resolveTelegramTargetChatType() failed for numeric chat IDs because
normalizeTelegramMessagingTarget() adds a "telegram:" prefix during
target resolution.
For example, target "5232990709" becomes "telegram:5232990709" after
normalization, but the regex /^-?\d+$/ expects a pure numeric string.
The fix strips the telegram: prefix before checking the numeric pattern.
Adds tests for resolveTelegramTargetChatType with various input formats.
2026-01-17 07:47:14 +00:00
Peter Steinberger
410b8f223e
fix: keep extension relay list current ( #1073 )
...
Thanks @roshanasingh4.
Co-authored-by: Roshan Singh <88576930+roshanasingh4@users.noreply.github.com >
2026-01-17 07:43:31 +00:00
Roshan Singh
693f152895
Fix #1035 : refresh extension tab metadata
...
Handle Target.targetInfoChanged in extension relay so /json/list reflects updated title/url after navigation. Adds regression coverage.
2026-01-17 07:43:09 +00:00
Peter Steinberger
78a4441ac2
test: stabilize bash send-keys submit
2026-01-17 07:41:24 +00:00
Peter Steinberger
c92265a51b
refactor: canonicalize gateway session store keys
2026-01-17 07:41:24 +00:00
Peter Steinberger
d5fdda8e28
refactor: prune room legacy
2026-01-17 07:41:24 +00:00
Dimitrios Ploutarchos
cddf198321
TUI: refresh token counts after agent runs complete. Closes #1078
2026-01-17 07:40:59 +00:00
Peter Steinberger
6d969fe58e
refactor: normalize media attachment selection
2026-01-17 07:38:11 +00:00
Peter Steinberger
68c7d577a4
chore: drop target format helper
2026-01-17 07:36:13 +00:00
Peter Steinberger
1ea8917e2b
refactor: trim resolver exports
2026-01-17 07:36:09 +00:00
Peter Steinberger
07c93dfd30
refactor: streamline target resolver helpers
2026-01-17 07:34:26 +00:00
Peter Steinberger
cf0ea6c756
refactor: unify target resolver metadata
2026-01-17 07:34:26 +00:00
Peter Steinberger
8c9e32c4a3
refactor: share sessions list row type
...
Co-authored-by: Adam Holt <mail@adamholt.co.nz >
2026-01-17 07:34:21 +00:00
Peter Steinberger
34d59d7913
refactor: rename hooks docs and add tests
2026-01-17 07:32:54 +00:00
Peter Steinberger
0c0d9e1d22
Merge pull request #1071 from danielz1z/fix/capabilities-object-format
...
fix: handle object-format capabilities in normalizeCapabilities
2026-01-17 07:31:52 +00:00
Peter Steinberger
2ee45d50a4
refactor: tighten media diagnostics
2026-01-17 07:27:38 +00:00
Peter Steinberger
0c0e1e4226
refactor: extend media understanding
2026-01-17 07:17:13 +00:00
Peter Steinberger
86a46874da
fix: preserve discord chunk whitespace
2026-01-17 07:11:21 +00:00
Peter Steinberger
3a6ee5ee00
feat: unify hooks installs and webhooks
2026-01-17 07:08:04 +00:00
Peter Steinberger
5dc87a2ed4
fix: respond to PTY cursor queries
2026-01-17 07:05:24 +00:00
Peter Steinberger
a85ddf258c
fix: expose deliveryContext in sessions_list
...
Co-authored-by: Adam Holt <mail@adamholt.co.nz >
2026-01-17 06:54:31 +00:00
Peter Steinberger
1f3a09b43b
fix: persist deliveryContext on last-route updates
...
Co-authored-by: Adam Holt <mail@adamholt.co.nz >
2026-01-17 06:54:31 +00:00
Peter Steinberger
7b31b280f8
refactor: reuse agent outbound target resolution
...
Co-authored-by: Adam Holt <mail@adamholt.co.nz >
2026-01-17 06:54:31 +00:00
Peter Steinberger
6a3ed5c850
fix(security): gate slash/control commands
2026-01-17 06:49:34 +00:00
Peter Steinberger
7ed55682b7
fix(build): allow @lydell/node-pty builds
2026-01-17 06:49:33 +00:00
Peter Steinberger
37a2eee837
refactor: drop legacy session store keys
2026-01-17 06:48:44 +00:00
Peter Steinberger
353d778988
refactor: centralize target normalization
2026-01-17 06:45:11 +00:00
Peter Steinberger
5a1ff5b9e7
refactor: tune media understanding
2026-01-17 06:44:19 +00:00
Peter Steinberger
3dc4a96330
feat: add process submit helper
2026-01-17 06:38:56 +00:00
Peter Steinberger
65a8a93854
fix: normalize delivery routing context
...
Co-authored-by: adam91holt <adam91holt@users.noreply.github.com >
2026-01-17 06:38:33 +00:00
Peter Steinberger
eb8a0510e0
refactor: unify queue drop handling
2026-01-17 06:38:33 +00:00
Peter Steinberger
a4178e4062
fix: stabilize pty send-keys tests
2026-01-17 06:32:24 +00:00
Roshan Singh
e7953d8164
Fix #1056 : ignore heavy paths in skills watcher
...
On macOS, watching deep dependency trees can exhaust file descriptors and lead to spawn EBADF failures. The skills watcher only needs to observe skill changes, so ignore dotfiles, node_modules, and dist by default. Adds regression coverage.
2026-01-17 06:26:27 +00:00
Peter Steinberger
5ebfc0738f
feat: add session slug generator
2026-01-17 06:23:26 +00:00
Peter Steinberger
bd32cc40e6
feat: add keypad key mappings
2026-01-17 06:22:05 +00:00
Peter Steinberger
b31d8d3b10
feat: add tmux-style process key helpers
2026-01-17 06:12:56 +00:00
Peter Steinberger
331141ad77
refactor: centralize message target resolution
...
Co-authored-by: Thinh Dinh <tobalsan@users.noreply.github.com >
2026-01-17 06:04:49 +00:00
Peter Steinberger
c7ae5100fa
refactor: share queue helpers
...
Co-authored-by: adam91holt <adam91holt@users.noreply.github.com >
2026-01-17 06:02:27 +00:00
Peter Steinberger
285ed8bac3
fix: sync delivery routing context
...
Co-authored-by: adam91holt <adam91holt@users.noreply.github.com >
2026-01-17 06:02:27 +00:00
Peter Steinberger
e59d8c5436
style: oxfmt format
2026-01-17 05:48:56 +00:00
Peter Steinberger
8b42902cee
refactor: drop legacy room chatType
2026-01-17 05:46:40 +00:00
Peter Steinberger
07a3db153d
feat: notify on exec exit
2026-01-17 05:43:34 +00:00
Peter Steinberger
68d35be383
feat: emit tool outputs for full verbose
2026-01-17 05:40:21 +00:00
Peter Steinberger
99dd428862
feat: extend verbose tool feedback
2026-01-17 05:33:39 +00:00
Peter Steinberger
4d314db750
refactor: extract subagent announce queue
...
Co-authored-by: adam91holt <adam91holt@users.noreply.github.com >
2026-01-17 05:29:07 +00:00
Peter Steinberger
ccea3a0615
refactor: unify delivery target resolution
...
Co-authored-by: adam91holt <adam91holt@users.noreply.github.com >
2026-01-17 05:29:06 +00:00
Peter Steinberger
f4f20c6762
refactor: normalize session route fields
...
Co-authored-by: adam91holt <adam91holt@users.noreply.github.com >
2026-01-17 05:29:06 +00:00
Peter Steinberger
a624878973
fix(security): gate slash commands by sender
2026-01-17 05:25:42 +00:00
Peter Steinberger
c8b826ea8c
fix: add media understanding decision types
2026-01-17 05:24:54 +00:00
Peter Steinberger
f7089cde54
fix: unify inbound sender labels
2026-01-17 05:21:09 +00:00
danielz1z
f42b12646d
fix: handle object-format capabilities in normalizeCapabilities
...
When capabilities is configured as an object (e.g., { inlineButtons: "dm" })
instead of a string array, normalizeCapabilities() would crash with
"capabilities.map is not a function".
This can occur when using the new Telegram inline buttons scoping feature:
channels.telegram.capabilities.inlineButtons = "dm"
The fix adds an Array.isArray() guard to return undefined for non-array
capabilities, allowing channel-specific handlers (like
resolveTelegramInlineButtonsScope) to process the object format separately.
Fixes crash when using object-format TelegramCapabilitiesConfig.
2026-01-17 05:11:57 +00:00
Peter Steinberger
572e04d5fb
refactor(cli): split outbound send deps
2026-01-17 05:06:39 +00:00
Peter Steinberger
bc49c20434
fix: finalize inbound contexts
2026-01-17 05:06:39 +00:00
Peter Steinberger
4b085f23e0
docs: note live target cache refresh
...
Co-authored-by: Thinh Dinh <tobalsan@users.noreply.github.com >
2026-01-17 05:00:15 +00:00
Peter Steinberger
c4ea25a509
feat: add exec pty support
2026-01-17 04:57:11 +00:00
Peter Steinberger
312cb75c50
fix: trim /status oauth output
2026-01-17 04:54:28 +00:00
Peter Steinberger
ee738e6578
test: fix mocks for target resolver
2026-01-17 04:41:02 +00:00
Peter Steinberger
fcb7c9ff65
refactor: unify media understanding pipeline
2026-01-17 04:39:00 +00:00
Peter Steinberger
49ecbd8fea
test: expand accountId routing coverage
...
Co-authored-by: adam91holt <adam91holt@users.noreply.github.com >
2026-01-17 04:33:24 +00:00
Peter Steinberger
19ee6699d2
refactor: clarify subagent announce origin
...
Co-authored-by: adam91holt <adam91holt@users.noreply.github.com >
2026-01-17 04:33:24 +00:00
Peter Steinberger
5fcc9b3244
refactor: centralize target errors and cache lookups
2026-01-17 04:28:22 +00:00
Peter Steinberger
3efc5e54fa
fix: preserve account routing for explicit targets
...
Co-authored-by: adam91holt <adam91holt@users.noreply.github.com >
2026-01-17 04:24:59 +00:00
Peter Steinberger
780c811146
refactor: migrate subagent registry store v2
...
Co-authored-by: adam91holt <adam91holt@users.noreply.github.com >
2026-01-17 04:24:59 +00:00
Peter Steinberger
4f37f66264
refactor: normalize delivery context
...
Co-authored-by: adam91holt <adam91holt@users.noreply.github.com >
2026-01-17 04:24:59 +00:00
Peter Steinberger
8ebfa2950d
refactor: align message target wording
2026-01-17 04:18:59 +00:00
Peter Steinberger
9a60d431c5
docs: credit #1034 in changelog
2026-01-17 04:15:46 +00:00
Peter Steinberger
6e4d86f426
refactor: require target for message actions
2026-01-17 04:15:46 +00:00
Peter Steinberger
87cecd0268
refactor: align channel chatType
2026-01-17 04:13:06 +00:00
Peter Steinberger
388b2bce01
refactor: add inbound context helpers
2026-01-17 04:05:34 +00:00
Peter Steinberger
a2b5b1f0cb
refactor: normalize inbound context
2026-01-17 04:05:33 +00:00
Peter Steinberger
9f4b7a1683
fix: normalize subagent announce delivery origin
...
Co-authored-by: Adam Holt <mail@adamholt.co.nz >
2026-01-17 04:03:28 +00:00
Peter Steinberger
dd68faef23
refactor: split message tool schema + action handling
2026-01-17 03:58:55 +00:00
Peter Steinberger
97cfa0846c
chore: remove legacy transcription helpers
2026-01-17 03:54:46 +00:00
Peter Steinberger
1b973f7506
feat: add inbound media understanding
...
Co-authored-by: Tristan Manchester <tmanchester96@gmail.com >
2026-01-17 03:54:46 +00:00
Peter Steinberger
4b749f1b8f
refactor: share telegram caption splitting
2026-01-17 03:50:09 +00:00
Peter Steinberger
7f1f9473a0
refactor: dedupe message action helpers
2026-01-17 03:46:03 +00:00
Peter Steinberger
a32e5d040c
Merge pull request #1063 from mukhtharcm/fix/telegram-caption-split
...
fix(telegram): split long captions into follow-up messages
2026-01-17 03:42:13 +00:00
Peter Steinberger
a82217a5f3
chore: format + regenerate protocol
2026-01-17 03:40:49 +00:00
Peter Steinberger
09bed2ccde
refactor: centralize outbound policy + target schema
2026-01-17 03:33:56 +00:00
Peter Steinberger
3af391eec7
refactor: centralize group sender identity
2026-01-17 03:32:48 +00:00
Peter Steinberger
204309dd3c
Merge pull request #1064 from connorshea/main
...
fix: Fix oxlint config file name and use a valid config.
2026-01-17 03:26:09 +00:00
Peter Steinberger
3fcd6fadf3
fix: land oxlint config follow-ups ( #1064 ) (thanks @connorshea)
2026-01-17 03:25:05 +00:00
Connor Shea
78136c4368
Update oxlint config to put ignore pattern inside the oxlint config.
2026-01-17 03:19:42 +00:00
Connor Shea
25edbdacc2
Fix config file
2026-01-17 03:19:42 +00:00
Connor Shea
451532f6f1
Fix oxlint config file name and use a valid config.
2026-01-17 03:19:42 +00:00
Peter Steinberger
bc7d603867
test: expand accountId delivery coverage
...
Co-authored-by: Adam Holt <adam91holt@users.noreply.github.com >
2026-01-17 03:17:33 +00:00
Peter Steinberger
46015a3dd8
feat: add cross-context messaging resolver
...
Co-authored-by: Thinh Dinh <tobalsan@users.noreply.github.com >
2026-01-17 03:17:13 +00:00
Peter Steinberger
1481a3d90f
fix: include sender info for iMessage/Signal group messages
2026-01-17 02:52:01 +00:00
Peter Steinberger
96a1d03f08
fix: remove stale previousSessionEntry param
2026-01-17 02:52:01 +00:00
Peter Steinberger
0291105913
fix: thread accountId through subagent announce delivery
...
Co-authored-by: Adam Holt <adam91holt@users.noreply.github.com >
2026-01-17 02:45:18 +00:00
Peter Steinberger
dbf8829283
docs: clarify remote access setups
2026-01-17 02:19:16 +00:00
Muhammed Mukhthar CM
02184dd055
fix(telegram): split long captions into follow-up messages
2026-01-17 02:16:01 +00:00
Peter Steinberger
d5332ae29a
fix: thread accountId through subagent announce
...
Co-authored-by: Adam Holt <adam91holt@users.noreply.github.com >
2026-01-17 02:09:35 +00:00
Peter Steinberger
4ba6f6e8ee
chore: update PR landing rule
2026-01-17 02:06:36 +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
3fb699a84b
style: apply oxfmt
2026-01-17 01:55:42 +00:00
Peter Steinberger
767f55b127
fix: wire previous session entry and stabilize jpeg test
2026-01-17 01:55:35 +00:00
Peter Steinberger
20897e943f
docs: credit ThomsenDrake
2026-01-17 01:46:29 +00:00
Peter Steinberger
2d1078fc52
docs: note NO_REPLY guidance for message tool
2026-01-17 01:44:20 +00:00
Peter Steinberger
19016f16e0
fix: queue subagent announce delivery
2026-01-17 01:44:13 +00:00
Peter Steinberger
b8e3725106
docs: expand internal hooks intro
2026-01-17 01:40:09 +00:00
Peter Steinberger
413dfc6d6d
docs: add beginner intro for internal hooks
2026-01-17 01:35:46 +00:00
Peter Steinberger
faba508fe0
feat: add internal hooks system
2026-01-17 01:31:57 +00:00
Peter Steinberger
a76cbc43bb
fix(browser): remote profile tab ops follow-up ( #1060 ) (thanks @mukhtharcm)
...
Landed via follow-up to #1057 .
Gate: pnpm lint && pnpm build && pnpm test
2026-01-17 01:28:22 +00:00
Peter Steinberger
e16ce1a0a1
style: format health/status files
2026-01-17 01:25:10 +00:00
Peter Steinberger
fa2b92bb00
docs: update health/status + doctor docs
2026-01-17 01:19:43 +00:00
Peter Steinberger
c592f395df
test: update health/status and legacy migration coverage
2026-01-17 01:19:43 +00:00
Peter Steinberger
f14d622c0f
refactor: centralize account bindings + health probes
2026-01-17 01:19:43 +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
fd49f39a72
Merge pull request #1057 from mukhtharcm/feat/browser-persistent-tabs-remote-profiles
...
feat(browser): use persistent Playwright connections for remote profile tab operations
2026-01-17 00:57:58 +00:00
Peter Steinberger
bbef30daa5
fix: browser remote tab ops harden ( #1057 ) (thanks @mukhtharcm)
2026-01-17 00:57:35 +00:00
Peter Steinberger
c8b865d582
Merge pull request #1040 from clawdbot/shadow/config-ui
...
Config: schema-driven channels and settings
2026-01-17 00:45:42 +00:00
Peter Steinberger
4b7c6d4f8f
fix: note config-first channel auth ( #1040 ) (thanks @thewilloftheshadow)
2026-01-17 00:43:37 +00:00
Peter Steinberger
c22d2b2ffd
docs: fix changelog after 2026.1.15 release
2026-01-17 00:43:37 +00:00
Peter Steinberger
0179717d61
feat: enhance web_fetch fallbacks
2026-01-17 00:43:37 +00:00
Peter Steinberger
abf4c02a0d
feat: improve web_fetch readability extraction
2026-01-17 00:43:05 +00:00
Peter Steinberger
03a9907055
fix: prefer config tokens over env for discord/telegram
2026-01-17 00:43:05 +00:00
Peter Steinberger
66c99e1608
feat(ui): delete sessions from Control UI
2026-01-17 00:43:05 +00:00
Peter Steinberger
15a95f988a
feat: expand skill command registration
2026-01-17 00:43:05 +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
cc2d617ea6
Docs: note schema-driven config UI
2026-01-17 00:43:05 +00:00
Shadow
503aad1417
Changelog: note schema-driven channels UI
2026-01-17 00:43:05 +00:00
Shadow
1ad26d6fea
Config: schema-driven channels and settings
2026-01-17 00:43:05 +00:00
Muhammed Mukhthar CM
02a4de0029
feat(browser): use persistent Playwright connections for remote profile tab operations
...
For remote CDP profiles (e.g., Browserless), tab operations now use Playwright's
persistent connection instead of stateless HTTP requests. This ensures tabs
persist across operations rather than being terminated after each request.
Changes:
- pw-session.ts: Add listPagesViaPlaywright, createPageViaPlaywright, and
closePageByTargetIdViaPlaywright functions using the cached Playwright connection
- pw-ai.ts: Export new functions for dynamic import
- server-context.ts: For remote profiles (!cdpIsLoopback), use Playwright-based
tab operations; local profiles continue using HTTP endpoints
- server-context.ts: Fix ensureTabAvailable to not require wsUrl for remote
profiles since Playwright accesses pages directly
This is a follow-up to #895 which added authentication support for remote CDP
profiles. The original PR description mentioned switching to persistent Playwright
connections for tab operations, but only the auth changes were merged.
2026-01-17 00:42:53 +00:00
Peter Steinberger
bcfc9bead5
docs: expand iMessage remote setup
2026-01-17 00:39:48 +00:00
Peter Steinberger
1be0e9b9fb
Merge pull request #1054 from tyler6204/fix/imsg-remote-attachments
...
iMessage: Add remote attachment support for VM/SSH deployments
2026-01-17 00:37:21 +00:00
Peter Steinberger
6e5eddf292
fix: avoid imessage rpc restart loop
2026-01-17 00:35:24 +00:00
Peter Steinberger
64a2ef4a18
refactor: simplify env var substitution scan
2026-01-17 00:34:00 +00:00
Peter Steinberger
25399d39cb
fix: harden env var substitution parsing ( #1044 ) (thanks @sebslight)
2026-01-17 00:29:08 +00:00
Peter Steinberger
731080375a
Merge pull request #1044 from sebslight/env-var-substitution
...
feat(config): add env var substitution in config values
2026-01-17 00:25:26 +00:00
Sash Catanzarite
89bbbe75a6
fix: honor message tool channel for tool dedupe ( #1053 )
...
- Treat message tool `channel` as provider hint for dedupe/suppression.
- Prefer NO_REPLY after message tool sends to avoid duplicate replies.
Co-authored-by: Sash Catanzarite <1166151+thesash@users.noreply.github.com >
2026-01-17 00:23:51 +00:00
Peter Steinberger
f69298d7eb
docs: clarify model key format
2026-01-17 00:15:37 +00:00
Peter Steinberger
6280305899
Merge pull request #1049 from YuriNachos/fix/issue-1020-sessions-perms
...
fix(sessions): preserve 0600 permissions on sessions.json writes
2026-01-17 00:07:49 +00:00
Peter Steinberger
543d1ea3c1
docs: fix changelog after 2026.1.15 release
2026-01-17 00:03:56 +00:00
Peter Steinberger
1569db1754
style: format with oxfmt
2026-01-17 00:03:00 +00:00
Peter Steinberger
c54c665f97
feat: enhance web_fetch fallbacks
2026-01-17 00:00:49 +00:00
Peter Steinberger
a84000c6d9
docs(changelog): note PR #1050 fixes
...
Co-authored-by: Yurii Chukhlib <yuri.v.chu@gmail.com >
2026-01-16 23:59:04 +00:00
Peter Steinberger
a979a62f8e
fix(openai-image-gen): handle url and b64_json responses
...
Co-authored-by: Yurii Chukhlib <yuri.v.chu@gmail.com >
2026-01-16 23:59:04 +00:00
Peter Steinberger
13e2dd97a7
fix(session): preserve overrides on /new reset
...
Co-authored-by: Yurii Chukhlib <yuri.v.chu@gmail.com >
2026-01-16 23:59:04 +00:00
Yurii Chukhlib
6bba84b043
fix(channels): include linked field in WhatsApp describeAccount
...
Fixes #1030
The describeAccount function for WhatsApp was not returning the
linked field, causing the Channels status section to show
"Not linked" even when WhatsApp was properly linked and working.
The fix adds the linked field to describeAccount, set to the same
value as configured (Boolean(account.authDir)). This ensures that
the Channels section and Health section show consistent status.
2026-01-16 23:59:04 +00:00
Peter Steinberger
e31251293b
fix: scope history injection to pending-only
2026-01-16 23:52:42 +00:00
Tyler Yust
7a9ff18260
iMessage: Add remote attachment support for VM/SSH deployments
2026-01-16 15:51:42 -08:00
Peter Steinberger
56ed5cc2d9
fix: prefer config over env for matrix creds
2026-01-16 23:24:18 +00:00
Peter Steinberger
af31e0d969
docs: redirect /install/node to install section
2026-01-16 23:18:50 +00:00
Peter Steinberger
37fa4f7eef
feat: improve web_fetch readability extraction
2026-01-16 23:18:01 +00:00
Peter Steinberger
9aad6dfe1b
Merge pull request #1046 from YuriNachos/feature/web-search-localization
...
feat(web-search): add country and language parameters
2026-01-16 23:17:46 +00:00
Peter Steinberger
6b8db36a15
docs: clarify Brave web_search defaults ( #1046 ) (thanks @YuriNachos)
2026-01-16 23:16:59 +00:00
Yurii Chukhlib
171060541a
docs(web-search): document country and language parameters
...
Co-Authored-By: Claude <noreply@anthropic.com >
2026-01-16 23:14:33 +00:00
Yurii Chukhlib
003547c818
test(web-search): add tests for country and language parameters
...
Added three new test cases to verify the new country, search_lang, and ui_lang
parameters are correctly passed to the Brave Search API.
Co-Authored-By: Claude <noreply@anthropic.com >
2026-01-16 23:14:33 +00:00
Yurii Chukhlib
c4e1064066
feat(web-search): pass country and language params to Brave API
...
- Add country, search_lang, and ui_lang optional parameters to runWebSearch
- Pass new parameters to Brave Search API as URL query parameters
- Update cache key to include localization parameters
- Wire parameters through createWebSearchTool execute function
2026-01-16 23:14:33 +00:00
Yurii Chukhlib
d163dbcfcd
feat(web-search): add country and language optional parameters to schema
2026-01-16 23:14:33 +00:00
Yurii Chukhlib
2acfeb1096
fix(openai-image-gen): remove deprecated response_format, use URL download
2026-01-16 23:14:33 +00:00
Yurii Chukhlib
b3b6d421cc
fix(session): reset compactionCount on /new and /reset
2026-01-16 23:14:33 +00:00
Yurii Chukhlib
cf72b9db3c
fix(sessions): preserve 0600 permissions on sessions.json writes
2026-01-16 23:14:33 +00:00
Peter Steinberger
106e308953
fix: prefer config tokens over env for discord/telegram
2026-01-16 23:13:00 +00:00
Peter Steinberger
bf72a126d1
docs: add /help hub and Node/npm PATH guide
2026-01-16 23:10:29 +00:00
Peter Steinberger
28a5d124c3
fix: stabilize transport-ready test timing
2026-01-16 23:03:12 +00:00
Peter Steinberger
b4045e6adb
fix: remove stale pnpm patch entry
2026-01-16 22:56:08 +00:00
Peter Steinberger
a7bec3340f
fix: drop unsigned gemini tool calls from history
2026-01-16 22:43:16 +00:00
Peter Steinberger
a4e99ecdaf
chore: remove patch references
2026-01-16 22:41:57 +00:00
Peter Steinberger
dcd20d564f
docs: expand directory CLI guide
2026-01-16 22:40:36 +00:00
Peter Steinberger
59f6ea9b21
feat: directory for plugin channels
2026-01-16 22:40:36 +00:00
Peter Steinberger
e44f28bd4f
feat: unify directory across channels
2026-01-16 22:40:36 +00:00
Peter Steinberger
929b86e302
feat(ui): delete sessions from Control UI
2026-01-16 22:33:47 +00:00
Peter Steinberger
76d3d58b5c
chore: oxfmt
2026-01-16 22:33:47 +00:00
Peter Steinberger
548a32c8d4
chore: drop unused patches
2026-01-16 22:31:21 +00:00
Peter Steinberger
500c75b4f0
fix: align ZAI thinking toggles
2026-01-16 22:26:43 +00:00
Peter Steinberger
3567dc4a47
fix: hard-stop sessions.delete cleanup
2026-01-16 22:24:13 +00:00
Peter Steinberger
7df37c2dbd
fix: override tar to 7.5.3
2026-01-16 22:07:34 +00:00
Peter Steinberger
28a4cbc4ef
docs: mention stopping sub-agents
2026-01-16 22:05:13 +00:00
Peter Steinberger
21fe4d9ded
fix: bump tar to 7.5.3
2026-01-16 21:58:32 +00:00
Peter Steinberger
05d149a49b
fix: treat reply-to-bot as implicit mention across channels
2026-01-16 21:51:01 +00:00
Peter Steinberger
97a41a6509
fix: suppress zero sub-agent stop note
2026-01-16 21:41:55 +00:00
Peter Steinberger
a0be85c34c
fix: /stop aborts subagents
2026-01-16 21:37:22 +00:00
Sebastian
a36735b913
feat(config): add env var substitution in config values
...
Support ${VAR_NAME} syntax in any config string value, substituted at
config load time. Useful for referencing API keys and secrets from
environment variables without hardcoding them in the config file.
- Only uppercase env vars matched: [A-Z_][A-Z0-9_]*
- Missing/empty env vars throw MissingEnvVarError with path context
- Escape with $${VAR} to output literal ${VAR}
- Works with $include (included files also get substitution)
Closes #1009
2026-01-16 16:32:07 -05:00
tsu
390bd11f33
feat: add zalouser channel + directory CLI ( #1032 ) (thanks @suminhthanh)
...
- Unified UX: channels login + message send; no plugin-specific top-level command\n- Added generic directory CLI for channel identity/groups\n- Docs: channel + plugin pages
2026-01-16 21:28:18 +00:00
Peter Steinberger
16768a9998
fix: start fresh cron sessions each run
2026-01-16 21:27:56 +00:00
adityashaw2
e9d6869290
Telegram: Add reply-chain detection to bypass mention requirement ( #1038 )
...
* Telegram: add reply-chain detection to bypass mention requirement
* fix: allow telegram reply-chain mention bypass (#1038 ) (thanks @adityashaw2)
---------
Co-authored-by: Aditya Shaw <aditya@adityashaw.dev >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-01-16 21:24:45 +00:00
Peter Steinberger
9072e35f08
fix: hard-abort clears queues on /stop
2026-01-16 21:15:25 +00:00
Peter Steinberger
d887027e95
style: run oxfmt
2026-01-16 21:11:55 +00:00
Peter Steinberger
168a0f4998
Merge pull request #1016 from timolins/main
...
Models: add Vercel AI Gateway auth
2026-01-16 21:06:56 +00:00
Peter Steinberger
f3a37664d5
fix: tighten Vercel AI Gateway onboarding docs/tests ( #1016 ) (thanks @timolins)
2026-01-16 21:06:21 +00:00
Peter Steinberger
8bcbe68637
chore: sync Peekaboo submodule on install
2026-01-16 21:04:58 +00:00
Timo Lins
beb9eac5f7
Models: add Vercel AI Gateway auth
2026-01-16 21:00:15 +00:00
Peter Steinberger
0dcffcd5b0
fix: repair orphaned user turns before embedded prompts
2026-01-16 20:52:18 +00:00
Peter Steinberger
56efbce31e
feat: enable telegram reaction notifications by default
2026-01-16 20:51:42 +00:00
Peter Steinberger
e7c42884fc
test: cover transport readiness waits
2026-01-16 20:48:43 +00:00
Peter Steinberger
08c0405f0f
fix: quiet skill command normalization logs
2026-01-16 20:37:23 +00:00
Peter Steinberger
470add877c
feat: default telegram reaction level minimal
2026-01-16 20:35:47 +00:00
Peter Steinberger
aaa310c047
fix: bound signal/imessage transport readiness waits
...
Co-authored-by: Szpadel <1857251+Szpadel@users.noreply.github.com >
2026-01-16 20:33:04 +00:00
Ruby
0cd24137e8
feat: add session.identityLinks for cross-platform DM session linking ( #1033 )
...
Co-authored-by: Shadow <shadow@clawd.bot >
2026-01-16 14:23:22 -06:00
Peter Steinberger
8ffb8cc363
Merge pull request #1013 from marcmarg/fix/format-parameter-and-subagent-auth
...
Fix format parameter conflict and subagent auth inheritance
2026-01-16 20:20:40 +00:00
Peter Steinberger
7a9854cb06
chore: update clawtributors
2026-01-16 20:20:26 +00:00
Marc
5ee4456c6e
fix: merge subagent auth profiles
2026-01-16 20:20:26 +00:00
Marc
de31583021
fix: avoid format keyword in tool schemas
...
Co-authored-by: marcmarg <marcmarg@users.noreply.github.com >
2026-01-16 20:20:26 +00:00
Peter Steinberger
38b49aa0f6
feat: expand skill command registration
2026-01-16 20:17:32 +00:00
Peter Steinberger
69761e8a51
feat: scope telegram inline buttons
2026-01-16 20:16:41 +00:00
Peter Steinberger
3431d3d115
chore: tweak tool call narration guidance ( #1008 )
...
Co-authored-by: Christoph Nakazawa <christoph.pojer@gmail.com >
2026-01-16 19:56:04 +00:00
Peter Steinberger
fe9e027d58
test: deflake background exec timeout
2026-01-16 19:48:52 +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
624ff09314
test: expand gateway auth probe coverage
2026-01-16 19:16:03 +00:00
Peter Steinberger
c8003ae472
docs: update changelog for gateway probe fix ( #1011 ) (thanks @ivanrvpereira)
2026-01-16 19:07:44 +00:00
Peter Steinberger
6bf627bce8
Merge pull request #1011 from ivanrvpereira/fix/security-audit-gateway-auth
...
fix(security): resolve local auth for gateway probe
2026-01-16 19:05:07 +00:00
henrymascot
08525435e0
showcase: add Linear CLI and Beeper CLI
...
- @NessZerra Linear CLI - manage Linear issues from terminal, works with Claude Code/Clawdbot
- @jules Beeper CLI - read/send/archive messages via Beeper Desktop MCP API
2026-01-16 19:05:02 +00:00
Yurii Chukhlib
9e39a56033
fix(sessions): preserve 0600 permissions on sessions.json writes
2026-01-16 19:44:14 +01:00
Shadow
026cf1130e
Changelog: note Discord skill truncation
2026-01-16 10:03:53 -06:00
Wilkins
bb14b19922
fix: truncate skill command descriptions to 100 chars for Discord ( #1018 )
...
* fix: truncate skill command descriptions to 100 chars for Discord
Discord slash commands have a 100 character limit for descriptions.
Skill descriptions were not being truncated, causing command registration
to fail with an empty error from the Discord API.
* style: format
* style: format
2026-01-16 10:01:59 -06:00
Marc
78279fb758
fix: inherit auth-profiles from main agent for subagents
...
When a subagent is spawned, it creates a new agent directory but has no
auth-profiles.json. This adds a fallback in ensureAuthProfileStore() to
inherit auth-profiles from the main agent when the subagent has none,
ensuring subagents can use OAuth tokens without manual file copying.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-16 15:51:50 +01:00
Marc
38cf90f6db
fix: rename format parameter to avoid JSON Schema keyword conflict
...
- Rename `format` to `snapshotFormat` in browser-tool schema and implementation
- Rename `format` to `outputFormat` in canvas-tool schema and implementation
- The parameter name `format` conflicts with JSON Schema keyword, causing
Google Cloud Code Assist to reject the schema as invalid
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-16 15:50:02 +01:00
Ivan Pereira
544ca062a3
test(security): add coverage for gateway probe auth selection
2026-01-16 13:31:01 +00:00
Ivan Pereira
be9aa5494a
fix(security): resolve local auth for gateway probe
2026-01-16 13:19:55 +00:00
Peter Steinberger
0d6af15d1c
feat: add user-invocable skill commands
2026-01-16 12:10:29 +00:00
Peter Steinberger
eda9410bce
fix: stabilize docker test suite
2026-01-16 11:47:14 +00:00
Peter Steinberger
a51ed8a5dd
fix(cli): auto-update global installs
2026-01-16 11:45:37 +00:00
Peter Steinberger
19bcbf85df
fix: scope whatsapp self-chat response prefix
2026-01-16 10:54:11 +00:00
Peter Steinberger
f49d0e5476
fix: expand exec abort/timeout coverage
2026-01-16 10:43:22 +00:00
Peter Steinberger
9c4c9c5edd
chore: release 2026.1.15
2026-01-16 10:37:30 +00:00
gerardward2007
0f34255359
chore: ignore local identity files ( #1001 ) (thanks @gerardward2007)
...
* chore: ignore local identity files (IDENTITY.md, USER.md)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
* chore: ignore local identity files (#1001 ) (thanks @gerardward2007)
* chore: format session status tool
* chore: format bash exec background abort test
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-01-16 10:30:04 +00:00
tosh-hamburg
de5fb65cb8
fix: docker-setup fails on Synology because of problem with bun ( #1002 )
2026-01-16 10:03:56 +00:00
Roshan Singh
e773f84e39
fix: keep background exec aborts from killing sessions ( #1000 ) (thanks @roshanasingh4)
...
When exec returns early in background mode, the tool-call AbortSignal can fire and previously caused killProcessTree(SIGKILL). Ignore abort after yielding/backgrounding so background sessions keep running.
2026-01-16 10:01:39 +00:00
Peter Steinberger
b969c216fc
docs: refresh unreleased highlights
2026-01-16 09:51:27 +00:00
Peter Steinberger
f51a4d2aca
docs: sort unreleased changelog
2026-01-16 09:46:12 +00:00
Peter Steinberger
30b3a9de30
fix: drop oauth status from session status
2026-01-16 09:39:12 +00:00
Peter Steinberger
0391f6553b
fix: correct minimax usage + show reset
2026-01-16 09:36:45 +00:00
Peter Steinberger
d0c986c4f0
feat: warn on weak model tiers
2026-01-16 09:34:37 +00:00
Peter Steinberger
384028e12e
refactor: unify session reset helper
2026-01-16 09:33:39 +00:00
Peter Steinberger
4c14d6c8db
chore: format web monitor inbox tests
2026-01-16 09:26:18 +00:00
Peter Steinberger
6fa437613b
fix: delete transcripts on role ordering reset
2026-01-16 09:20:16 +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
072c3dc55c
fix: suppress WhatsApp pairing replies for historical DMs
2026-01-16 09:10:44 +00:00
Peter Steinberger
83b3875131
docs: add control UI unauthorized FAQ hint
2026-01-16 09:07:20 +00:00
Peter Steinberger
a35083808c
chore: update macOS package lock
2026-01-16 09:06:23 +00:00
Peter Steinberger
3d3ec9d972
docs: add browserless remote CDP example
2026-01-16 09:05:30 +00:00
Peter Steinberger
9838a2850f
fix: reset sessions after role ordering conflicts
2026-01-16 09:04:04 +00:00
Peter Steinberger
6c6bc6ff1c
fix: add control UI auth guidance
2026-01-16 09:03:02 +00:00
Peter Steinberger
1791c1a765
feat: render native chat markdown via Textual
2026-01-16 09:02:27 +00:00
Peter Steinberger
6e53c061ff
fix: tune remote CDP timeouts
2026-01-16 09:01:25 +00:00
Peter Steinberger
1773f8aea2
fix: upgrade ws to wss for https CDP
2026-01-16 08:44:08 +00:00
Peter Steinberger
52bdf57743
Merge pull request #880 from mkbehr/openai-image-gen-fix
...
fix: Make openai-image-gen skill use appropriate defaults per model.
2026-01-16 08:42:13 +00:00
Peter Steinberger
b3ab24eb8e
fix: align image-gen defaults ( #880 ) (thanks @mkbehr)
2026-01-16 08:41:23 +00:00
Michael Behr
6ac1c1d6ea
fix(openai-image-gen): use correct file extension for output format
...
When --output-format is specified for GPT models, save files with
the correct extension (.webp, .jpeg, or .png) instead of always
using .png.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-16 08:37:57 +00:00
Michael Behr
7655a501d0
feat(openai-image-gen): add model-specific parameter support
...
- Auto-detect model and apply appropriate defaults for size/quality
- Add --background, --output-format, and --style parameters
- Enforce dall-e-3 count=1 limitation with automatic adjustment
- Omit quality parameter for dall-e-2 (not supported)
- Document model-specific parameters and supported values
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-16 08:37:57 +00:00
Peter Steinberger
3b1b14b0b1
Merge pull request #895 from mukhtharcm/feat/chrome-browser-improvements
...
feat(browser): add support for authenticated remote browser profiles
2026-01-16 08:32:02 +00:00
Peter Steinberger
bf15c87d2b
fix: support authenticated remote CDP URLs ( #895 ) (thanks @mukhtharcm)
2026-01-16 08:31:51 +00:00
Peter Steinberger
2dae4d382f
Merge pull request #860 from nachoiacovino/feat/telegram-custom-commands
...
feat(telegram): support custom commands in config
2026-01-16 08:26:26 +00:00
Peter Steinberger
e9a47a02d1
fix: stabilize macOS audio test and default browser detection
2026-01-16 08:25:39 +00:00
Peter Steinberger
929666a8c8
fix: add telegram custom commands ( #860 ) (thanks @nachoiacovino)
...
Co-authored-by: Nacho Iacovino <50103937+nachoiacovino@users.noreply.github.com >
2026-01-16 08:22:09 +00:00
Muhammed Mukhthar CM
cd409e5667
fix: exclude google-antigravity from history downgrade hack ( #894 )
...
* Agent: exclude google-antigravity from history downgrade hack
* Lint: fix formatting in test
* Lint: formatting and unused vars in test
* fix: preserve google-antigravity tool calls (#894 ) (thanks @mukhtharcm)
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-01-16 08:14:56 +00:00
Muhammed Mukhthar CM
8e80823b03
test(browser): fix missing getHeadersWithAuth mock in server tests
2026-01-16 08:11:00 +00:00
Muhammed Mukhthar CM
319afd192d
feat(browser): add support for remote playwright websocket auth
2026-01-16 08:11:00 +00:00
Muhammed Mukhthar CM
6e0daf0936
feat(browser): add support for authenticated remote CDP profiles
2026-01-16 08:10:32 +00:00
Peter Steinberger
d0cb4e092f
Merge pull request #845 from MatthieuBizien/fix/issue-841-openrouter-gemini
...
Agents: sanitize OpenRouter Gemini thoughtSignature
2026-01-16 08:03:40 +00:00
Peter Steinberger
f5a881c99d
fix: port OpenRouter Gemini sanitization to split files ( #845 ) (thanks @MatthieuBizien)
2026-01-16 08:02:56 +00:00
Peter Steinberger
66377fc030
fix: update macOS IPC tests
2026-01-16 07:58:35 +00:00
Matthieu Bizien
d8d295b0b3
Changelog: thank PR #845
2026-01-16 07:51:49 +00:00
Matthieu Bizien
ef36e24522
Agents: sanitize OpenRouter Gemini thoughtSignature
2026-01-16 07:51:49 +00:00
Palash Oswal
d43d4fcced
Gateway auth: accept local Tailscale Serve hostnames and tailnet IPs ( #885 )
...
* Gateway auth: accept local Tailscale Serve hostnames and tailnet IPs
* fix: allow local Tailscale Serve hostnames (#885 ) (thanks @oswalpalash)
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-01-16 07:51:25 +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
e479c870fd
fix: handle MiniMax coding plan usage payloads
2026-01-16 07:28:48 +00:00
Peter Steinberger
f2db894685
Merge pull request #992 from tyler6204/fix/tool-typing-race-condition
...
fix: send text between tool calls to channel immediately
2026-01-16 07:26:10 +00:00
Peter Steinberger
4f03283126
docs: add npm 1password publish steps
2026-01-16 07:08:07 +00:00
Peter Steinberger
ed7dec0975
feat: use dropdowns for access controls
2026-01-16 07:00:05 +00:00
Peter Steinberger
fbb3da506f
docs: clarify onboarding + sessions + heartbeats
2026-01-16 06:57:54 +00:00
Peter Steinberger
dfa6c5c2b3
fix(google): scrub tool schemas for gemini
2026-01-16 06:57:54 +00:00
Peter Steinberger
028eed5fe8
fix(browser): surface detection details and docs
2026-01-16 06:57:54 +00:00
Peter Steinberger
2b16a87f04
feat: add config get/set/unset helpers
2026-01-16 06:57:54 +00:00
Peter Steinberger
731049936d
Merge pull request #870 from JDIVE/fix/discord-actions-schema
...
fix(config): allow discord action flags in schema
2026-01-16 06:50:50 +00:00
Peter Steinberger
5a5b058ba0
fix: update discord action defaults ( #870 ) (thanks @JDIVE)
2026-01-16 06:50:27 +00:00
Jamie Openshaw
72f28be648
fix(config): allow discord action flags in schema
...
Ensure discord action flags survive config validation.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2026-01-16 06:48:25 +00:00
Peter Steinberger
ff645524d8
docs: move troubleshooting items from faq
2026-01-16 06:35:13 +00:00
Peter Steinberger
c534390bc0
chore: update a2ui bundle
2026-01-16 06:35:05 +00:00
Peter Steinberger
c5003e5441
fix: clear lint blockers
2026-01-16 06:35:05 +00:00
Peter Steinberger
0b3ebb0c63
test: stabilize slow and flaky tests
2026-01-16 06:24:58 +00:00
Peter Steinberger
23981496f9
fix: resolve bridge warnings
2026-01-16 06:15:45 +00:00
Peter Steinberger
f2e425dc2b
Merge pull request #995 from roshanasingh4/fix/systemd-execstart-whitespace
...
Fix systemd ExecStart whitespace parsing
2026-01-16 06:03:35 +00:00
Peter Steinberger
e48d68bbc7
Merge pull request #993 from cpojer/reminder-improvement
...
Improve reminder text generation.
2026-01-16 06:03:04 +00:00
Peter Steinberger
842fc8d08b
fix: repair launchd status parsing
2026-01-16 06:01:28 +00:00
Peter Steinberger
54ec14262b
feat: add plugin update tracking
2026-01-16 05:55:05 +00:00
Peter Steinberger
d0c70178e0
docs: fix FAQ reset anchor
2026-01-16 05:54:56 +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
41d44021e7
feat(browser): prefer default chromium browser
2026-01-16 05:37:53 +00:00
Peter Steinberger
1ab1e312b2
feat: add TLS for node bridge
2026-01-16 05:28:40 +00:00
Roshan Singh
fa9aafce83
Fix systemd ExecStart parsing whitespace
2026-01-16 05:25:13 +00:00
Tyler Yust
0d5dec4c66
fix: handle async tool start handler rejections
...
Add .catch() to handleToolExecutionStart call to prevent unhandled
promise rejections when onAgentEvent or typing signaling fails.
2026-01-15 21:10:52 -08:00
cpojer
b2d5889f6e
Improve reminder text generation.
2026-01-16 14:03:17 +09:00
Tyler Yust
2ee71e4154
fix: send text between tool calls to channel immediately
...
Previously, when block streaming was disabled (the default), text generated
between tool calls would only appear after all tools completed. This was
because onBlockReply wasn't passed to the subscription when block streaming
was off, so flushBlockReplyBuffer() before tool execution did nothing.
Now onBlockReply is always passed, and when block streaming is disabled,
block replies are sent directly during tool flush. Directly sent payloads
are tracked to avoid duplicates in final payloads.
Also fixes a race condition where tool summaries could be emitted before
the typing indicator started by awaiting onAgentEvent in tool handlers.
2026-01-15 20:55:52 -08:00
Peter Steinberger
1656f491fd
fix: normalize pairing aliases and webhook guard ( #991 ) (thanks @longmaba)
2026-01-16 04:55:16 +00:00
Peter Steinberger
a057b3c9e8
Merge pull request #991 from longmaba/fix/zalo-pairing-and-webhook
...
fix(zalo): fix pairing channel detection and webhook payload format
2026-01-16 04:54:08 +00:00
Peter Steinberger
236b27cb3a
docs: align plugin changelogs
2026-01-16 04:15:48 +00:00
Peter Steinberger
1634abf293
docs: expand msteams plugin changelog
2026-01-16 04:15:48 +00:00
Ubuntu
ca9688b5cc
feat(session): add dmScope for multi-user DM isolation
...
Co-authored-by: Alphonse-arianee <Alphonse-arianee@users.noreply.github.com >
2026-01-16 04:13:10 +00:00
Peter Steinberger
e6364d031d
fix: stabilize windows queue + pairing tests
2026-01-16 04:02:43 +00:00
Peter Steinberger
01c8d099ad
fix: repair CI formatting + launchd test
2026-01-16 03:52:47 +00:00
Peter Steinberger
f6e619f078
fix: normalize daemon unit paths
2026-01-16 03:47:26 +00:00
Peter Steinberger
b2b331230b
feat: mac node exec policy + remote skills hot reload
2026-01-16 03:45:06 +00:00
Long
c0c9742e44
fix(zalo): fix pairing channel detection and webhook payload format
...
Amp-Thread-ID: https://ampcode.com/threads/T-019bc4e0-fcb1-77be-b0b5-0d498f0c7197
Co-authored-by: Amp <amp@ampcode.com >
2026-01-16 10:43:14 +07:00
Peter Steinberger
abcca86e4e
chore: format and sync protocol outputs
2026-01-16 03:30:56 +00:00
Peter Steinberger
a5d8f89b53
feat(browser): prefer Chrome default + add Brave/Edge fallbacks
...
Co-authored-by: Christoph Nakazawa <christoph.pojer@gmail.com >
2026-01-16 03:28:56 +00:00
Peter Steinberger
a0d2a7232e
fix: allow media-only sends
2026-01-16 03:15:26 +00:00
Peter Steinberger
f449115ec5
test: extend vitest timeouts
2026-01-16 03:11:16 +00:00
Peter Steinberger
16bc4cdef3
chore: drop legacy Relay signing
2026-01-16 03:11:16 +00:00
Peter Steinberger
23e4ba845c
fix: sanitize user-facing errors and strip final tags
...
Co-authored-by: Drake Thomsen <drake.thomsen@example.com >
2026-01-16 03:01:23 +00:00
Peter Steinberger
d9f9e93dee
feat!: move msteams to plugin
2026-01-16 02:59:43 +00:00
Peter Steinberger
dae34f3a61
docs: clarify setup-token location
2026-01-16 02:53:40 +00:00
Adam Holt
af61b353a4
docs(showcase): update Dream Team card with architecture articles
...
Combine Multi-Agent Swarm card with new technical write-ups:
- Link to orchestrated-ai-articles repo (manifesto + architecture)
- Keep clawdspace link for agent sandboxing
- Add blog post link
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-16 02:52:27 +00:00
Peter Steinberger
29476b222d
fix: restore status usage summary output
2026-01-16 02:49:18 +00:00
Peter Steinberger
e7c16cc0e6
docs: clarify setup-token flows
2026-01-16 02:36:32 +00:00
Peter Steinberger
3dddbe1053
fix: ignore properties in google tool schema warnings
2026-01-16 02:35:55 +00:00
Peter Steinberger
2dea6bfa7e
docs: clarify gog body-file usage
...
Co-authored-by: John Young <johntheyoung@users.noreply.github.com >
2026-01-16 02:23:41 +00:00
Peter Steinberger
04e3bfed35
docs: clarify Anthropic setup-token
2026-01-16 02:19:57 +00:00
Peter Steinberger
3e32050601
fix: correct final tag strip typing
2026-01-16 02:16:17 +00:00
Peter Steinberger
7fb45ed9b8
fix: strip final tags from session messages
2026-01-16 02:16:17 +00:00
Peter Steinberger
b7ba94f0c1
fix: harden antigravity claude support ( #968 )
...
Co-authored-by: Max <rdev@users.noreply.github.com >
2026-01-16 02:16:17 +00:00
Peter Steinberger
5b827528f8
fix: show oauth usage in /status
2026-01-16 02:06:27 +00:00
Peter Steinberger
409e33d9c2
Merge pull request #960 from kkarimi/fix/mac-node-bridge-tunnel-865
...
macOS: prefer bridge tunnel port in remote mode
2026-01-16 02:00:23 +00:00
Peter Steinberger
747277d914
fix: document macOS remote tunnels ( #960 ) (thanks @kkarimi)
2026-01-16 01:59:14 +00:00
Nima Karimi
068dca3366
Tests: apply suite timeout in node bridge test
2026-01-16 01:56:23 +00:00
Nima Karimi
336a1ad9cf
Tests: extend node bridge server timeout
2026-01-16 01:56:23 +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
Gustavo Madeira Santana
7c38b535f6
Document inline buttons configuration for Telegram ( #984 )
2026-01-15 19:55:03 -06:00
Peter Steinberger
af370ab23e
fix: align config types after upstream changes
2026-01-16 01:49:07 +00:00
Peter Steinberger
1210657fda
chore: bump Peekaboo submodule
2026-01-16 01:44:12 +00:00
Peter Steinberger
12afec953f
test: stabilize sandbox config tests
2026-01-16 01:44:12 +00:00
Peter Steinberger
8e2707e232
fix: cleanup suspended CLI processes ( #978 ) (thanks @Nachx639)
2026-01-16 01:39:33 +00:00
Tu Nombre Real
8befe7f8a7
fix: cleanup suspended Clawdbot CLI processes
...
Add cleanupSuspendedCliProcesses() to kill accumulated suspended processes
from isolated sessions that don't share sessionIds (e.g., cron jobs).
- Only targets Clawdbot processes (--session-id pattern)
- Only kills suspended processes (state T)
- Only triggers when >10 processes accumulated
- Does not affect user's Claude Code sessions
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-16 01:38:03 +00:00
Peter Steinberger
a70fcc8ae0
chore(cli): set process title
2026-01-16 01:33:28 +00:00
Peter Steinberger
fa521154ff
fix: show disabled channels in onboarding picker
2026-01-16 01:29:25 +00:00
Peter Steinberger
dffc1a4dcd
fix: switch channel onboarding to single-select loop
2026-01-16 01:21:17 +00:00
Peter Steinberger
61e385b331
feat: add per-agent heartbeat config
2026-01-16 01:17:34 +00:00
Peter Steinberger
f8f319713f
fix: show provider/model labels in TUI
2026-01-16 01:13:14 +00:00
Wes
509215e935
macOS: stop flapping gateway port
2026-01-15 17:12:14 -08:00
Wes
f726656d1e
macOS: start gateway before app in restart-mac
2026-01-15 17:12:14 -08:00
Wes
30d3e1da21
CLI: fix status --all gateway auth selection
2026-01-15 17:12:14 -08:00
Peter Steinberger
bb665bf22c
fix: persist local gateway mode in configure wizard
2026-01-16 01:05:55 +00:00
Peter Steinberger
f17dcb6213
fix: refine channel onboarding selection flow
2026-01-16 01:05:50 +00:00
Peter Steinberger
d54c101100
docs: update release checklist
2026-01-16 00:42:48 +00:00
Peter Steinberger
96daa51d45
docs: document provider auth plugins
2026-01-16 00:42:48 +00:00
Peter Steinberger
6084421ec6
feat: add provider auth plugins
2026-01-16 00:42:28 +00:00
Peter Steinberger
bca5c0d569
refactor: system prompt sections + docs/tests
2026-01-16 00:28:43 +00:00
Peter Steinberger
8c3cdba21c
feat: sticky auth profile rotation + usage headers
2026-01-16 00:25:49 +00:00
void
e274b5a040
fix: heartbeat prompt + dedupe ( #980 ) (thanks @voidserf)
...
- tighten default heartbeat prompt guidance
- suppress duplicate heartbeat alerts within 24h
Co-authored-by: void <voidserf@users.noreply.github.com >
2026-01-16 00:24:52 +00:00
Josh Lehman
a139d35fa2
feat(slack): add userToken for read-only access to DMs and private channels ( #981 )
...
- Add userToken and userTokenReadOnly (default: true) config fields
- Implement token routing: reads prefer user token, writes use bot token
- Add tests for token routing logic
- Update documentation with required OAuth scopes
User tokens enable reading DMs and private channels without requiring
bot membership. The userTokenReadOnly flag (true by default) ensures
the user token can only be used for reads, preventing accidental
sends as the user.
Required user token scopes:
- channels:history, channels:read
- groups:history, groups:read
- im:history, im:read
- mpim:history, mpim:read
- users:read, reactions:read, pins:read, emoji:read, search:read
2026-01-16 00:11:33 +00:00
Peter Steinberger
8312a19f02
fix: handle Telegram General topic thread params ( #848 ) (thanks @azade-c)
2026-01-16 00:08:56 +00:00
Peter Steinberger
fe8b28cdd9
Merge pull request #848 from azade-c/fix/telegram-general-topic-messages
...
fix(telegram): skip message_thread_id for General topic messages
2026-01-16 00:08:07 +00:00
Peter Steinberger
10eb1beccf
fix: tighten session entry updates
...
Co-authored-by: Tyler Yust <tyler6204@users.noreply.github.com >
2026-01-15 23:44:32 +00:00
Peter Steinberger
a4b347b454
feat: refine subagents + add chat.inject
...
Co-authored-by: Tyler Yust <tyler6204@users.noreply.github.com >
2026-01-15 23:44:31 +00:00
Peter Steinberger
688a0ce439
refactor: harden session store updates
...
Co-authored-by: Tyler Yust <tyler6204@users.noreply.github.com >
2026-01-15 23:41:34 +00:00
Azade
6146acbb69
fix(telegram): separate thread params for typing vs messages
...
Telegram General topic (id=1) has inconsistent API behavior:
- sendMessage: rejects explicit message_thread_id=1
- sendChatAction: requires message_thread_id=1 for typing to show
Split into two helper functions:
- buildTelegramThreadParams: excludes General topic for messages
- buildTypingThreadParams: includes General topic for typing
2026-01-15 23:32:30 +00:00
Peter Steinberger
35492f8513
docs: add inbound debounce config example
2026-01-15 23:20:14 +00:00
Peter Steinberger
db9be87d94
refactor: centralize daemon path resolution
2026-01-15 23:19:52 +00:00
juanpablodlc
4a99b9b651
feat(whatsapp): add debounceMs for batching rapid messages ( #971 )
...
* feat(whatsapp): add debounceMs for batching rapid messages
Add a `debounceMs` configuration option to WhatsApp channel settings
that batches rapid consecutive messages from the same sender into a
single response. This prevents triggering separate agent runs for
each message when a user sends multiple short messages in quick
succession (e.g., "Hey!", "how are you?", "I was wondering...").
Changes:
- Add `debounceMs` config to WhatsAppConfig and WhatsAppAccountConfig
- Implement message buffering in `monitorWebInbox` with:
- Map-based buffer keyed by sender (DM) or chat ID (groups)
- Debounce timer that resets on each new message
- Message combination with newline separator
- Single message optimization (no modification if only one message)
- Wire `debounceMs` through account resolution and monitor tuning
- Add UI hints and schema documentation
Usage example:
{
"channels": {
"whatsapp": {
"debounceMs": 5000 // 5 second window
}
}
}
Default behavior: `debounceMs: 0` (disabled by default)
Verified: All existing tests pass (3204 tests), TypeScript compilation
succeeds with no errors.
Implemented with assistance from AI coding tools.
Closes #967
* chore: wip inbound debounce
* fix: debounce inbound messages across channels (#971 ) (thanks @juanpablodlc)
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-01-15 23:07:19 +00:00
Peter Steinberger
7dea403302
chore: purge DS_Store files
2026-01-15 22:59:16 +00:00
Peter Steinberger
10731dfee3
docs: add sync up shorthand
2026-01-15 22:58:34 +00:00
Peter Steinberger
d00f2d9c0c
test: cover model picker ordering and openrouter index
2026-01-15 22:56:11 +00:00
Peter Steinberger
8b89980a89
feat(date-time): standardize time context and tool timestamps
2026-01-15 22:27:06 +00:00
Jake
634a429c50
fix(model-picker): list each provider/model combo separately ( #970 )
...
* fix(model-picker): list each provider/model combo separately
Previously, /model grouped models by name and showed all providers
that offer the same model (e.g. 'claude-sonnet-4-5 — anthropic, google-antigravity').
This was confusing because:
1. Users couldn't tell which provider would be used when selecting by number
2. The display implied choice between providers but selection was automatic
Now each provider/model combination is listed separately so users
can explicitly select the exact provider they want.
- Remove model grouping in buildModelPickerItems
- Display format changed from 'model — providers' to 'provider/model'
- pickProviderForModel now returns the single provider directly
- Updated tests to reflect new behavior
* fix: simplify model picker entries (#970 ) (thanks @mcinteerj)
---------
Co-authored-by: Keith the Silly Goose <keith@42bolton.macnet.nz >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-01-15 22:20:11 +00:00
Peter Steinberger
bf90815b9e
Merge pull request #969 from bjesuiter/fix/launchd-label-resolution
...
fix: unify daemon service label resolution with env parameter
2026-01-15 22:12:12 +00:00
Peter Steinberger
2b113c4d6c
chore: update changelog ( #969 ) (thanks @bjesuiter)
2026-01-15 22:10:27 +00:00
Benjamin Jesuiter
7f6a288bd3
docs: clarify multi-gateway rescue bot guidance
2026-01-15 22:10:27 +00:00
Benjamin Jesuiter
daf471c450
fix: unify daemon service label resolution with env
2026-01-15 22:10:27 +00:00
Peter Steinberger
cb78fa46a1
fix: make node-llama-cpp optional
2026-01-15 18:37:02 +00:00
Shadow
316e8b2eb2
Discord: fix allowlist gating. Closes #961
2026-01-15 11:53:13 -06:00
Peter Steinberger
4de81ed6c4
docs(changelog): move browser relay fixes to 2026.1.15
2026-01-15 17:26:54 +00:00
Peter Steinberger
b6fb24f6d2
Merge pull request #964 from bohdanpodvirnyi/feat/telegram-reactions
...
feat(telegram): add bidirectional emoji reactions support
2026-01-15 17:21:51 +00:00
Peter Steinberger
2b1c26f900
fix: refine telegram reactions ( #964 ) (thanks @bohdanpodvirnyi)
2026-01-15 17:20:17 +00:00
Peter Steinberger
47ea9356d1
Merge pull request #959 from rdev/rdev/finally-fix-antigravity-claude
...
Fix antigravity claude
2026-01-15 17:10:04 +00:00
Bohdan Podvirnyi
f12c1b391f
fix: lint errors
2026-01-15 17:08:31 +00:00
Peter Steinberger
05658b6609
fix: tighten command arg value types
2026-01-15 17:08:09 +00:00
Bohdan Podvirnyi
dfb6630de1
fix: remove dup definitions + add reaction config
2026-01-15 17:07:38 +00:00
Bohdan Podvirnyi
eb7656d68c
fix: lint errors
2026-01-15 17:07:38 +00:00
Bohdan Podvirnyi
0e1dcf9cb4
feat: added capability for clawdbot to react
2026-01-15 17:07:38 +00:00
Bohdan Podvirnyi
d05c3d0659
feat: make telegram reactions visible to clawdbot
2026-01-15 17:07:38 +00:00
Peter Steinberger
36292d3fbb
fix: preserve Antigravity Claude signatures ( #959 ) (thanks @rdev)
2026-01-15 17:06:39 +00:00
Max
1ae344d8a6
Fix antigravity claude
2026-01-15 17:06:39 +00:00
Peter Steinberger
01c43b0b0c
fix: avoid base string coercion in auto-reply formatting
2026-01-15 17:03:34 +00:00
Peter Steinberger
fc4aa9a683
Merge pull request #954 from roshanasingh4/fix/946-openai-completions-trim
...
Fix model fallback crash on undefined provider/model (#946 )
2026-01-15 16:59:19 +00:00
Peter Steinberger
c043e9767f
fix: default model fallback when provider/model missing ( #954 ) (thanks @roshanasingh4)
2026-01-15 16:58:41 +00:00
Peter Steinberger
8b48299d8f
Merge pull request #953 from roshanasingh4/fix/cli-quick-reference-system-prompt
...
Fix system prompt: prevent invented CLI commands
2026-01-15 16:55:52 +00:00
Roshan Singh
0f27cff247
Fix model fallback crash on undefined provider/model ( #946 )
2026-01-15 16:50:46 +00:00
Peter Steinberger
2d1ae0916f
chore: start 2026.1.15 (unreleased)
2026-01-15 16:47:19 +00:00
Roshan Singh
d0455f2683
fix(system-prompt): add CLI quick reference to prevent invented commands
2026-01-15 11:43:22 +00:00
Peter Steinberger
f25fe032c4
fix(macos): codesign dmg before notarize
2026-01-15 11:21:25 +00:00
Peter Steinberger
0a5b1fbcd1
fix(browser): handle extension relay page selection
2026-01-15 11:16:53 +00:00
Peter Steinberger
8daab932a2
chore(macos): prep Sparkle release 2026.1.14-1
2026-01-15 11:15:41 +00:00
Peter Steinberger
3b7b45c29e
chore: align plugin versions
2026-01-15 10:51:16 +00:00
Peter Steinberger
3a446dd400
style: oxfmt
2026-01-15 10:48:04 +00:00
Peter Steinberger
876efb11e7
docs(changelog): note chrome relay fixes
2026-01-15 10:46:48 +00:00
Peter Steinberger
c7615aa559
fix(browser): improve chrome relay tab selection
2026-01-15 10:44:11 +00:00
Peter Steinberger
6042485367
fix(browser): default chrome profile to host
2026-01-15 10:43:39 +00:00
Peter Steinberger
725c340257
docs(gog): prefer body-file for multi-line email
2026-01-15 10:43:07 +00:00
Peter Steinberger
9abd7ceda2
test: cover dynamic command arg menus
2026-01-15 10:25:35 +00:00
Peter Steinberger
cf81cb942b
fix: guard Slack cmdarg decode
2026-01-15 10:25:35 +00:00
Peter Steinberger
9097ef90b7
docs(browser): clarify chrome extension profile usage
2026-01-15 10:22:29 +00:00
Peter Steinberger
4f1a4ab072
feat(browser): add snapshot refs=aria mode
2026-01-15 10:22:29 +00:00
Peter Steinberger
0facc63019
fix(skills): improve summarize selection
2026-01-15 10:14:59 +00:00
Peter Steinberger
95735c3978
chore: bump version to 2026.1.14-1
2026-01-15 10:00:43 +00:00
Peter Steinberger
d5d33d4848
fix(browser): persist role refs per targetId
2026-01-15 09:56:24 +00:00
Peter Steinberger
84e9401d53
fix(ci): repair format + android tests
2026-01-15 09:50:18 +00:00
Peter Steinberger
84bee3d7d0
Merge pull request #936 from clawdbot/shadow/dynamic-command-args
...
Commands: add dynamic arg menus
2026-01-15 09:44:08 +00:00
Peter Steinberger
6ff3c39989
test: add command arg parsing coverage ( #936 ) (thanks @thewilloftheshadow)
2026-01-15 09:38:21 +00:00
Peter Steinberger
5c8239a2a9
docs(agents): note plugin-only deps
2026-01-15 09:38:01 +00:00
Peter Steinberger
f9170c5d02
fix(browser): keep tab stable across snapshot and act
2026-01-15 09:36:48 +00:00
Peter Steinberger
6ccb19e274
chore: regen protocol swift models ( #936 ) (thanks @thewilloftheshadow)
2026-01-15 09:33:31 +00:00
Peter Steinberger
52f876bfbc
fix: native command arg menus follow-ups ( #936 ) (thanks @thewilloftheshadow)
2026-01-15 09:33:31 +00:00
Peter Steinberger
415ff7f483
chore(workspace): include extensions in workspace
2026-01-15 09:31:18 +00:00
Shadow
74bc5bfd7c
Commands: add dynamic arg menus
2026-01-15 09:31:16 +00:00
Peter Steinberger
7e1e7ba2d8
fix(agents): skip thinking tags in code spans
2026-01-15 09:23:56 +00:00
Peter Steinberger
aac5b4673f
docs: clarify Brave Search API key plan
2026-01-15 09:17:24 +00:00
Peter Steinberger
c86b257d38
docs(tools): hint chrome extension in browser tool prompt
2026-01-15 09:13:36 +00:00
Peter Steinberger
4291d56e0b
chore: format + fix telegram thread ids
2026-01-15 09:13:19 +00:00
Peter Steinberger
5599603bdb
feat: offer local plugin install in git checkouts
2026-01-15 09:07:48 +00:00
Peter Steinberger
e0f69a2294
docs: align matrix changelog to first release
2026-01-15 09:07:48 +00:00
Peter Steinberger
510915a801
fix(onboarding): wait for gateway before health
2026-01-15 09:07:30 +00:00
Peter Steinberger
609d029e20
docs(changelog): regroup 2026.1.14
2026-01-15 09:07:30 +00:00
Peter Steinberger
4275ed68a2
fix(browser): default to chrome extension takeover
2026-01-15 09:02:42 +00:00
Peter Steinberger
75d2785d20
fix(browser): make extension relay zero-config
2026-01-15 09:02:42 +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
1afdb850f3
chore: add matrix changelog
2026-01-15 08:40:37 +00:00
Peter Steinberger
725a6b71dc
feat: add matrix channel plugin
2026-01-15 08:40:37 +00:00
Peter Steinberger
f4bb5b381d
chore: note issue/pr url requirement
2026-01-15 08:39:53 +00:00
Peter Steinberger
11d4fc101e
fix: sync cron run history selection in control ui
2026-01-15 08:38:21 +00:00
Peter Steinberger
4e6fb47a3f
fix(changelog): merge 2026.1.14 sections
2026-01-15 08:35:25 +00:00
Peter Steinberger
a39bb4310c
fix(onboarding): daemon progress + web search setup
2026-01-15 08:31:02 +00:00
Peter Steinberger
f1ac18933c
fix(cli): daemon output + health colors
2026-01-15 08:31:02 +00:00
Peter Steinberger
2bae4d2dba
fix(ui): override token from URL
2026-01-15 08:31:02 +00:00
Peter Steinberger
1797233989
fix(tui): surface model errors
2026-01-15 08:31:02 +00:00
Peter Steinberger
3171781d58
fix: show raw any-map entries in config UI
2026-01-15 08:24:23 +00:00
Peter Steinberger
35ddd8db5e
docs: add compaction alias page
2026-01-15 08:15:33 +00:00
Peter Steinberger
c269d5f258
fix: isolate Slack thread sessions ( #758 )
2026-01-15 08:11:03 +00:00
Peter Steinberger
627cc1f04b
fix(changelog): keep 2026.1.14 unreleased
2026-01-15 08:09:32 +00:00
Peter Steinberger
53d0bf653a
fix: canonicalize main session keys
2026-01-15 08:05:41 +00:00
Peter Steinberger
a5a9788b20
fix: imessage dm replies and error details ( #935 )
2026-01-15 08:05:10 +00:00
Peter Steinberger
9c04a79c0a
fix(ui): move docs link into nav
2026-01-15 08:01:34 +00:00
Peter Steinberger
f3519d895c
fix: normalize slack channel types for sessions
2026-01-15 08:00:20 +00:00
Peter Steinberger
0ac5480034
fix(onboarding): move web search hint to end
2026-01-15 07:57:18 +00:00
Peter Steinberger
5cd48bbe7d
docs: redirect /sandboxing to /gateway/sandboxing
2026-01-15 07:55:49 +00:00
Peter Steinberger
8dacafce7f
fix: harden whatsapp command auth
2026-01-15 07:54:39 +00:00
Peter Steinberger
8c4b8f2c38
chore: ship dist/security in npm pack
2026-01-15 07:54:12 +00:00
Peter Steinberger
fee8bcc50b
docs: hide experiments nav group
2026-01-15 07:53:43 +00:00
Peter Steinberger
cb9f4a0485
docs: link multi-gateway guide in sidebar
2026-01-15 07:49:52 +00:00
Peter Steinberger
79f340a410
chore: prep 2026.1.14 npm release
2026-01-15 07:47:18 +00:00
Peter Steinberger
081e5ef572
fix(tools): enable web_fetch by default
2026-01-15 07:42:07 +00:00
Peter Steinberger
f5577ad78e
docs: add multi-gateway guide
2026-01-15 07:29:48 +00:00
Peter Steinberger
b2b1c1de9c
Merge pull request #846 from vrknetha/feature/voice-call-plivo
...
feat(voice-call): add Plivo provider (no SDK dependency)
2026-01-15 07:28:37 +00:00
Peter Steinberger
3e6917c8ae
fix: restore notify init + Plivo numbers ( #846 ) (thanks @vrknetha)
2026-01-15 07:28:14 +00:00
Peter Steinberger
564b6aa2aa
docs: clarify Telegram IPv6 DNS troubleshooting
2026-01-15 07:23:28 +00:00
Peter Steinberger
eb3eb3c39e
test: clear config overrides in unit tests
2026-01-15 07:23:00 +00:00
vrknetha
2579609922
Voice Call: fix Plivo webhook method typing
2026-01-15 07:21:40 +00:00
vrknetha
946b0229e8
Voice Call: add Plivo provider
2026-01-15 07:21:40 +00:00
Peter Steinberger
0a1eeedc10
fix: unblock control commands during active runs
2026-01-15 07:08:48 +00:00
Peter Steinberger
5a58feefdc
chore: enforce plugin version sync
2026-01-15 07:08:33 +00:00
Peter Steinberger
48b15bd099
chore: sync plugin versions
2026-01-15 07:07:48 +00:00
Peter Steinberger
1c96477686
fix: harden session cache + heartbeat restore
...
Co-authored-by: Ronak Guliani <ronak-guliani@users.noreply.github.com >
2026-01-15 07:07:12 +00:00
Peter Steinberger
04ebf8d67a
docs: note child process bridge helper
2026-01-15 06:59:02 +00:00
Peter Steinberger
82d83a9d54
Merge pull request #852 from mneves75/fix/cron-settings-channel-param
...
fix(macos): use channel param in CronSettings+Testing
2026-01-15 06:38:33 +00:00
Peter Steinberger
66de8aedeb
fix: satisfy swiftformat lint ( #852 ) (thanks @mneves75)
2026-01-15 06:38:15 +00:00
Peter Steinberger
154b8e3e0e
fix: bridge respawned child signals ( #933 ) (thanks @roshanasingh4)
...
Co-authored-by: Roshan Singh <roshanasingh4@users.noreply.github.com >
2026-01-15 06:37:27 +00:00
Roshan Singh
d9f2ee40f7
Fix entry respawn signal forwarding
...
Fixes #931
2026-01-15 06:33:28 +00:00
Peter Steinberger
6bcb89cf38
Merge pull request #882 from chrisrodz/feat/whatsapp-send-read-receipts-option
...
feat(whatsapp): add sendReadReceipts config option
2026-01-15 06:27:35 +00:00
Peter Steinberger
3475ecde6f
docs: expand Zalo overview + add longmaba
...
Co-authored-by: Long <longmaba@gmail.com >
2026-01-15 06:26:55 +00:00
Peter Steinberger
728cd5e974
fix: document WhatsApp read receipts toggle ( #882 ) (thanks @chrisrodz)
2026-01-15 06:22:33 +00:00
Christian A. Rodriguez
0fab14ad9d
style: fix CronModels.swift indentation
...
- Move CronPayload enum to top level (was incorrectly nested)
- Fix all tabs to spaces
- Align case statements consistently
2026-01-15 06:22:09 +00:00
Christian A. Rodriguez
d23febcd6a
style: fix tabs in CronModels.swift
2026-01-15 06:22:09 +00:00
Christian A. Rodriguez
d763926364
style: fix biome formatting
2026-01-15 06:22:09 +00:00
Christian A. Rodriguez
7a683a4b62
feat(whatsapp): add sendReadReceipts config option
...
Add option to disable automatic read receipts for WhatsApp messages.
When set to false, Clawdbot will not mark messages as read (blue ticks).
Closes #344
Changes:
- Add sendReadReceipts to WhatsAppConfig and WhatsAppAccountConfig types
- Add sendReadReceipts to zod schemas for validation
- Add sendReadReceipts to ResolvedWhatsAppAccount with fallback chain
- Pass sendReadReceipts through to monitorWebInbox
- Gate sock.readMessages() call based on config option
Default behavior (true) is preserved - only explicitly setting false
will disable read receipts.
2026-01-15 06:22:09 +00:00
Peter Steinberger
44a237b637
feat(browser): copy extension path to clipboard
2026-01-15 06:19:47 +00:00
Peter Steinberger
375304bf13
test: remove legacy config migration test
2026-01-15 06:18:44 +00:00
Peter Steinberger
d59aab7fd3
chore: drop Clawdis legacy references
2026-01-15 06:18:44 +00:00
Peter Steinberger
60748b1370
docs: refresh clawtributors list
2026-01-15 06:17:02 +00:00
Peter Steinberger
624cb33534
feat: expand Telegram allowFrom guidance
...
Co-authored-by: Christoph Nakazawa <cpojer@users.noreply.github.com >
2026-01-15 06:15:06 +00:00
Peter Steinberger
9603eff79a
Merge pull request #909 from roshanasingh4/fix/macos-wizard-gateway-logdir
...
macOS: fix wizard hang when /tmp/clawdbot is missing
2026-01-15 06:13:51 +00:00
Peter Steinberger
e9d6dec2f4
fix: make log dir overrideable in tests ( #909 ) (thanks @roshanasingh4)
2026-01-15 06:13:20 +00:00
Peter Steinberger
0cbfea79fa
docs(cli): add per-command CLI pages
2026-01-15 06:13:10 +00:00
Roshan Singh
aaae327563
macOS: ensure /tmp/clawdbot exists for launchd logs
2026-01-15 06:10:05 +00:00
Peter Steinberger
5b23f847d6
docs: clarify Telegram allowFrom lookup
2026-01-15 06:09:19 +00:00
Peter Steinberger
5a55789bc1
Merge pull request #859 from CashWilliams/main
...
fix: Make timezone and 24 hour clock explicit in system prompt
2026-01-15 06:08:51 +00:00
Peter Steinberger
9c396f6331
fix: note timezone + 24h prompt update ( #859 ) (thanks @CashWilliams)
2026-01-15 06:08:43 +00:00
Cash Williams
51e871f9e5
Make timezone and 24 hour clock explicit in system prompt
2026-01-15 06:08:43 +00:00
Peter Steinberger
47634c294d
style: format pi embedded utils
2026-01-15 06:08:17 +00:00
Peter Steinberger
9c1122def0
test: fix Windows security audit perms
2026-01-15 06:04:39 +00:00
Peter Steinberger
2bd9e84851
fix(agents): strip tool leak text ( #905 )
...
Thanks @erikpr1994.
Co-authored-by: Erik Pastor Rios <erikpastorrios1994@gmail.com >
2026-01-15 05:58:02 +00:00
Erik
5c2eedc340
test: add thought tag stripping test case
2026-01-15 05:58:02 +00:00
Erik
3b7d103758
fix(agent): strip thinking tags from text content
2026-01-15 05:58:02 +00:00
Erik
8146c43aa3
fix(agents): strip leaked tool call text from assistant messages
...
When replaying conversation history to Gemini, tool calls without
thought_signature are downgraded to text blocks like [Tool Call: ...].
This leaked internal technical info into user-facing chat messages.
Added stripDowngradedToolCallText filter alongside existing Minimax
filter to remove these text representations before extraction.
2026-01-15 05:58:02 +00:00
Peter Steinberger
df386927ce
docs: prune internal notes and doc aliases
2026-01-15 05:55:28 +00:00
Peter Steinberger
0c18b2c442
feat(status): add security audit section
2026-01-15 05:52:01 +00:00
Peter Steinberger
1a7b7eba59
docs(lore): mention Warelay + Clawdis
2026-01-15 05:52:01 +00:00
Peter Steinberger
54fb59b8f3
feat: extend Telegram dock commands and config hashing ( #929 )
...
Thanks @grp06.
Co-authored-by: George Pickett <gpickett00@gmail.com >
2026-01-15 05:49:28 +00:00
Peter Steinberger
a2f0d335f4
docs: add Zalo channel nav + plugin note
2026-01-15 05:36:31 +00:00
Peter Steinberger
2e70c3ceab
fix: return setup hint when web_search lacks key
2026-01-15 05:35:22 +00:00
Peter Steinberger
ca1902fb4e
feat(security): expand audit and safe --fix
2026-01-15 05:31:43 +00:00
Peter Steinberger
f11a89031b
chore: format reply dispatcher
2026-01-15 05:31:03 +00:00
Peter Steinberger
3c22fab679
docs(cli): add dedicated browser command page
2026-01-15 05:30:03 +00:00
Peter Steinberger
ad46e95df9
test: relax browser act contract timeout on Windows
2026-01-15 05:29:37 +00:00
Peter Steinberger
7d4f2d9aed
Merge pull request #928 from sebslight/feature/response-prefix-template-variables
...
feat: add dynamic template variables to messages.responsePrefix
2026-01-15 05:27:20 +00:00
Peter Steinberger
738b3592cd
fix: remove conflict marker in google helper ( #875 )
2026-01-15 05:25:45 +00:00
Peter Steinberger
cd2af64860
fix: cap tool call IDs for OpenAI/OpenRouter ( #875 ) (thanks @j1philli)
2026-01-15 05:25:45 +00:00
Josh Phillips
04f1e767b2
Fix OpenAI tool_call id length for OpenRouter
2026-01-15 05:25:45 +00:00
Peter Steinberger
1c7ac2a6ab
test: fix windows-only expectations
2026-01-15 05:25:08 +00:00
Peter Steinberger
77cf40da87
feat: profile-aware gateway service names ( #671 )
...
Thanks @bjesuiter.
Co-authored-by: Benjamin Jesuiter <bjesuiter@gmail.com >
2026-01-15 05:23:41 +00:00
Peter Steinberger
1fe8df85cb
docs: clarify extension tab attachment
2026-01-15 05:20:56 +00:00
Peter Steinberger
139f80a291
chore: format sources and update protocol outputs
2026-01-15 05:17:19 +00:00
Peter Steinberger
2d066b8715
docs: explain sandboxed browser control
2026-01-15 05:17:12 +00:00
Peter Steinberger
757243993c
fix: stabilize gateway config tests + tool schema
2026-01-15 05:16:28 +00:00
Peter Steinberger
4fb114dcb3
feat: improve extension options diagnostics
2026-01-15 05:15:33 +00:00
Peter Steinberger
612cdac4c3
docs: clarify when browser serve is needed
2026-01-15 05:15:33 +00:00
Peter Steinberger
57c66fe813
fix: clean up onboarding + channel selection types
2026-01-15 05:12:33 +00:00
Peter Steinberger
9c02ea9098
feat: polish chrome extension UX
2026-01-15 05:11:03 +00:00
Peter Steinberger
042b65dfcc
feat: add web tools config to configure
2026-01-15 05:08:56 +00:00
Peter Steinberger
f6a72ef3c2
feat: improve browser extension install output
2026-01-15 05:05:27 +00:00
Peter Steinberger
568cc368ae
feat: add onboarding plugin install flow
2026-01-15 05:04:09 +00:00
Peter Steinberger
5abe3c2145
feat: add plugin HTTP hooks + Zalo plugin
2026-01-15 05:04:09 +00:00
Peter Steinberger
0e76d21f11
docs(security): mention audit --fix
2026-01-15 05:03:13 +00:00
Peter Steinberger
5e8693bc42
chore: bump pi packages to 0.45.7
2026-01-15 04:55:40 +00:00
Peter Steinberger
ef78b198cb
feat: add Chrome extension browser relay
2026-01-15 04:52:28 +00:00
Peter Steinberger
5fdaef3646
fix: downgrade unsigned gemini thinking
2026-01-15 04:51:21 +00:00
Peter Steinberger
fa4670c5fe
feat: improve agent auth guidance
2026-01-15 04:51:21 +00:00
Peter Steinberger
c4402a1ce5
docs: clarify agent auth + sandboxed skills
2026-01-15 04:51:03 +00:00
Peter Steinberger
edd8c613d6
feat(security): add audit --fix
2026-01-15 04:50:06 +00:00
Peter Steinberger
0a7f5bf6a5
test(gateway): fix config.patch baseHash fixtures
2026-01-15 04:50:06 +00:00
Peter Steinberger
eb3e865f15
fix(build): restore tool policy typing
2026-01-15 04:50:06 +00:00
Roshan Singh
1baa55c145
Structured subagent announce output + include run outcome ( #835 )
...
* docs: clarify subagent announce status
* Make subagent announce structured and include run outcome
* fix: stabilize sub-agent announce status (#835 ) (thanks @roshanasingh4)
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-01-15 04:48:07 +00:00
Sebastian
6ef3837e73
Remove debug logging for responsePrefix template resolution
2026-01-14 23:36:47 -05:00
Sebastian
e7167e35ed
debug: use console.log instead of logVerbose for always-visible logging
2026-01-14 23:29:17 -05:00
Peter Steinberger
2e0325e3bf
feat: add web search hint to onboarding
2026-01-15 04:25:19 +00:00
Sebastian
56b3b44342
debug: add responsePrefix template logging
2026-01-14 23:23:21 -05:00
Sebastian
113eea5047
fix: mutate prefixContext object instead of reassigning for closure correctness
2026-01-14 23:20:19 -05:00
Peter Steinberger
dcadaad228
docs: add web search note to quick start
2026-01-15 04:16:09 +00:00
Sebastian
7b04e6ac42
debug: add prefix template resolution logging
2026-01-14 23:15:46 -05:00
Peter Steinberger
1533868680
docs: add web search FAQ
2026-01-15 04:15:24 +00:00
Peter Steinberger
f275cc180b
feat: add web tools
2026-01-15 04:07:40 +00:00
Peter Steinberger
31d3aef8d6
fix: prevent config clobbering
2026-01-15 04:06:11 +00:00
Peter Steinberger
bd467ff765
chore: mark 2026.1.14 as unreleased
2026-01-15 04:05:18 +00:00
Sebastian
d0a4cce41e
feat: add dynamic template variables to messages.responsePrefix ( #923 )
...
Adds support for template variables in `messages.responsePrefix` that
resolve dynamically at runtime with the actual model used (including
after fallback).
Supported variables (case-insensitive):
- {model} - short model name (e.g., "claude-opus-4-5", "gpt-4o")
- {modelFull} - full model identifier (e.g., "anthropic/claude-opus-4-5")
- {provider} - provider name (e.g., "anthropic", "openai")
- {thinkingLevel} or {think} - thinking level ("high", "low", "off")
- {identity.name} or {identityName} - agent identity name
Example: "[{model} | think:{thinkingLevel}]" → "[claude-opus-4-5 | think:high]"
Variables show the actual model used after fallback, not the intended
model. Unresolved variables remain as literal text.
Implementation:
- New module: src/auto-reply/reply/response-prefix-template.ts
- Template interpolation in normalize-reply.ts via context provider
- onModelSelected callback in agent-runner-execution.ts
- Updated all 6 provider message handlers (web, signal, discord,
telegram, slack, imessage)
- 27 unit tests covering all variables and edge cases
- Documentation in docs/gateway/configuration.md and JSDoc
Fixes #923
2026-01-14 23:05:08 -05:00
Peter Steinberger
429f973280
test: cover browser snapshot labels and efficient mode
2026-01-15 04:04:30 +00:00
Peter Steinberger
6320f739d4
refactor: centralize whatsapp auth detection
2026-01-15 04:01:06 +00:00
Peter Steinberger
1732932c57
fix: unblock launchctl stub on windows
2026-01-15 03:58:32 +00:00
Peter Steinberger
574b6ab5b1
docs: document provider tool policies
2026-01-15 03:55:20 +00:00
Peter Steinberger
1c737f88fe
test: cover provider tool policies
2026-01-15 03:55:20 +00:00
Peter Steinberger
fa8d9b9189
feat: add provider-specific tool policies
2026-01-15 03:55:20 +00:00
Peter Steinberger
512dbedee3
chore: bump Peekaboo submodule
2026-01-15 03:54:06 +00:00
Peter Steinberger
db21c2d397
docs: clarify group sandbox folder allowlist
2026-01-15 03:52:57 +00:00
Peter Steinberger
1078d178d7
fix: doctor ack reaction migration ( #927 )
...
Thanks @grp06.
Co-authored-by: George Pickett <gpickett00@gmail.com >
2026-01-15 03:51:55 +00:00
Peter Steinberger
a6e780b2f6
feat: add browser snapshot modes
2026-01-15 03:50:57 +00:00
Peter Steinberger
4e48d0a431
docs: document personal DMs vs public groups
2026-01-15 03:48:14 +00:00
Peter Steinberger
c289a88f50
fix(security): force hono 4.11.4
2026-01-15 03:40:02 +00:00
Peter Steinberger
4ce495cb2c
Merge pull request #849 from ndraiman/fix/cli-launchd-enable-before-bootstrap
...
fix(daemon): enable launchd service before bootstrap
2026-01-15 03:36:14 +00:00
Peter Steinberger
dfea2991c9
fix(daemon): clear launchd disabled state before bootstrap ( #849 ) (thanks @ndraiman)
2026-01-15 03:35:24 +00:00
Peter Steinberger
6f5fc2276a
chore(packaging): align workspace patch version
2026-01-15 03:33:00 +00:00
Netanel Draiman
d51a9ebb0e
fix(daemon): enable launchd service before bootstrap
...
When a launchd service is uninstalled via bootout, macOS marks it as
disabled in /var/db/com.apple.xpc.launchd/disabled.*.plist. This persists
across reboots and plist recreation. Future bootstrap calls fail with
error 5 (I/O error) because the service is still marked disabled.
Fix: Call 'launchctl enable' before 'launchctl bootstrap' to clear the
disabled state, matching the fix already applied to the macOS Swift app
in GatewayLaunchAgentManager.swift.
Related: #306
2026-01-15 03:31:52 +00:00
Peter Steinberger
536d3d76a3
Merge pull request #925 from grp06/fix/console-eio
...
Logging: tolerate EIO console writes (AI)
2026-01-15 03:28:56 +00:00
Peter Steinberger
5c52dbf661
style: oxfmt fixes ( #925 ) (thanks @grp06)
2026-01-15 03:22:54 +00:00
George Pickett
8f797f213e
Logging: tolerate EIO console writes
2026-01-15 03:20:48 +00:00
Peter Steinberger
ed68f378d7
Merge pull request #227 from Hyaxia/detect-secrets
...
add detect-secrets CI job + baseline guidance
2026-01-15 03:17:14 +00:00
Peter Steinberger
7e8de907f8
fix: note detect-secrets CI scan ( #227 ) (thanks @Hyaxia)
2026-01-15 03:16:41 +00:00
hyaxia
f3c9252840
Security: add detect-secrets scan
2026-01-15 03:14:43 +00:00
Peter Steinberger
da9e27f466
docs: update changelog for telegram aggregation
2026-01-15 03:05:46 +00:00
Peter Steinberger
aa74e28112
fix(telegram): aggregate split inbound messages
2026-01-15 03:04:59 +00:00
Peter Steinberger
e569f15631
fix: scrub tuple items schemas for Gemini tools ( #926 ) — thanks @grp06
...
Co-authored-by: George Pickett <gpickett00@gmail.com >
2026-01-15 02:59:35 +00:00
Peter Steinberger
eaace34233
fix: restore docker binds and PATH in sandbox exec ( #873 )
...
Thanks @akonyer.
Co-authored-by: Aaron Konyer <aaronk@gomodular.ca >
2026-01-15 02:58:20 +00:00
Peter Steinberger
7a839e7eb6
docs: add messaging channel guide
2026-01-15 02:50:03 +00:00
Peter Steinberger
1b24b6a02b
fix: add plugin runtime registry
2026-01-15 02:44:45 +00:00
Peter Steinberger
2b4a68e276
feat: load channel plugins
2026-01-15 02:42:44 +00:00
Peter Steinberger
b1e3d79eaa
docs: clarify Claude CLI auth mode
2026-01-15 02:35:20 +00:00
Peter Steinberger
2fb2035dbf
fix: normalize Claude CLI auth mode to oauth ( #855 )
...
Thanks @sebslight.
Co-authored-by: Sebastian <sebslight@gmail.com >
2026-01-15 02:29:43 +00:00
Peter Steinberger
3c51290e0d
Merge pull request #850 from evalexpr/fix/slack-top-level-require-mention
...
fix(slack): respect top-level requireMention config
2026-01-15 02:28:25 +00:00
Peter Steinberger
765196d5c3
style(slack): satisfy oxfmt ( #850 )
2026-01-15 02:23:22 +00:00
Peter Steinberger
12c2d37e62
docs: document DM history limits ( #883 )
...
Thanks @pkrmf.
Co-authored-by: Marc Terns <tenxurz@gmail.com >
2026-01-15 02:22:29 +00:00
Peter Steinberger
151a551be9
fix(slack): honor channels.slack.requireMention default ( #850 ) (thanks @evalexpr)
2026-01-15 02:19:24 +00:00
Jonathan Wilkins
09ce6ff99e
fix(slack): respect top-level requireMention config
...
The `channels.slack.requireMention` setting was defined in the schema
but never passed to `resolveSlackChannelConfig()`, which always
defaulted to `true`. This meant setting `requireMention: false` at the
top level had no effect—channels still required mentions.
Pass `slackCfg.requireMention` as `defaultRequireMention` to the
resolver and use it as the fallback instead of hardcoded `true`.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-15 02:17:27 +00:00
Peter Steinberger
6ffd7111a6
fix: add TUI status spinner
2026-01-15 02:11:12 +00:00
Peter Steinberger
7904a14af1
fix: render TUI pickers as overlays
2026-01-15 01:59:05 +00:00
Peter Steinberger
1b79730db8
style: apply oxfmt fixes
2026-01-15 01:53:14 +00:00
Peter Steinberger
ad8799522c
feat(config): gate channel config writes
2026-01-15 01:41:15 +00:00
Peter Steinberger
f65668cb5f
fix: suppress raw API error payloads ( #924 ) (thanks @grp06)
...
Co-authored-by: George Pickett <gpickett00@gmail.com >
2026-01-15 01:34:19 +00:00
George Pickett
393d21d86c
Format: fix report + telegram formatting
2026-01-15 01:27:16 +00:00
George Pickett
232c512502
Format: apply oxfmt fixes
2026-01-15 01:27:16 +00:00
George Pickett
8c1e6a82b2
Tests: add Gemini thoughtSignature for tool-call ids
2026-01-15 01:27:16 +00:00
George Pickett
2d54efe851
Embedded runner: suppress raw API error payloads ( #919 )
2026-01-15 01:27:16 +00:00
Peter Steinberger
c2a4f256c8
feat: add security audit + onboarding checkpoint
2026-01-15 01:25:11 +00:00
Peter Steinberger
c91c85532a
docs: add context concept page
2026-01-15 01:12:59 +00:00
Peter Steinberger
326d4049da
fix(telegram): migrate group config on supergroup IDs ( #906 )
...
Thanks @sleontenko.
Co-authored-by: Stan <sleontenko@users.noreply.github.com >
2026-01-15 01:10:30 +00:00
sleontenko
9b7c4b3884
feat(telegram): auto-migrate group config on supergroup migration
...
When a Telegram group is upgraded to a supergroup, the chat ID changes
(e.g., -123456 → -100123456). This causes the bot to lose its group
configuration since it's keyed by chat ID.
This change:
- Adds handler for `message:migrate_to_chat_id` event
- Logs the migration (old_id → new_id) for visibility
- If the old chat ID has config in channels.telegram.groups, automatically:
- Copies the config to the new chat ID
- Removes the old chat ID entry
- Saves the updated config file
This eliminates the need to manually update clawdbot.json when groups
migrate to supergroups.
2026-01-15 01:10:30 +00:00
Peter Steinberger
bcde09ae91
feat: add /context prompt breakdown
2026-01-15 01:06:35 +00:00
Peter Steinberger
632651aee2
docs: add markdown IR example
2026-01-15 00:37:04 +00:00
Peter Steinberger
d2b76acb72
docs: expand markdown formatting pipeline
2026-01-15 00:34:34 +00:00
Peter Steinberger
daf69e8154
chore: update clawtributors
2026-01-15 00:31:07 +00:00
Peter Steinberger
e5c8abab9e
fix: preserve markdown code fences
2026-01-15 00:31:07 +00:00
Peter Steinberger
2c312e20f1
fix: finalize markdown IR formatting
2026-01-15 00:31:07 +00:00
Peter Steinberger
9f1a8be2bf
refactor: unify markdown formatting pipeline
2026-01-15 00:31:07 +00:00
Peter Steinberger
bd7d362d3b
refactor: unify markdown formatting pipeline
2026-01-15 00:31:07 +00:00
Peter Steinberger
0d0b77ded6
fix(telegram): wire delete action for message tool ( #903 ) - thanks @sleontenko
...
Co-authored-by: Stan <sleontenko@users.noreply.github.com >
2026-01-15 00:29:53 +00:00
sleontenko
83a25d26fc
feat(telegram): add deleteMessage action
...
Add ability to delete messages in Telegram chats via the message tool.
Changes:
- Add deleteMessageTelegram function in send.ts
- Add deleteMessage action handler in telegram-actions.ts
- Add delete action support in telegram message plugin adapter
- Add deleteMessage to TelegramActionConfig type
- Update message tool description to mention delete action
Usage:
- Via message tool: action="delete", chatId, messageId
- Can be disabled via channels.telegram.actions.deleteMessage=false
Limitations (Telegram API):
- Bot can delete its own messages in any chat
- Bot can delete others' messages only if admin with "Delete Messages"
- Messages older than 48h in groups may fail to delete
2026-01-15 00:29:53 +00:00
Peter Steinberger
9b7df414e6
test: add gemini 3 antigravity switch live repro
2026-01-15 00:29:53 +00:00
Peter Steinberger
f87016a5fe
fix: handle unsigned tool calls for gemini 3
2026-01-15 00:29:53 +00:00
Peter Steinberger
5894ffe82e
refactor(auth): streamline allowFrom normalization
2026-01-14 23:42:50 +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
de7f567b9a
docs(changelog): add gateway fix entries
2026-01-14 23:34:48 +00:00
rahthakor
0eabc89840
fix(ui): use application-defined WebSocket close code
2026-01-14 23:34:48 +00:00
rahthakor
400e901c9c
fix(mac): pass auth token to dashboard URL
2026-01-14 23:34:48 +00:00
Peter Steinberger
57b4865ab3
fix(whatsapp): normalize user JIDs for group allowlists ( #838 )
...
Thanks @peschee.
Co-authored-by: Peter Siska <63866+peschee@users.noreply.github.com >
2026-01-14 23:25:42 +00:00
Peter Steinberger
fd41000bc3
test(whatsapp): add context isolation coverage
...
Includes outbound gating, threading fallback, and web auto-reply context assertions.
2026-01-14 23:23:36 +00:00
Peter Steinberger
a70937c926
refactor(discord): centralize autoThread reply plan ( #856 )
2026-01-14 23:07:05 +00:00
Shadow
4ec2222fa9
Revert "Clarify coding-agent skill trigger"
...
This reverts commit 0adcb68092 .
2026-01-14 15:58:01 -06:00
Peter Steinberger
fe974f420d
chore: standardize Claude Code CLI naming ( #915 )
...
Follow-up to #915 .
2026-01-14 20:07:35 +00:00
Peter Steinberger
e65e5f40c9
fix(whatsapp): use conversation id for context isolation ( #911 )
...
Thanks @tristanmanchester.
Co-authored-by: Tristan Manchester <tmanchester96@gmail.com >
2026-01-14 20:06:20 +00:00
Peter Steinberger
0235eb6c72
refactor(discord): clean autoThread context wiring ( #856 )
...
Build reply/session context once (no post-hoc ctx mutation) and type into the actual delivery target.
Thanks @davidguttman.
Co-authored-by: David Guttman <david@davidguttman.com >
2026-01-14 20:04:25 +00:00
Peter Steinberger
e943e63174
chore(auth): rename Claude CLI to Claude Code CLI ( #915 )
...
Thanks @SeanZoR.
Co-authored-by: Sean Katz <connect@sean8.com >
2026-01-14 19:57:42 +00:00
Shadow
b4ba6e4eaf
Discord: isolate autoThread thread context ( #856 )
2026-01-14 12:25:35 -06:00
Mariano Belinky
0adcb68092
Clarify coding-agent skill trigger
2026-01-14 19:10:09 +01:00
Peter Steinberger
dadef27d7a
fix(slack): drop mismatched Socket Mode events ( #889 )
...
Filter Slack Socket Mode events by api_app_id/team_id.
Refs: #828
Contributor: @roshanasingh4
Co-authored-by: Roshan Singh <roshanasingh4@users.noreply.github.com >
2026-01-14 15:54:37 +00:00
Peter Steinberger
53465a4d2d
fix: split long Telegram captions ( #907 ) - thanks @jalehman
...
Co-authored-by: Josh Lehman <josh@martian.engineering >
2026-01-14 15:52:54 +00:00
Peter Steinberger
4e837cfa2d
docs(changelog): credit macOS cron channel fix ( #867 )
...
Co-authored-by: Wes <wesleydavis@me.com >
2026-01-14 15:37:00 +00:00
Peter Steinberger
964e6169cb
docs(changelog): add minimax usage entry
2026-01-14 15:02:20 +00:00
Peter Steinberger
c379191f80
chore: migrate to oxlint and oxfmt
...
Co-authored-by: Christoph Nakazawa <christoph.pojer@gmail.com >
2026-01-14 15:02:19 +00:00
Nimrod Gutman
912ebffc63
fix(macos): update cron testing channel arg ( #896 )
2026-01-14 08:53:23 -06:00
Peter Steinberger
b7a11b7bd4
test(telegram): cover per-account timeoutSeconds ( #863 )
...
Co-authored-by: Snaver <194855+Snaver@users.noreply.github.com >
2026-01-14 10:35:42 +00:00
Peter Steinberger
95bdb28a05
test(doctor): bump timeouts for slow cases
2026-01-14 10:35:39 +00:00
Peter Steinberger
9930ba91c5
fix(telegram): honor timeoutSeconds (thanks @Snaver) ( #863 )
2026-01-14 10:10:05 +00:00
Peter Steinberger
802c02eb74
style(lint): fix minimax usage lint
2026-01-14 10:10:04 +00:00
Peter Steinberger
2d4e3253ca
fix(lint): tidy minimax usage fetch
2026-01-14 10:04:26 +00:00
Peter Steinberger
da8d45d6c6
docs(usage): note minimax usage key
2026-01-14 09:57:54 +00:00
Peter Steinberger
18b4575e4d
feat(usage): add minimax usage snapshot
2026-01-14 09:57:32 +00:00
Peter Steinberger
40fb59e5f7
refactor(live-tests): stabilize docker live suites
2026-01-14 09:52:39 +00:00
Peter Steinberger
e3ff8c4d28
refactor(ui): split app modules
2026-01-14 09:11:36 +00:00
Peter Steinberger
ce59e2dd76
refactor(telegram): split bot handlers
2026-01-14 09:11:32 +00:00
Peter Steinberger
32cfc49002
refactor(tui): split handlers
2026-01-14 09:11:28 +00:00
Peter Steinberger
d19bc1562b
refactor(gateway): split server runtime
2026-01-14 09:11:21 +00:00
Peter Steinberger
ea018a68cc
refactor(auto-reply): split reply pipeline
2026-01-14 09:11:16 +00:00
Peter Steinberger
1089444807
fix(gateway): reduce flaky ws rpc timeouts
2026-01-14 05:41:02 +00:00
Peter Steinberger
4af8228c34
test(web): rename split suites
2026-01-14 05:40:58 +00:00
Peter Steinberger
ebea98b8ec
test(slack): rename split suites
2026-01-14 05:40:55 +00:00
Peter Steinberger
51683071e8
test(signal): rename split suites
2026-01-14 05:40:52 +00:00
Peter Steinberger
bfa46b2471
test(providers): rename split suites
2026-01-14 05:40:49 +00:00
Peter Steinberger
de62797128
test(imessage): rename split suites
2026-01-14 05:40:45 +00:00
Peter Steinberger
05673fb6cf
test(cron): rename split suites
2026-01-14 05:40:42 +00:00
Peter Steinberger
350f4709b7
test(auto-reply): rename split suites
2026-01-14 05:40:39 +00:00
Peter Steinberger
b5f7ba502d
refactor(voice-call): split manager
2026-01-14 05:40:19 +00:00
Peter Steinberger
8ba80d2dac
refactor(ui): split render + connections
2026-01-14 05:40:14 +00:00
Peter Steinberger
b11eea07b0
refactor(wizard): split onboarding
2026-01-14 05:40:10 +00:00
Peter Steinberger
35cea9be25
refactor(telegram): split bot helpers
2026-01-14 05:40:07 +00:00
Peter Steinberger
3e0e608110
refactor(infra): split provider usage
2026-01-14 05:40:03 +00:00
Peter Steinberger
e2f8909982
refactor(agents): split tools + PI subscribe
2026-01-14 05:39:59 +00:00
Peter Steinberger
ac613b6632
refactor(discord): split send pipeline
2026-01-14 05:39:55 +00:00
Peter Steinberger
5323652cfd
refactor(config): split legacy handling
2026-01-14 05:39:51 +00:00
Peter Steinberger
a58ff1ac63
refactor(commands): split CLI commands
2026-01-14 05:39:47 +00:00
Peter Steinberger
2b60ee96f2
refactor(browser): split pw tools + agent routes
2026-01-14 05:39:44 +00:00
Peter Steinberger
da6f07b7c1
refactor(auto-reply): split directive handling
2026-01-14 05:39:41 +00:00
Peter Steinberger
f0b624d6c9
chore: prep 2026.1.14 release
2026-01-14 01:39:29 +00:00
Peter Steinberger
e4c3c02a36
refactor(voice-call): split twilio provider
2026-01-14 01:17:56 +00:00
Peter Steinberger
ae796b1194
docs(tools): update slash commands
2026-01-14 01:17:56 +00:00
Peter Steinberger
c892f38d3c
refactor(scripts): extract clawtributors types
2026-01-14 01:17:56 +00:00
Peter Steinberger
d98b6beb4d
chore(e2e): reduce doctor-switch install noise
2026-01-14 01:17:56 +00:00
Peter Steinberger
b80abf8dd1
refactor(vendor): align a2ui renderer typings
2026-01-14 01:17:56 +00:00
Peter Steinberger
acfa762617
refactor(ui): split config and connections views
2026-01-14 01:17:56 +00:00
Peter Steinberger
a44f1912b3
chore(repo): drop .DS_Store
2026-01-14 01:17:56 +00:00
Peter Steinberger
bcbfb357be
refactor(src): split oversized modules
2026-01-14 01:17:56 +00:00
Peter Steinberger
b2179de839
fix(docker): harden docker e2e scripts
2026-01-14 01:17:08 +00:00
Peter Steinberger
b1102cedd7
fix: support non-interactive token auth
2026-01-14 00:56:34 +00:00
Peter Steinberger
571f8c78bd
chore: allow install e2e previous override
2026-01-14 00:38:26 +00:00
Peter Steinberger
93fbd103ba
ci: set install smoke previous
2026-01-14 00:11:45 +00:00
Peter Steinberger
a740d563d7
chore: allow install smoke previous override
2026-01-14 00:07:50 +00:00
Peter Steinberger
8f6e67553f
chore: drop stale pi-ai patch
2026-01-13 23:59:17 +00:00
Peter Steinberger
0a8be132b9
chore: prep 2026.1.13 release
2026-01-13 23:59:04 +00:00
Peter Steinberger
4c932edabc
fix: make postinstall patcher idempotent
2026-01-13 23:12:27 +00:00
Cash Williams
5283872e00
Make timezone and 24 hour clock explicit in system prompt
2026-01-13 12:42:37 -06:00
Peter Steinberger
45c314fbe6
docs(voice-call): expand plugin guide
2026-01-13 11:42:09 +00:00
Peter Steinberger
119e53967b
chore(voice-call): release 0.1.0
2026-01-13 11:10:29 +00:00
Peter Steinberger
d36a004468
Merge pull request #831 from roshanasingh4/fix/817-persist-subagent-registry
...
Persist subagent run registry to survive gateway restarts
2026-01-13 10:10:59 +00:00
Peter Steinberger
8778c39ed0
fix: restore GatewayAgentChannel enum location
2026-01-13 10:10:25 +00:00
Peter Steinberger
b071f73fef
fix: resume subagent registry safely ( #831 ) (thanks @roshanasingh4)
2026-01-13 10:10:15 +00:00
Peter Steinberger
afde0a17b7
fix: macOS app release 2026.1.12-2
2026-01-13 10:06:07 +00:00
Roshan Singh
714de9d996
Persist subagent registry across restarts
2026-01-13 10:00:30 +00:00
Peter Steinberger
6b587fa411
chore: fix npm package contents
2026-01-13 09:36:15 +00:00
Peter Steinberger
7e2f5126bc
chore: fix npm package contents
2026-01-13 09:33:02 +00:00
Peter Steinberger
9eab82b717
chore: release 2026.1.12
2026-01-13 09:25:50 +00:00
Rob Axelsen
e49ccf49fd
Update outdated contributor information for Shadow
2026-01-13 09:21:40 +00:00
Peter Steinberger
aac3615d7a
test: fix cron delivery channel expectations
2026-01-13 09:07:13 +00:00
Peter Steinberger
7de6e925aa
chore(lint): format entry shim
2026-01-13 08:43:54 +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
fcac2464e6
refactor: remove redundant spread fallbacks
2026-01-13 08:40:39 +00:00
Peter Steinberger
3eb48cbea7
docs: complete channels rename sweep
2026-01-13 08:40:39 +00:00
Peter Steinberger
72a48c4992
docs: align channels naming
2026-01-13 08:40:39 +00:00
Peter Steinberger
993c1de361
fix: stabilize channel migration
2026-01-13 08:40:39 +00:00
Peter Steinberger
90342a4f3a
refactor!: rename chat providers to channels
2026-01-13 08:40:39 +00:00
Peter Steinberger
0cd632ba84
Merge pull request #832 from danielz1z/fix/overloaded-error-handling
...
fix: handle Anthropic overloaded_error gracefully
2026-01-13 08:33:16 +00:00
Peter Steinberger
e8779ac329
fix: handle Anthropic overloaded_error gracefully ( #832 ) (thanks @danielz1z)
2026-01-13 08:32:06 +00:00
Peter Steinberger
32d844d3b6
fix: preserve execArgv on reexec
2026-01-13 08:31:50 +00:00
danielz1z
36725ce153
fix: handle Anthropic overloaded_error gracefully
...
When Anthropic's API returns an overloaded_error (temporary capacity issue),
the raw JSON error was being sent to users instead of a friendly message.
Changes:
- Add overloaded error pattern detection
- Return user-friendly message for overloaded errors
- Classify overloaded as failover-worthy (triggers retry logic)
2026-01-13 08:18:59 +00:00
Peter Steinberger
0d537ece10
docs: add minimax coding plan referral
2026-01-13 08:15:44 +00:00
Peter Steinberger
f825dd2897
chore(lint): format live profiles test
2026-01-13 08:03:58 +00:00
Peter Steinberger
9faa95d558
fix: recover from compaction overflow
2026-01-13 08:03:11 +00:00
Peter Steinberger
365cbe8d50
docs: clarify Discord requireMention placement
2026-01-13 08:03:11 +00:00
Peter Steinberger
9a322d52e2
docs: update faq and install guidance
2026-01-13 08:03:11 +00:00
Peter Steinberger
89013efbca
docs: fix Discord invite link in showcase
2026-01-13 08:03:11 +00:00
Peter Steinberger
3a90335b5a
chore(lint): satisfy biome checks
2026-01-13 07:53:38 +00:00
Peter Steinberger
676b64e8a3
chore(changelog): note auth profile order fix
2026-01-13 07:53:38 +00:00
Peter Steinberger
9007920695
fix(auth): drop invalid auth profiles from order
2026-01-13 07:53:38 +00:00
Peter Steinberger
2887376646
test: stabilize gpt-5.2 tool-only live check
2026-01-13 07:51:24 +00:00
Peter Steinberger
e48d452c63
docs: credit MiniMax agent-dir fix
2026-01-13 07:30:54 +00:00
Peter Steinberger
165841ae79
fix: suppress experimental sqlite warning at startup
2026-01-13 07:27:32 +00:00
Peter Steinberger
76acdb7ae7
test: silence experimental sqlite warnings in docker
2026-01-13 07:27:32 +00:00
Peter Steinberger
dfbe4041f5
fix: skip Control UI asset check when UI is skipped
2026-01-13 07:27:32 +00:00
Peter Steinberger
4fd1a6dec3
fix: harden doctor install checks
2026-01-13 07:25:25 +00:00
Peter Steinberger
aa394d0e14
chore: update clawtributors (thanks @vrknetha)
2026-01-13 07:19:53 +00:00
Peter Steinberger
d5b17d344b
Merge pull request #722 from vrknetha/feat/slash-bash-command
...
feat(bash): add host-only /bash slash command
2026-01-13 07:18:35 +00:00
Peter Steinberger
8111e18dbd
docs: add Opus/MiniMax fallback examples
2026-01-13 07:15:20 +00:00
Peter Steinberger
ba7d12f205
refactor: centralize onboarding auth paths
2026-01-13 07:12:20 +00:00
Peter Steinberger
ef66ad3b52
docs: group FAQ sections
2026-01-13 07:07:48 +00:00
Peter Steinberger
69e4339af9
Tests: run e2e gateway with node
2026-01-13 07:06:41 +00:00
Peter Steinberger
779904657f
Docs: reorder 2025.1.12 changelog
2026-01-13 07:03:44 +00:00
Peter Steinberger
cb0f6cefa4
Deps: update Pi + Vitest and add Bedrock docs
2026-01-13 06:57:11 +00:00
Peter Steinberger
25ef01b74a
docs: add FAQ table of contents
2026-01-13 06:55:00 +00:00
Peter Steinberger
6db0201fcd
Merge pull request #583 from mitschabaude-bot/feat/agent-model-fallbacks
...
Config: per-agent model fallbacks
2026-01-13 06:54:00 +00:00
Peter Steinberger
40e508823f
Merge pull request #444 from grp06/feature/xhigh-thinking-models
...
Thinking: gate xhigh by model
2026-01-13 06:51:39 +00:00
Peter Steinberger
3368284b2a
fix: per-agent model fallbacks ( #583 ) (thanks @mitschabaude-bot)
2026-01-13 06:50:41 +00:00
Gregor's Bot
ece01d89fe
Docs: document agents.list model fallbacks
2026-01-13 06:50:20 +00:00
Gregor's Bot
9c0c4f50ec
Agents: test per-agent model fallbacks override
2026-01-13 06:50:20 +00:00
Gregor's Bot
6729637f61
Config: support per-agent model fallbacks
2026-01-13 06:50:20 +00:00
Peter Steinberger
18d22aa426
fix: gate xhigh by model ( #444 ) (thanks @grp06)
2026-01-13 06:48:41 +00:00
George Pickett
a3641526ab
Thinking: gate xhigh by model
2026-01-13 06:48:26 +00:00
Peter Steinberger
f50e06a1b6
test(tools): cover tool policy helpers
2026-01-13 06:32:59 +00:00
Peter Steinberger
2ae3b45ac1
docs: update changelog for tool schema and profiles
2026-01-13 06:31:12 +00:00
Peter Steinberger
780a43711f
feat(tools): add tool profiles and group shorthands
2026-01-13 06:30:20 +00:00
Peter Steinberger
d682b604de
fix(tools): harden tool schemas for strict providers
2026-01-13 06:30:20 +00:00
vrknetha
721a6bf0f9
Docs: document bash chat command
2026-01-13 11:56:51 +05:30
vrknetha
25a5f1cb96
Auto-reply: add host-only /bash + ! bash command
2026-01-13 11:54:34 +05:30
Peter Steinberger
fa75d84b75
docs: clarify clawdhub workdir defaults
2026-01-13 06:05:06 +00:00
Peter Steinberger
bb2df13be0
Merge pull request #700 from clawdbot/shadow/compaction
...
Agents: safeguard compaction summarization
2026-01-13 05:59:15 +00:00
Peter Steinberger
5918def440
fix: honor gateway service override labels
2026-01-13 05:58:49 +00:00
Peter Steinberger
1fdd3592d3
fix: tune compaction safeguard schema ( #700 ) (thanks @thewilloftheshadow)
2026-01-13 05:58:35 +00:00
Shadow
a96d299971
Agents: safeguard compaction summarization
2026-01-13 05:55:30 +00:00
Peter Steinberger
42ff634a9d
docs: add model routing faq
2026-01-13 05:47:57 +00:00
Peter Steinberger
b45d7c3256
docs: add custom skills folder faq
2026-01-13 05:35:32 +00:00
Peter Steinberger
77ca508274
docs: clarify dashboard token auth
2026-01-13 05:31:26 +00:00
Peter Steinberger
61b7398cb7
refactor: centralize auth-choice model defaults
2026-01-13 05:25:16 +00:00
Peter Steinberger
0321d5ed74
Merge pull request #740 from jeffersonwarrior/main
...
feat: add Tailscale binary detection, custom gateway IP binding, and health probe auth fix
2026-01-13 05:22:48 +00:00
Peter Steinberger
78627ce7c2
fix: tighten custom bind probing ( #740 ) (thanks @jeffersonwarrior)
2026-01-13 05:21:59 +00:00
Jefferson Warrior
c851bdd47a
feat: add Tailscale binary detection, IP binding modes, and health probe password fix
...
This PR includes three main improvements:
1. Tailscale Binary Detection with Fallback Strategies
- Added findTailscaleBinary() with multi-strategy detection:
* PATH lookup via 'which' command
* Known macOS app path (/Applications/Tailscale.app/Contents/MacOS/Tailscale)
* find /Applications for Tailscale.app
* locate database lookup
- Added getTailscaleBinary() with caching
- Updated all Tailscale operations to use detected binary
- Added TUI warning when Tailscale binary not found for serve/funnel modes
2. Custom Gateway IP Binding with Fallback
- New bind mode "custom" allowing user-specified IP with fallback to 0.0.0.0
- Removed "tailnet" mode (folded into "auto")
- All modes now support graceful fallback: custom (if fail → 0.0.0.0), loopback (127.0.0.1 → 0.0.0.0), auto (tailnet → 0.0.0.0), lan (0.0.0.0)
- Added customBindHost config option for custom bind mode
- Added canBindTo() helper to test IP availability before binding
- Updated configure and onboarding wizards with new bind mode options
3. Health Probe Password Auth Fix
- Gateway probe now tries both new and old passwords
- Fixes issue where password change fails health check if gateway hasn't restarted yet
- Uses nextConfig password first, falls back to baseConfig password if needed
Files changed:
- src/infra/tailscale.ts: Binary detection + caching
- src/gateway/net.ts: IP binding with fallback logic
- src/config/types.ts: BridgeBindMode type + customBindHost field
- src/commands/configure.ts: Health probe dual-password try + Tailscale detection warning + bind mode UI
- src/wizard/onboarding.ts: Tailscale detection warning + bind mode UI
- src/gateway/server.ts: Use new resolveGatewayBindHost
- src/gateway/call.ts: Updated preferTailnet logic (removed "tailnet" mode)
- src/commands/onboard-types.ts: Updated GatewayBind type
- src/commands/onboard-helpers.ts: resolveControlUiLinks updated
- src/cli/*.ts: Updated bind mode casts
- src/gateway/call.test.ts: Removed "tailnet" mode test
2026-01-13 05:20:02 +00:00
Peter Steinberger
9ec0016258
chore: regenerate protocol models
2026-01-13 05:18:07 +00:00
Peter Steinberger
01776e0569
refactor: dedupe OAuth flow handlers
2026-01-13 05:14:05 +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
8eb1c76337
fix: clean up api key validation
2026-01-13 05:12:42 +00:00
Peter Steinberger
f94ad21f1e
style: format cron cli flags
2026-01-13 05:05:39 +00:00
Peter Steinberger
8d640ccc68
Merge pull request #726 from FrieSei/feature/chutes-oauth
...
Auth: add Chutes OAuth
2026-01-13 05:02:25 +00:00
Peter Steinberger
f566e6451f
fix: harden Chutes OAuth flow ( #726 ) (thanks @FrieSei)
2026-01-13 05:01:08 +00:00
Peter Steinberger
75a7855223
feat: cron ISO at + delete-after-run
2026-01-13 04:55:48 +00:00
Peter Steinberger
8f105288d2
Merge pull request #783 from ananth-vardhan-cn/fix/756-gemini-cli-id-field
...
fix(providers): strip unsupported id field from google-gemini-cli function calls
2026-01-13 04:51:50 +00:00
Peter Steinberger
696a6ec4d4
fix: strip gemini-cli tool ids ( #783 ) (thanks @ananth-vardhan-cn)
2026-01-13 04:51:05 +00:00
Friederike Seiler
3271ff1d6e
Tests: clean chutes fetch spies
2026-01-13 04:50:27 +00:00
Friederike Seiler
0efcfc0864
Chores: fix chutes oauth build
2026-01-13 04:50:27 +00:00
Friederike Seiler
0aba911912
Chores: format chutes oauth
2026-01-13 04:50:26 +00:00
Friederike Seiler
4efb5cc18e
Auth: add Chutes OAuth
2026-01-13 04:50:26 +00:00
Peter Steinberger
57db3f22a1
fix: clean lint in auth-choice + tests
2026-01-13 04:49:04 +00:00
Peter Steinberger
9b44c80b30
docs: add X showcases
2026-01-13 04:41:01 +00:00
Peter Steinberger
7c7f4d0eb7
chore(discord): restore gateway log context
2026-01-13 04:40:22 +00:00
Peter Steinberger
ccc24e2c26
chore(logging): strip redundant provider tags
2026-01-13 04:40:22 +00:00
Peter Steinberger
62bdbe1821
chore(logging): strip redundant console prefixes
2026-01-13 04:40:22 +00:00
Peter Steinberger
58d1d11762
chore(discord): trim gateway log prefixes
2026-01-13 04:40:22 +00:00
Peter Steinberger
8a9096cd52
Merge pull request #823 from roshanasingh4/fix/820-tailscale-allow-token
...
Fix allowTailscale bypass for token auth in Serve mode
2026-01-13 04:39:55 +00:00
Peter Steinberger
b70298fbca
fix: document Tailscale Serve auth headers ( #823 ) (thanks @roshanasingh4)
2026-01-13 04:37:04 +00:00
Roshan Singh
7616b02bb1
Fix tailscale allowTailscale bypass in token mode
2026-01-13 04:34:28 +00:00
Peter Steinberger
d4c205f8e1
fix: start typing on message start
2026-01-13 04:33:24 +00:00
Peter Steinberger
0ba60ff69c
Merge pull request #794 from roshanasingh4/fix/777-windows-openurl-quotes
...
Fix Antigravity OAuth login on Windows (quote URL for cmd start)
2026-01-13 04:28:11 +00:00
Peter Steinberger
755a7e1b20
feat: add configurable bootstrap truncation
2026-01-13 04:27:03 +00:00
Peter Steinberger
3061d8e057
fix: preserve Windows cmd start URL quoting ( #794 ) (thanks @roshanasingh4)
2026-01-13 04:26:43 +00:00
Peter Steinberger
ea5597b483
fix: restore implicit providers + copilot auth choice
2026-01-13 04:26:08 +00:00
Peter Steinberger
b41e75a15d
feat: cron agent binding + doctor UI refresh
2026-01-13 04:25:41 +00:00
meaningfool
bfdbaa5ab6
feat(doctor): add UI protocol freshness check
2026-01-13 04:25:41 +00:00
meaningfool
93ae3b8405
fix: sync protocol artifacts and resolve linting errors
2026-01-13 04:25:41 +00:00
meaningfool
f249a82383
fix: resolve CI failures (test timeout & formatting)
2026-01-13 04:25:41 +00:00
Roshan Singh
ea9486ae2d
Fix: quote URLs when opening browser on Windows
2026-01-13 04:23:20 +00:00
Shadow
da95b58a2a
Typing: keep indicators active during tool runs
...
Closes #450
Closes #447
2026-01-12 22:20:29 -06:00
Shadow
e15d5d0533
Cron: persist enabled=false patches
...
Closes #205
2026-01-12 22:16:17 -06:00
Peter Steinberger
1cf45f8439
Merge pull request #805 from marcmarg/fix/strip-thought-signatures
...
fix: strip thought_signature fields for cross-provider compatibility
2026-01-13 04:14:45 +00:00
Peter Steinberger
2a9ef806a0
fix: strip only msg_* thought_signature ( #805 ) (thanks @marcmarg)
2026-01-13 04:13:24 +00:00
Peter Steinberger
32115a8b98
test: expand auth fallback coverage
2026-01-13 04:12:16 +00:00
Shadow
7ce902b096
Control UI: preserve chat scroll when scrolled up
...
Closes #217
2026-01-12 22:11:43 -06:00
Marc
c4e8b60d2c
fix: strip thought_signature fields for cross-provider compatibility
...
Claude's extended thinking feature generates thought_signature fields
(message IDs like "msg_abc123...") in content blocks. When these are
sent to Google's Gemini API, it expects Base64-encoded bytes and
rejects Claude's format with a 400 error.
This commit adds stripThoughtSignatures() to remove these fields from
assistant message content blocks during sanitization, enabling session
histories to be shared across different providers (e.g., Claude → Gemini).
Fixes cross-provider session bug where switching from Claude-thinking
to Gemini (or vice versa) would fail with:
"Invalid value at 'thought_signature' (TYPE_BYTES), Base64 decoding failed"
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-13 04:11:02 +00:00
Shadow
c9fdd68232
Telegram: keep forum topic thread ids in replies
...
Closes #727
2026-01-12 22:07:28 -06:00
Peter Steinberger
50260fd385
fix: sync protocol outputs
2026-01-13 04:04:22 +00:00
Peter Steinberger
0822f5610a
Merge pull request #822 from clawdbot/fix/credential-fallback-761
...
fix: treat credential validation failures as auth errors for fallback
2026-01-13 04:03:02 +00:00
Peter Steinberger
2c2ca7f03b
fix: treat credential validation errors as auth errors ( #822 ) (thanks @sebslight)
2026-01-13 04:02:47 +00:00
Sebastian
c4014c0092
fix: treat credential validation failures as auth errors for fallback ( #761 )
2026-01-12 22:53:21 -05:00
Shadow
c08441c42c
Telegram: persist polling update offsets
...
Closes #739
2026-01-12 21:52:20 -06:00
Peter Steinberger
980f274fc9
fix: stabilize docs and tests after system event timestamps
2026-01-13 03:51:34 +00:00
Shadow
9f1f65f0e3
Discord: dedupe listener registration on reload
...
Closes #744
2026-01-12 21:41:59 -06:00
Peter Steinberger
cddd836909
Merge pull request #821 from gumadeiras/fix-bindings-telegram-webhook
...
Telegram: fix webhook multi-account routing (respect bindings.accountId)
2026-01-13 03:41:17 +00:00
Peter Steinberger
bab7eeaf91
fix: respect telegram webhook bindings ( #821 ) (thanks @gumadeiras)
2026-01-13 03:40:30 +00:00
Peter Steinberger
d45915d39f
fix: refine group intro prompt guidance
2026-01-13 03:40:27 +00:00
Shadow
fcc814accd
System events: add local timestamps in prompt injection
...
Closes #245
2026-01-12 21:38:56 -06:00
Peter Steinberger
78a3d965e0
chore: update clawtributors
2026-01-13 03:38:11 +00:00
Peter Steinberger
66ad8a9289
fix: apply lint fixes
2026-01-13 03:36:53 +00:00
Peter Steinberger
df6634727e
fix: refine synthetic provider + minimax probes
2026-01-13 03:36:53 +00:00
Travis Hinton
8b5cd97ceb
Add Synthetic provider support
2026-01-13 03:36:53 +00:00
Shadow
25297ce3f5
Cron: accept jobId in gateway cron params
...
Closes #252
2026-01-12 21:35:43 -06:00
Gustavo Madeira Santana
3800fea962
Improve webhook test config verification
...
Refactors tests to use a shared config object and adds stricter assertions to verify that the config is passed correctly to createTelegramBot. Ensures the bindings property is checked in the test expectations.
2026-01-13 03:34:32 +00:00
Gustavo Madeira Santana
ecb91bbb1a
Add accountId and config support to Telegram webhook
...
The Telegram webhook and monitor now accept and pass through accountId and config parameters, enabling routing and configuration per Telegram account. Tests have been updated to verify correct bot instantiation and DM routing based on accountId bindings.
2026-01-13 03:34:32 +00:00
Shadow
ab993904d7
Models: normalize Gemini 3 ids in runtime selection
...
Closes #795
2026-01-12 21:32:53 -06:00
Shadow
2467a103b2
TUI: keep streamed text when final output is empty
...
Closes #747
2026-01-12 21:29:15 -06:00
Shadow
68569afb4b
Slack: accept slash command names with or without leading slash
...
Closes #798
2026-01-12 21:27:04 -06:00
Peter Steinberger
67d0ab3030
docs: simplify local models guidance
2026-01-13 03:26:00 +00:00
Peter Steinberger
4024bca55d
docs: add custom memory endpoint example
2026-01-13 03:21:59 +00:00
Peter Steinberger
b928b96af5
fix: sync Moonshot Kimi K2 models ( #818 ) (thanks @mickahouan)
...
Co-authored-by: mickahouan <mickahouan@users.noreply.github.com >
2026-01-13 03:19:49 +00:00
Peter Steinberger
cb871a3fc1
Merge pull request #819 from mukhtharcm/feature/memory-search-custom-endpoint
...
feat(memory): support custom OpenAI-compatible embedding endpoints
2026-01-13 03:11:21 +00:00
Peter Steinberger
da0a062fa7
fix: memory search remote overrides ( #819 ) (thanks @mukhtharcm)
2026-01-13 03:11:03 +00:00
Muhammed Mukhthar CM
ba316a10cc
feat: add remote config overrides to memorySearch
2026-01-13 03:02:43 +00:00
Peter Steinberger
4086408b10
docs: add Microsoft Teams to README
2026-01-13 02:42:16 +00:00
Peter Steinberger
c1f82d9ec1
refactor: dedupe enforceFinalTag resolution
2026-01-13 02:38:07 +00:00
Peter Steinberger
eb6cace60f
docs: update README providers and stars
2026-01-13 02:34:54 +00:00
Peter Steinberger
00f4331343
Merge pull request #796 from gabriel-trigo/bugfix/ai-snapshot-limit
...
Fix AI snapshot size overflow
2026-01-13 02:33:53 +00:00
Peter Steinberger
cb469ecf45
Merge pull request #818 from mickahouan/chore-pre-update-2026-01-12
...
feat: add Kimi K2 variants to Moonshot preset
2026-01-13 02:33:48 +00:00
Peter Steinberger
46a694bbc7
fix: preserve explicit maxChars=0 ( #796 ) (thanks @gabriel-trigo)
2026-01-13 02:33:38 +00:00
Peter Steinberger
56c406b19e
chore: credit @ThomsenDrake
...
Co-authored-by: ThomsenDrake <ThomsenDrake@users.noreply.github.com >
2026-01-13 02:33:38 +00:00
Gabriel Trigo
79a6506593
fix(browser): limit ai snapshot size
...
test(browser): cover ai snapshot limit
2026-01-13 02:33:38 +00:00
Peter Steinberger
99a6fcf3f7
fix: add Kimi K2 variants to Moonshot preset ( #818 ) (thanks @mickahouan)
2026-01-13 02:32:29 +00:00
Mickaël Ahouansou
abe9440096
feat: add Kimi K2 variants to Moonshot preset
2026-01-13 02:26:43 +00:00
Peter Steinberger
542c8020ec
docs: clarify minimax lightning routing
2026-01-13 02:21:24 +00:00
Peter Steinberger
8edf2146ae
fix: cleanup stale resume cli processes
2026-01-13 02:21:20 +00:00
Peter Steinberger
3c8d0083cb
docs: note gh issue newline handling
2026-01-13 02:13:51 +00:00
Peter Steinberger
28248f9602
docs: add repo link to AGENTS
2026-01-13 02:09:03 +00:00
Peter Steinberger
d225c4a7d1
docs: add new showcase cards
2026-01-13 02:08:51 +00:00
Peter Steinberger
e05a8477b9
Merge pull request #816 from clawdbot/style/account-cards-polish
...
style: polish multi-account cards
2026-01-13 02:07:30 +00:00
Peter Steinberger
357a6e340a
docs: update changelog for account card polish ( #816 ) (thanks @steipete)
2026-01-13 02:07:09 +00:00
Peter Steinberger
a87d37f26d
style: polish multi-account cards
2026-01-13 02:05:00 +00:00
Peter Steinberger
958a4fd414
Merge pull request #782 from AbhisekBasu1/fix/antigravity-opus-tools-not-working
...
Fix - Opus on Antigravity Errors
2026-01-13 01:59:52 +00:00
Peter Steinberger
a27efd57bd
fix: drop null-only union variants ( #782 ) (thanks @AbhisekBasu1)
...
Co-authored-by: Abhi <AbhisekBasu1@users.noreply.github.com >
2026-01-13 01:58:30 +00:00
Peter Steinberger
d57db17300
docs: clarify semantic memory key requirements
2026-01-13 01:53:40 +00:00
Peter Steinberger
4f1c6e76fd
fix: gate inline /status stripping
2026-01-13 01:53:40 +00:00
Peter Steinberger
2111d0c653
test: force real config module for lan onboarding test ( #766 )
2026-01-13 01:53:40 +00:00
Peter Steinberger
642e6acf49
test: unmock config for lan onboarding auto-token ( #766 )
2026-01-13 01:53:40 +00:00
Peter Steinberger
88716d8d2a
fix: harden inline /status stripping ( #766 )
2026-01-13 01:53:40 +00:00
Peter Steinberger
c2e37c78ff
fix: trim sender ids before auth fallback
2026-01-13 01:53:40 +00:00
Peter Steinberger
5a2688c7b5
Merge pull request #813 from dbhurley/feat/multi-account-ui-clean
...
feat(ui): display per-account status for multi-account Telegram
2026-01-13 01:52:56 +00:00
Abhi
ba1d80bd00
formatting fix
2026-01-13 01:48:56 +00:00
Abhi
4dfcd56893
Fix pi-tools test ordering and clean-for-gemini handling - which fixes the 400 error people are experiencing trying to use antigravity on opus
2026-01-13 01:48:34 +00:00
Peter Steinberger
e0ddc488d0
Merge pull request #810 from mcinteerj/fix/runtime-reasoning-enforcement
...
fix(auto-reply): enforce reasoning tags on fallback providers
2026-01-13 01:46:41 +00:00
Peter Steinberger
c012019a8a
fix: enforce reasoning tags on fallback providers ( #810 ) (thanks @mcinteerj)
2026-01-13 01:46:21 +00:00
Keith the Silly Goose
7896b30489
fix(auto-reply): enforce reasoning tags on fallback providers
2026-01-13 01:40:55 +00:00
Peter Steinberger
ffc465394e
fix: enforce message context isolation
2026-01-13 01:19:14 +00:00
Peter Steinberger
0edbdb1948
fix: downgrade Gemini tool history
2026-01-13 01:19:13 +00:00
hsrvc
5dc187f00c
fix: accept Claude/Gemini tool param aliases
2026-01-13 01:19:13 +00:00
Peter Steinberger
231d2d5fdf
fix(config): require doctor for invalid configs ( #764 — thanks @mukhtharcm)
2026-01-13 01:18:18 +00:00
Muhammed Mukhthar CM
20ba8d4891
fix(config): preserve config data when validation fails
...
When readConfigFileSnapshot encounters validation errors, it now:
1. Returns the resolved config data instead of empty object
2. Uses passthrough() on main schema to preserve unknown fields
This prevents config loss when:
- User has custom/unknown fields
- Legacy config issues are detected but config is otherwise valid
- Zod schema does not recognize newer fields
Fixes config being overwritten with empty object on validation failure.
2026-01-13 01:16:13 +00:00
Peter Steinberger
b32f6a0e00
docs: update clawtributors
2026-01-13 01:12:34 +00:00
Peter Steinberger
e5c77315ce
chore: credit @ThomsenDrake
...
Co-authored-by: ThomsenDrake <ThomsenDrake@users.noreply.github.com >
2026-01-13 01:11:29 +00:00
Peter Steinberger
dd8f7552ad
refactor: reuse dispatcher helper for native commands
2026-01-13 01:07:59 +00:00
DB Hurley
95ed49ce9a
feat(ui): display per-account status for multi-account Telegram
...
When multiple Telegram accounts are configured, the Connections UI now
displays individual status cards for each account showing:
- Bot username and account ID
- Running/configured status
- Last inbound message time
- Per-account errors
Falls back to the existing summary view for single-account configs.
No changes needed to types (already added upstream).
2026-01-12 20:03:06 -05:00
Peter Steinberger
92760de472
Merge pull request #781 from ronyrus/fix/update-doctor-noninteractive
...
fix: pass --non-interactive to doctor during update
2026-01-13 00:59:52 +00:00
Peter Steinberger
24190d09da
fix: document non-interactive update doctor ( #781 ) (thanks @ronyrus)
2026-01-13 00:58:56 +00:00
Rony Kelner
07bdb8af7e
fix: pass --non-interactive to doctor during update
2026-01-13 00:57:18 +00:00
Peter Steinberger
6a48688c09
fix: stream native slash tool replies
2026-01-13 00:53:30 +00:00
Peter Steinberger
c03a745f61
test: expand Minimax XML strip coverage
2026-01-13 00:43:59 +00:00
Peter Steinberger
48fdf3775d
test: cover user turn merging
2026-01-13 00:42:15 +00:00
Peter Steinberger
e5708d443a
Merge pull request #809 from latitudeki5223/fix/minimax-tool-xml-leak
...
fix(minimax): strip tool invocation XML from assistant text
2026-01-13 00:37:29 +00:00
Peter Steinberger
e2ea20f862
fix: gate minimax XML stripping ( #809 ) (thanks @latitudeki5223)
2026-01-13 00:36:39 +00:00
L36 Server
1eb924739b
style: fix import order in pi-embedded-utils.test.ts
2026-01-13 00:34:01 +00:00
L36 Server
350f956f2c
fix(minimax): strip tool invocation XML from assistant text
2026-01-13 00:34:01 +00:00
Peter Steinberger
1f3ae2346e
docs: clarify memory search auth
2026-01-13 00:26:01 +00:00
Peter Steinberger
4f3bedfdb7
fix: align discord autoThread config types
2026-01-13 00:22:42 +00:00
Peter Steinberger
6f75feaeb8
refactor: reuse model selection assertions
2026-01-13 00:20:08 +00:00
Peter Steinberger
e949cc383f
docs: update changelog
2026-01-13 00:16:15 +00:00
Peter Steinberger
a4bd960880
refactor: streamline thread reply planning
2026-01-13 00:15:29 +00:00
Peter Steinberger
3636a2bf51
refactor: unify message tool + CLI
2026-01-13 00:12:57 +00:00
Peter Steinberger
103003d9ff
docs: add provider shorthand redirects
2026-01-13 00:08:11 +00:00
Peter Steinberger
ce23c70855
fix: validate Anthropic turn order ( #804 ) (thanks @ThomsenDrake)
2026-01-12 23:43:25 +00:00
Drake Thomsen
c5fa757ef6
fix(agents): prevent Anthropic 400 'Incorrect role information' error
...
Add validateAnthropicTurns() to merge consecutive user messages that can
occur when steering messages are injected during streaming. This prevents
the API from rejecting requests due to improper role alternation.
Changes:
- Add validateAnthropicTurns() function in pi-embedded-helpers.ts
- Integrate validation into sanitization pipeline in pi-embedded-runner.ts
- Add user-friendly error message for role ordering errors
- Add comprehensive tests for the new validation function
2026-01-12 23:42:13 +00:00
Peter Steinberger
bb9a9633a8
fix: align reply threading refs
2026-01-12 23:41:40 +00:00
Peter Steinberger
ca98f87b2f
chore: reinforce memory recall prompts
2026-01-12 23:29:56 +00:00
Peter Steinberger
df64771ecf
test: cover fuzzy model selection
2026-01-12 23:16:54 +00:00
Peter Steinberger
cbe11e3de0
fix: address lint warnings
2026-01-12 23:13:40 +00:00
Peter Steinberger
daa753112c
fix: unblock auto-reply lint/typecheck
2026-01-12 23:13:39 +00:00
David Guttman
2e654e8d63
Fix Discord autoThread thread-only replies ( #807 )
...
Co-authored-by: Shadow <shadow@clawd.bot >
2026-01-12 17:11:48 -06:00
Peter Steinberger
cf92099d40
test(auto-reply): fix heartbeat typing block reply assertions
2026-01-12 23:01:53 +00:00
Peter Steinberger
a55c880191
docs: add changelog for sandbox memory shorthand
2026-01-12 22:59:36 +00:00
Peter Steinberger
a8680f9a09
fix(auto-reply): fix streaming block reply media handling
2026-01-12 22:59:36 +00:00
Peter Steinberger
2e08a868a7
style: format native commands bits
2026-01-12 22:59:36 +00:00
Peter Steinberger
2785009c6f
fix(config): resolve native commands schemas
2026-01-12 22:59:36 +00:00
Peter Steinberger
73d9469bf8
fix(telegram): tolerate missing native command APIs
2026-01-12 22:59:36 +00:00
Peter Steinberger
72100ba3ab
refactor(sandbox): drop legacy memory shorthand
2026-01-12 22:59:36 +00:00
Peter Steinberger
ec5099db89
fix: pick best fuzzy model match
2026-01-12 22:59:35 +00:00
Peter Steinberger
209380edf8
Merge pull request #801 from mcinteerj/fix/restore-reasoning-tag-check
...
fix(agent): restore reasoning tag enforcement for non-ollama providers
2026-01-12 22:59:13 +00:00
Peter Steinberger
cf8251bb81
test: cover typing signals from block and tool streams
2026-01-12 22:55:17 +00:00
Peter Steinberger
6ed2d69ff9
docs: clarify telegram allowFrom
2026-01-12 22:45:39 +00:00
Peter Steinberger
e7e544174f
docs: add region guidance for hosted minimax
2026-01-12 22:45:00 +00:00
Peter Steinberger
9b0d9db3a3
docs: detail memory tools and local models
2026-01-12 22:35:19 +00:00
Peter Steinberger
fd768334a9
refactor: fast-lane directives helpers
2026-01-12 22:34:13 +00:00
Peter Steinberger
9f90d0721a
docs: note relative plugin install paths
2026-01-12 22:34:13 +00:00
Peter Steinberger
1920138122
docs: add voice-call plugin changelog
2026-01-12 22:34:13 +00:00
Peter Steinberger
27d940f5b6
refactor: reuse streaming text normalizer across callbacks
2026-01-12 22:27:56 +00:00
Peter Steinberger
7ba72aeb6c
fix: make pw download tests platform-safe
2026-01-12 22:27:19 +00:00
Peter Steinberger
f19d37c7bb
build: harden installer smoke apt
2026-01-12 22:21:50 +00:00
Peter Steinberger
9d5bf38416
style(telegram): format bot.ts
2026-01-12 22:19:02 +00:00
Peter Steinberger
e0c1f2fdc0
test(agents): avoid Copilot token fetch in image-tool tests
2026-01-12 22:19:02 +00:00
Peter Steinberger
08fdac0561
fix(telegram): guard setMyCommands in native commands
2026-01-12 22:19:02 +00:00
Peter Steinberger
d3eeddfc2f
chore: fix lint after rebase
2026-01-12 22:19:02 +00:00
Peter Steinberger
0a24bc0427
docs(changelog): note scrollintoview
2026-01-12 22:19:02 +00:00
Peter Steinberger
9da97d1a41
test(browser): expand scrollintoview coverage
2026-01-12 22:19:02 +00:00
Peter Steinberger
29b7b2068a
refactor: centralize streaming text normalization
2026-01-12 22:17:14 +00:00
Peter Steinberger
f4ab057807
fix: start typing on partial deltas
2026-01-12 22:16:29 +00:00
Peter Steinberger
cb35db0c7e
docs: note to echo docs links after edits
2026-01-12 22:13:12 +00:00
Peter Steinberger
f13db1c836
test: guard telegram native commands when mock lacks .command
2026-01-12 22:12:16 +00:00
Peter Steinberger
59063a7c15
test: skip setMyCommands when API mock lacks it
2026-01-12 22:08:53 +00:00
Peter Steinberger
5bc4971432
chore: fix lint warnings
2026-01-12 22:07:39 +00:00
Peter Steinberger
59c8d2d17f
docs: clarify sandbox bind mounts ( #790 )
2026-01-12 22:06:35 +00:00
Peter Steinberger
21405b0dfc
fix(discord): rebalance reasoning italics
2026-01-12 22:01:48 +00:00
Peter Steinberger
256304037e
fix: keep Claude file_path aliases validated
2026-01-12 22:00:08 +00:00
Peter Steinberger
d8ae905d54
Merge pull request #790 from akonyer/feature/custom-sandbox-binds
...
Custom sandbox binds for docker sandbox
2026-01-12 21:58:31 +00:00
Peter Steinberger
bbc34215a2
fix: land sandbox binds ( #790 ) (thanks @akonyer)
2026-01-12 21:58:16 +00:00
Aaron Konyer
583fc4fb11
test(sandbox): add coverage for binds -v flag emission
2026-01-12 21:57:51 +00:00
Aaron Konyer
0b2b8c7c52
Add docker bind mounds for sandboxing
2026-01-12 21:57:51 +00:00
Peter Steinberger
5d83be76c9
test: cover mixed directive fast-lane
2026-01-12 21:57:10 +00:00
Peter Steinberger
877bc61b53
docs(browser): document scrollintoview
2026-01-12 21:56:27 +00:00
Peter Steinberger
fcaeee7073
test(browser): cover scrollintoview
2026-01-12 21:56:27 +00:00
Peter Steinberger
6857f16609
feat(browser): add scrollintoview action
2026-01-12 21:56:27 +00:00
Peter Steinberger
2faf7cea93
feat(sandbox): add tool-policy groups
2026-01-12 21:51:49 +00:00
Peter Steinberger
26d5cca97c
feat: auto native commands defaults
2026-01-12 21:49:44 +00:00
Peter Steinberger
99fea64823
fix: fast-lane directives bypass queue dedupe
2026-01-12 21:44:19 +00:00
Peter Steinberger
42c17adb5e
feat: restore voice-call plugin parity
2026-01-12 21:44:19 +00:00
Zach Knickerbocker
3467b0ba07
Discord: add allowBots config option ( #802 )
...
Co-authored-by: Shadow <shadow@clawd.bot >
2026-01-12 15:30:05 -06:00
Peter Steinberger
490cb834e5
style: italicize reasoning output
2026-01-12 21:24:36 +00:00
Peter Steinberger
cd12ad8aab
fix(image): accept @-prefixed file paths
2026-01-12 20:53:16 +00:00
Jake
eceb41f6f7
fix(agent): restore reasoning tag enforcement for non-ollama providers
...
This restores the fix from PR #754 which was accidentally reverted in bf11a42c3 .
2026-01-13 09:47:04 +13:00
Peter Steinberger
6f496b7739
fix(macos): treat tests as preview
2026-01-12 20:38:34 +00:00
Peter Steinberger
e961e02f71
fix(gateway): quiet loopback ws closes
2026-01-12 20:38:34 +00:00
Peter Steinberger
36a02b3e67
fix(image): route MiniMax vision to VLM
2026-01-12 20:38:34 +00:00
David Guttman
b73042500e
Discord: per-channel autoThread ( #800 )
...
Co-authored-by: Shadow <shadow@clawd.bot >
2026-01-12 14:33:07 -06:00
Peter Steinberger
6406ed869a
docs(browser): document downloads + responsebody
2026-01-12 19:41:12 +00:00
Peter Steinberger
f839d949b2
test(browser): cover downloads + responsebody
2026-01-12 19:41:12 +00:00
Peter Steinberger
d4f7dc067e
feat(browser): add downloads + response bodies
2026-01-12 19:41:12 +00:00
Peter Steinberger
3dbfe65eea
Merge pull request #791 from roshanasingh4/fix/788-implicit-delivery-leak
...
Prevent onboarding TUI from auto-delivering to lastProvider/lastTo
2026-01-12 19:39:05 +00:00
Peter Steinberger
ddd4b55cf6
fix: prevent onboarding TUI auto-delivery ( #791 ) (thanks @roshanasingh4)
2026-01-12 19:38:52 +00:00
Roshan Singh
298c6eea1f
Fix: prevent onboarding TUI auto-delivery
2026-01-12 19:31:04 +00:00
Peter Steinberger
74806aa5e3
docs: add dashboard faq
2026-01-12 19:14:08 +00:00
Peter Steinberger
55aeb8a0d3
fix(image): drop temperature for OpenAI
2026-01-12 19:09:15 +00:00
Peter Steinberger
86ea00dc21
fix(tools): accept legacy bash tool calls
2026-01-12 19:09:15 +00:00
Peter Steinberger
a0a7e74a62
fix(models): preserve implicit vision models
2026-01-12 19:09:15 +00:00
Peter Steinberger
bb7397c636
feat: add dashboard command
2026-01-12 19:08:29 +00:00
Peter Steinberger
7dc44b04c1
fix: close memory index and refresh protocol outputs
2026-01-12 18:49:24 +00:00
Peter Steinberger
45232137a2
fix(logging): honor silent console level
2026-01-12 18:46:40 +00:00
Peter Steinberger
b1c3e38df0
refactor(models): share implicit providers
2026-01-12 18:46:40 +00:00
Peter Steinberger
0be62c3542
fix(image): fail over on empty output
2026-01-12 18:46:16 +00:00
Peter Steinberger
523f91758d
test(browser): extend automation coverage
2026-01-12 18:42:46 +00:00
Peter Steinberger
5baba5f84e
docs(browser): expand automation docs
2026-01-12 18:42:46 +00:00
Peter Steinberger
ffbcd83d1e
chore: log elevated and reasoning toggles
2026-01-12 18:37:44 +00:00
Peter Steinberger
1baf9f6a83
fix(image): normalize mime type handling
2026-01-12 18:24:11 +00:00
Peter Steinberger
77b20377cc
fix: stabilize session tools and tests
2026-01-12 18:21:20 +00:00
Peter Steinberger
3ffb9a3b5e
fix: keep session sanitizer stable
2026-01-12 18:19:30 +00:00
Peter Steinberger
29807119d5
chore: format tool guard files
2026-01-12 18:19:30 +00:00
Peter Steinberger
b88ea39b83
fix: add subagent default model typing
2026-01-12 18:18:15 +00:00
Peter Steinberger
0a2dcd844b
fix(image): support data URLs
2026-01-12 18:17:43 +00:00
Peter Steinberger
2ed95634fe
fix: relax image tool agentDir guard
2026-01-12 18:12:51 +00:00
Peter Steinberger
9526f9861a
chore: mark 2026.1.12 unreleased
2026-01-12 18:09:35 +00:00
Peter Steinberger
7b93356fb7
feat: subagent model defaults
2026-01-12 18:08:30 +00:00
Peter Steinberger
17ff25bd20
fix(sandbox): always allow image tool
2026-01-12 18:07:34 +00:00
Peter Steinberger
d24de1ec3b
feat(sandbox): allow image tool
2026-01-12 17:56:51 +00:00
Peter Steinberger
44e1f271c8
fix: keep image sanitizer scoped
2026-01-12 17:55:45 +00:00
Peter Steinberger
8ff09f8337
feat(image): auto-pair image model
2026-01-12 17:50:47 +00:00
Peter Steinberger
e91aa0657e
fix: add copilot tests and lint fixes
2026-01-12 17:48:08 +00:00
Ayaan Zaidi
14801b46fc
Merge pull request #792 from clawdbot/fix/gateway-auth-off
...
fix: clear gateway auth when set to off
2026-01-12 23:10:15 +05:30
Peter Steinberger
99a7548c07
docs(browser): update browser tool docs
2026-01-12 17:32:44 +00:00
Peter Steinberger
35bbc2ba87
feat(cli): expand browser commands
2026-01-12 17:32:44 +00:00
Peter Steinberger
cf78d28d74
test(browser): add regression coverage
2026-01-12 17:32:44 +00:00
Peter Steinberger
eeca541dde
feat(browser): expand browser control surface
2026-01-12 17:32:44 +00:00
Ayaan Zaidi
4bba49770d
fix: clear gateway auth on off selection
2026-01-12 22:59:37 +05:30
Peter Steinberger
f5d5661adf
fix: guard session tool results
2026-01-12 17:28:46 +00:00
Peter Steinberger
f83fb70360
fix: keep main agent in list output
2026-01-12 17:24:03 +00:00
Peter Steinberger
355c13564c
fix: restore heartbeat defaults and model listing
2026-01-12 17:17:54 +00:00
Peter Steinberger
f1dd59bf82
test: update heartbeat and agent list thresholds
2026-01-12 17:14:04 +00:00
Peter Steinberger
fd1e959c2d
fix: clean up models-config provider normalization
2026-01-12 17:14:04 +00:00
Peter Steinberger
1b2c1545a0
docs: harden local model guidance
2026-01-12 17:11:04 +00:00
Peter Steinberger
05ac67c520
refactor: split models-config provider helpers
2026-01-12 17:05:53 +00:00
Peter Steinberger
f5ee2b3a4f
Merge pull request #705 from TAGOOZ/feat/github-copilot-onboard
...
feat: add GitHub Copilot provider
2026-01-12 16:56:51 +00:00
Peter Steinberger
8afdf75e2b
fix: honor copilot config and profiles ( #705 ) (thanks @TAGOOZ)
2026-01-12 16:55:47 +00:00
Peter Steinberger
6aed3c0fd3
docs: add changelog entry for minimax fix
2026-01-12 16:53:53 +00:00
Peter Steinberger
f0fbd8b012
docs: note minimax unknown-model fix
2026-01-12 16:52:49 +00:00
Peter Steinberger
5a3eb5ad62
test: cover models.json apiKey fill
2026-01-12 16:52:43 +00:00
Peter Steinberger
79beb20ba2
fix: make models.json generation fill apiKey
2026-01-12 16:52:43 +00:00
Mustafa Tag Eldeen
3da1afed68
feat: add GitHub Copilot provider
...
Copilot device login + onboarding option; model list auth detection.
2026-01-12 16:52:15 +00:00
Peter Steinberger
717a259056
docs: add local models guide
2026-01-12 16:50:37 +00:00
Ayaan Zaidi
adaa30c73a
test(telegram): cover General topic typing fallback
2026-01-12 22:03:42 +05:30
Azade
ff292e67ce
fix(telegram): show typing indicator in General forum topic
...
In forum supergroups, messages from the General topic arrive without
message_thread_id in updates, but sendChatAction requires one to display
the typing indicator in the correct topic.
Use message_thread_id=1 (Telegram's internal ID for General topic) as
fallback when messageThreadId is undefined in a forum chat.
2026-01-12 22:01:21 +05:30
Peter Steinberger
31752aa944
chore: remove qmd skill
2026-01-12 11:31:34 +00:00
Peter Steinberger
bf11a42c37
feat: add memory vector search
2026-01-12 11:23:44 +00:00
Peter Steinberger
8049f33435
chore: sanitize onboarding api keys
2026-01-12 11:18:31 +00:00
Peter Steinberger
115591c5b6
feat: add cron agent binding
2026-01-12 11:07:38 +00:00
Peter Steinberger
a3938d62f6
chore: raise heartbeat ack window
2026-01-12 11:06:46 +00:00
Peter Steinberger
3c7a8579ad
test: cover minimax env provider injection
2026-01-12 11:05:08 +00:00
Peter Steinberger
f5a9421b10
fix: auto-add minimax provider from auth
2026-01-12 11:05:08 +00:00
Peter Steinberger
562d0e3b5f
fix: avoid duplicate status replies
2026-01-12 11:04:03 +00:00
Peter Steinberger
bf7e813573
chore: release 2026.1.11-4
2026-01-12 10:52:34 +00:00
Peter Steinberger
c69abe08eb
chore: update appcast for 2026.1.11-3
2026-01-12 10:40:31 +00:00
Peter Steinberger
5a29ec78ca
chore: release 2026.1.11-3
2026-01-12 10:35:50 +00:00
Peter Steinberger
42b43f8c58
chore: update appcast for 2026.1.11-2
2026-01-12 10:26:01 +00:00
Peter Steinberger
c1f8f1d9d0
chore: release 2026.1.11-2
2026-01-12 10:14:24 +00:00
Peter Steinberger
35f8be33d2
docs: remove git source install snippet
2026-01-12 10:00:26 +00:00
Peter Steinberger
2a875b486e
chore: update appcast for 2026.1.11-1
2026-01-12 09:54:21 +00:00
Peter Steinberger
c13de0b41d
chore: release 2026.1.11-1
2026-01-12 09:46:34 +00:00
Peter Steinberger
b9bd380ed8
chore: update appcast for 2026.1.11
2026-01-12 09:38:05 +00:00
Peter Steinberger
6bd689a847
chore: release 2026.1.11
2026-01-12 09:27:43 +00:00
Peter Steinberger
8fb655198f
test: skip lan auto-token on windows
2026-01-12 09:20:37 +00:00
Peter Steinberger
a4308a2428
chore: tidy changelog and format
2026-01-12 09:14:44 +00:00
Peter Steinberger
ca8e2bccab
chore: update deps
2026-01-12 09:13:18 +00:00
Peter Steinberger
83c206d68a
test: isolate macos gateway connection control
2026-01-12 09:08:07 +00:00
Peter Steinberger
f102d1bb9d
fix: add ws handshake user agent
2026-01-12 09:08:07 +00:00
Peter Steinberger
fb6a809f91
fix: refresh pnpm patch for pi-ai
2026-01-12 09:05:17 +00:00
Peter Steinberger
d8feadb57a
fix: strip gemini cli tool ids ( #756 )
2026-01-12 09:01:19 +00:00
Peter Steinberger
1050126132
fix: default groupPolicy to open for discord/telegram
2026-01-12 08:55:02 +00:00
Peter Steinberger
9554292083
fix: default groupPolicy to open
2026-01-12 08:55:02 +00:00
Peter Steinberger
a8f67f0be6
fix: only strip inline /status for allowlisted senders
2026-01-12 08:55:02 +00:00
Peter Steinberger
d0a78da54f
docs: update browser snapshot refs
2026-01-12 08:55:02 +00:00
Peter Steinberger
fadad6e061
feat: role snapshot refs for browser
2026-01-12 08:55:02 +00:00
Peter Steinberger
6a7b812513
Merge pull request #768 from hsrvc/fix/tool-param-aliasing
...
Agents: add Claude Code parameter aliasing for read/write/edit tools
2026-01-12 08:54:15 +00:00
Peter Steinberger
6711eaf8a5
fix: finalize tool param aliasing ( #768 ) (thanks @hsrvc)
2026-01-12 08:49:11 +00:00
hsrvc
71fdc829e6
Agents: add Claude Code parameter aliasing for read/write/edit tools
2026-01-12 08:49:11 +00:00
Peter Steinberger
19c96e8c0b
Merge pull request #754 from mcinteerj/fix/reasoning-tag-strip
...
fix(agent): prevent reasoning and tag leaks for Gemini 3/Antigravity models
2026-01-12 08:47:15 +00:00
Peter Steinberger
98e75fce17
test: align group policy defaults
2026-01-12 08:45:57 +00:00
Peter Steinberger
252841ab13
fix: enforce final tag gating ( #754 ) (thanks @mcinteerj)
2026-01-12 08:45:23 +00:00
Keith the Silly Goose
a7cb270999
fix(agent): buffer streaming output until <final> tag appears
...
- Enforces strict buffering when enforceFinalTag is enabled.
- Prevents 'thinking out loud' planning steps (e.g. '*Locating Manulife*') from leaking to WhatsApp.
- Hardens <final> tag stripping to remove nested/hallucinated tags.
2026-01-12 08:34:06 +00:00
Keith the Silly Goose
efdf874407
fix(agent): correctly strip <final> tags from reasoning providers
...
- Added src/utils/provider-utils.ts to track reasoning provider logic
- Updated isReasoningTagProvider to loosely match 'google-antigravity' (fixes sub-models)
- Enabled enforceFinalTag in reply.ts when provider matches
- Verified <final> tag stripping logic in pi-embedded-subscribe.ts
- Updated pi-embedded-runner to use consistent provider check for prompt hints
2026-01-12 08:34:06 +00:00
Peter Steinberger
7db1cbe178
fix: improve daemon node selection
2026-01-12 08:33:32 +00:00
Peter Steinberger
1f63ee565f
fix(macos): surface wizard cli errors
2026-01-12 08:33:25 +00:00
Peter Steinberger
006e1352d8
fix: harden msteams group access
2026-01-12 08:32:08 +00:00
Peter Steinberger
4d075a703e
fix: add ws handshake context
2026-01-12 08:30:08 +00:00
Peter Steinberger
3ab9d99eed
fix(macos): add gateway connect timeout
2026-01-12 08:24:19 +00:00
Peter Steinberger
842e91d019
fix: default groupPolicy to allowlist
2026-01-12 08:22:01 +00:00
Peter Steinberger
ba3158e01a
docs: fix README docs links
2026-01-12 08:22:01 +00:00
Peter Steinberger
8b60003601
fix(macos): harden onboarding wizard session handling
2026-01-12 08:16:47 +00:00
Peter Steinberger
86a2808bff
Merge pull request #771 from carlulsoe/fix/mobile-nav-layout
...
fix(ui): flatten nav into horizontal scroll on mobile/tablet
2026-01-12 08:14:06 +00:00
Peter Steinberger
b77070cccf
fix: keep mobile nav flattened ( #771 ) (thanks @carlulsoe)
2026-01-12 08:13:49 +00:00
Kit
10a50645ef
fix(ui): flatten nav into horizontal scroll on mobile/tablet
...
On screens under 1100px, the nav groups were displaying in a confusing
grid-like pattern. This flattens all nav items into a single horizontal
scrollable row using display:contents to unwrap the group containers.
Also fixes the issue where collapsed nav groups would hide items on
mobile (where the toggle button is hidden), making them inaccessible.
2026-01-12 08:11:08 +00:00
Peter Steinberger
d0ba56c5ac
fix: set default model after auth choice
2026-01-12 08:04:32 +00:00
Peter Steinberger
b8f8e7f4dd
fix: correct MiniMax Lightning hint
2026-01-12 08:04:32 +00:00
Peter Steinberger
3fba8ceb97
test(model): cover provider-less id fuzzy match
2026-01-12 08:02:55 +00:00
Peter Steinberger
60823fd9bd
feat(model): fuzzy /model matching
2026-01-12 07:57:53 +00:00
Peter Steinberger
e79cf5a8b1
feat: improve onboarding auth prompts
2026-01-12 07:47:15 +00:00
Peter Steinberger
018f7aa4df
fix: streamline configure section flow
2026-01-12 07:47:15 +00:00
Peter Steinberger
414ad72d17
docs: clarify memory flush behavior
2026-01-12 07:42:03 +00:00
Peter Steinberger
e1150f1b93
test: expand memory flush coverage
2026-01-12 07:42:03 +00:00
Peter Steinberger
d17fc7e448
fix(auto-reply): preserve inline /status text for unauthorized senders
2026-01-12 07:42:03 +00:00
Peter Steinberger
4c5f78ca01
feat(macos): add wizard debug CLI
2026-01-12 07:41:13 +00:00
Peter Steinberger
43c258c0f2
Merge pull request #763 from thesash/fix/ai-snapshot-truncation
...
Bug fix: cap oversized Playwright AI snapshots that nukes opus 4.5 context
2026-01-12 07:41:09 +00:00
Peter Steinberger
484a33f348
fix: cap ai snapshots for tool calls ( #763 ) (thanks @thesash)
2026-01-12 07:40:34 +00:00
Sash Catanzarite
d5d8c01dc7
Browser: cap AI snapshots to avoid context overflow
2026-01-12 07:40:34 +00:00
Peter Steinberger
097e66391f
fix(auto-reply): show config models in /model
2026-01-12 07:31:20 +00:00
Peter Steinberger
7466575120
fix: ignore inline status directives
2026-01-12 07:13:08 +00:00
Peter Steinberger
e19a5dc2b1
feat(control-ui): add model presets
2026-01-12 07:09:58 +00:00
Peter Steinberger
4f9a08a5cd
docs: clarify usage in slash commands
2026-01-12 07:09:58 +00:00
Peter Steinberger
f00667ea25
fix: clean up lint + guardCancel typing
2026-01-12 07:07:27 +00:00
Peter Steinberger
3ba2eb6298
docs: update changelog for #769
2026-01-12 07:07:07 +00:00
Peter Steinberger
1850013cae
fix: modernize live tests and gemini ids
2026-01-12 07:05:33 +00:00
Peter Steinberger
79cbb20988
docs: add Moonshot provider setup
2026-01-12 06:48:06 +00:00
Peter Steinberger
496bad8b98
feat: add Moonshot auth choice
2026-01-12 06:48:06 +00:00
Peter Steinberger
960ed66501
docs: update slash commands docs
2026-01-12 06:38:16 +00:00
Peter Steinberger
1a89a5dd14
test(model): expand /model picker coverage
2026-01-12 06:34:33 +00:00
Peter Steinberger
5b44825cb3
fix: skip memory flush on read-only workspace
2026-01-12 06:33:27 +00:00
Peter Steinberger
1ffb0fe787
fix: handle inline status for allowlisted senders
2026-01-12 06:33:27 +00:00
Peter Steinberger
40cc7f5426
Merge pull request #755 from juanpablodlc/fix/command-auth-empty-sender-id
...
fix: use logical OR for sender ID fallback in command auth
2026-01-12 06:29:50 +00:00
Peter Steinberger
46a6d79784
fix: sender fallback for command auth ( #755 ) (thanks @juanpablodlc)
2026-01-12 06:28:53 +00:00
juanpablodlc
20d606c4c4
fix: use logical OR for sender ID fallback in command auth
...
The nullish coalescing operator (??) only skips null/undefined, not
empty strings. For direct WhatsApp messages, ctx.SenderId was an empty
string, causing senderRaw to be "" instead of falling through to the
valid ctx.SenderE164 value.
This caused commands like /status to be rejected with "unauthorized
sender" for self-chat WhatsApp messages.
Tested: Verified /status command now works correctly for self-chat
WhatsApp messages after the fix.
2026-01-12 06:20:51 +00:00
Peter Steinberger
e388334127
test: cover pi session jsonl ordering
2026-01-12 06:19:58 +00:00
Peter Steinberger
c9f2358769
test: clean unused var
2026-01-12 06:14:45 +00:00
Peter Steinberger
4044957819
test: fix lint warning
2026-01-12 06:14:45 +00:00
Peter Steinberger
b185d130ba
test: cover inline slash command fast-path
2026-01-12 06:14:45 +00:00
Peter Steinberger
2bed0d78af
test: stabilize lan auto-token onboarding
2026-01-12 06:13:31 +00:00
Peter Steinberger
0baf08fda1
fix: dedupe minimax non-interactive auth
2026-01-12 06:13:31 +00:00
Peter Steinberger
048ee4b838
docs: expand minimax + cerebras setup
2026-01-12 06:13:31 +00:00
Peter Steinberger
c4d85dc045
docs: refresh minimax setup docs
2026-01-12 06:13:31 +00:00
Peter Steinberger
d0861670bd
feat: simplify minimax auth choice
2026-01-12 06:13:00 +00:00
Peter Steinberger
744fadbded
feat: loop configure section picker
2026-01-12 06:13:00 +00:00
Peter Steinberger
0f257f792a
fix: fast-path slash commands
2026-01-12 06:10:17 +00:00
Peter Steinberger
53e04968fe
docs: add peer override example + multi-agent link
2026-01-12 06:05:39 +00:00
Peter Steinberger
285906e546
docs: move model-split example to multi-agent
2026-01-12 06:05:39 +00:00
Peter Steinberger
5bc5b695a9
docs: add FAQ entry for multi-agent model split
2026-01-12 06:05:39 +00:00
Peter Steinberger
2da2057a37
feat(model): add /model picker
2026-01-12 06:02:39 +00:00
Peter Steinberger
121c9bd6f3
style: run swift lint/format
2026-01-12 05:42:10 +00:00
Peter Steinberger
7dbb21be8e
feat: add pre-compaction memory flush
2026-01-12 05:29:18 +00:00
Peter Steinberger
cc8a2457c0
fix: persist first Pi user message in JSONL
2026-01-12 05:18:05 +00:00
Peter Steinberger
f5c851e11e
fix(models): default MiniMax to /anthropic
2026-01-12 05:12:07 +00:00
Peter Steinberger
b4a2cf8382
docs: update changelog
2026-01-12 05:08:11 +00:00
Peter Steinberger
873cee6947
feat: streamline wizard selection prompts
2026-01-12 05:08:07 +00:00
Peter Steinberger
abdf4c30b2
docs: add sky camera showcase
2026-01-12 05:06:08 +00:00
Peter Steinberger
408f52a081
docs: update changelog
2026-01-12 04:58:38 +00:00
Peter Steinberger
51d5f16770
refactor: remove mac attach-only setting
2026-01-12 04:58:38 +00:00
Peter Steinberger
8e1cdf3a1f
fix: require gateway client id
...
# Conflicts:
# apps/macos/Sources/Clawdbot/GatewayChannel.swift
# docs/concepts/typebox.md
# docs/gateway/index.md
# src/commands/onboard-non-interactive.gateway-auth.test.ts
# src/commands/onboard-non-interactive.lan-auto-token.test.ts
# src/gateway/call.ts
# src/gateway/client.ts
# src/gateway/gateway.wizard.e2e.test.ts
# src/gateway/probe.ts
# src/gateway/protocol/schema.ts
# src/gateway/server.auth.test.ts
# src/gateway/server.health.test.ts
# src/gateway/server.ts
# src/gateway/test-helpers.ts
# src/tui/gateway-chat.ts
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
986ff8c59f
docs: add protocol docs
2026-01-12 04:44:27 +00:00
Peter Steinberger
dfe5c03ba3
docs: document sharp/libvips install workaround
2026-01-12 04:25:05 +00:00
Peter Steinberger
87f270df23
test: respect openai max tokens floor
2026-01-12 04:04:04 +00:00
Peter Steinberger
ee4dc12d51
docs: note env var source
2026-01-12 04:04:00 +00:00
Peter Steinberger
8b4bdaa8a4
feat: add apply_patch tool (exec-gated)
2026-01-12 03:42:56 +00:00
Peter Steinberger
221c0b4cf8
fix: tighten gateway listener detection
2026-01-12 03:34:42 +00:00
Peter Steinberger
1a25104a3d
docs: add winix air purifier to showcase
2026-01-12 03:34:12 +00:00
Peter Steinberger
478a543e2e
fix: guard mobile chat sidebar overlay
2026-01-12 03:29:20 +00:00
Peter Steinberger
6a012fd625
refactor: reuse resolved think default
2026-01-12 03:00:30 +00:00
Peter Steinberger
d445cb420c
Merge pull request #750 from sebslight/fix/block-streaming-tool-boundary-flush
...
fix: flush block reply coalescer on tool boundaries
2026-01-12 02:56:01 +00:00
Peter Steinberger
1fa7a587d6
fix: flush block reply buffers on tool boundaries ( #750 ) (thanks @sebslight)
2026-01-12 02:54:57 +00:00
The Admiral
c64bcd047b
fix: flush block reply coalescer on tool boundaries
...
When block streaming is enabled with verbose=off, tool blocks are hidden
but their boundary information was lost. Text segments before and after
tool execution would get coalesced into a single message because the
coalescer had no signal that a tool had executed between them.
This adds an onBlockReplyFlush callback that fires on tool_execution_start,
allowing the block reply pipeline to flush pending text before the tool
runs. This preserves natural message boundaries even when tools are hidden.
Fixes the issue where:
text → [hidden tool] → text → rendered as one merged message
Now correctly renders as:
text → [hidden tool] → text → two separate messages
Co-diagnosed-by: Krill (Discord assistant)
2026-01-12 02:52:48 +00:00
Peter Steinberger
d4d15c8a71
Merge pull request #751 from gabriel-trigo/fix/think-default-743
...
fix: align /think default with model reasoning
2026-01-12 02:52:25 +00:00
Peter Steinberger
0efa6428d0
fix: align /think default display ( #751 ) (thanks @gabriel-trigo)
2026-01-12 02:51:17 +00:00
Peter Steinberger
17e6354383
Merge pull request #748 from myfunc/main
...
fix(bash): use PowerShell on Windows to capture system utility output
2026-01-12 02:50:30 +00:00
Gabriel Trigo
99877e8e63
fix: align /think default with model reasoning
2026-01-12 02:50:13 +00:00
Peter Steinberger
98337a14b3
fix: rename bash tool to exec ( #748 ) (thanks @myfunc)
2026-01-12 02:49:55 +00:00
Peter Steinberger
2164d1062e
docs: fix faq config snippets
2026-01-12 02:41:24 +00:00
Peter Steinberger
76c8fc8697
fix(sandbox): canonicalize agent main alias
2026-01-12 02:23:02 +00:00
Peter Steinberger
828d9955f2
docs(voice-call): add Twilio setup guide
2026-01-12 02:16:14 +00:00
myfunc
b33bd6aaeb
fix(bash): use PowerShell on Windows to capture system utility output
...
Windows system utilities like ipconfig, systeminfo, etc. write directly to
the console via WriteConsole API instead of stdout. When Node.js spawns
cmd.exe with piped stdio, these utilities produce empty output.
Changes:
- Switch from cmd.exe to PowerShell on Windows (properly redirects output)
- Disable detached mode on Windows (PowerShell doesn't pipe stdout when detached)
- Add windowsHide option to prevent console window flashing
- Update tests to use PowerShell-compatible syntax (Start-Sleep, semicolons)
2026-01-12 02:13:02 +00:00
Peter Steinberger
e3be5f8369
docs: require generic docs examples
2026-01-12 02:12:12 +00:00
Peter Steinberger
d97c211e82
docs: make remote host examples generic
2026-01-12 02:11:33 +00:00
Peter Steinberger
4ced7b886e
docs: fix browser CLI docs link
2026-01-12 02:09:10 +00:00
Peter Steinberger
66a8a4503c
docs: clarify clawd browser profile access
2026-01-12 02:09:10 +00:00
Peter Steinberger
fd5b168acd
Merge branch 'pr-709'
2026-01-12 02:07:42 +00:00
Peter Steinberger
2941a7002d
fix(subagents): align wait timeout with run timeout
2026-01-12 02:06:43 +00:00
Peter Steinberger
b518fb29c6
test(gateway): cover main alias resolve
2026-01-12 02:06:43 +00:00
Peter Steinberger
f504bfdde8
refactor(gateway): use canonical session store keys
2026-01-12 02:06:43 +00:00
Peter Steinberger
c1236e86fa
test: fix windows nix config path assertion
2026-01-12 02:05:38 +00:00
Peter Steinberger
12a045a0ad
docs: add browser login + X posting guidance
2026-01-12 02:01:36 +00:00
Peter Steinberger
f57f6e0ca6
docs: add installer internals
2026-01-12 02:00:29 +00:00
Peter Steinberger
e3960cde3f
test: add normalizeConfigPaths unit test
2026-01-12 01:55:55 +00:00
Peter Steinberger
3b943485f8
chore: update changelog
2026-01-12 01:53:44 +00:00
Peter Steinberger
ecc6243edc
test: cover tilde path expansion
2026-01-12 01:53:42 +00:00
Peter Steinberger
328d47f1df
fix: normalize ~ in path config
2026-01-12 01:53:42 +00:00
Peter Steinberger
9a88c94b30
docs: fix faq answer lead-in
2026-01-12 01:48:08 +00:00
Peter Steinberger
1578229b8b
docs: note Bedrock not supported
2026-01-12 01:45:07 +00:00
Peter Steinberger
28f97e6152
refactor(sandbox): normalize main session aliases
2026-01-12 01:37:56 +00:00
Peter Steinberger
d5a2f0324e
docs: prefer setup-token for Claude subscriptions
2026-01-12 01:36:32 +00:00
Peter Steinberger
23a0bf2abe
fix(plugins): extract archives without system tar
2026-01-12 01:36:18 +00:00
Peter Steinberger
f9fe95d182
docs: add central gateway workflow FAQ
2026-01-12 01:32:57 +00:00
Peter Steinberger
07b93e1d26
test: run npm pack via npm-cli.js
2026-01-12 01:31:26 +00:00
Peter Steinberger
cd65183f24
docs: define E.164 in WhatsApp routing
2026-01-12 01:28:52 +00:00
Peter Steinberger
0fd365a975
docs: clarify WhatsApp DM routing per agent
2026-01-12 01:28:11 +00:00
Peter Steinberger
7c2cb57434
chore: update changelog
2026-01-12 01:27:48 +00:00
Peter Steinberger
2a728ee68c
test: extend plugins docker e2e
2026-01-12 01:27:48 +00:00
Peter Steinberger
07f1280cb0
docs: expand plugin quickstart
2026-01-12 01:27:48 +00:00
Peter Steinberger
5bdb9c0e99
style: format plugin install test
2026-01-12 01:27:01 +00:00
Peter Steinberger
b9b0d46773
docs: explain multi-agent WhatsApp DM routing
2026-01-12 01:25:56 +00:00
Peter Steinberger
6947ab18dc
fix: load plugin packages from config dirs
2026-01-12 01:25:56 +00:00
Peter Steinberger
177ad3f06d
test: pack plugin archives via npm
2026-01-12 01:25:40 +00:00
Peter Steinberger
58a12a757e
fix(sandbox): avoid sandboxing main DM sessions
2026-01-12 01:24:44 +00:00
Peter Steinberger
b9ff4ca1fe
docs: clarify bun patch fallback
2026-01-12 01:20:47 +00:00
Peter Steinberger
720c5b53fd
docs: document plugin system
2026-01-12 01:16:46 +00:00
Peter Steinberger
f13ae50ff8
test: plugin install + docker e2e
2026-01-12 01:16:42 +00:00
Peter Steinberger
2f4a248314
feat: plugin system + voice-call
2026-01-12 01:16:39 +00:00
Peter Steinberger
a6ea74f8e6
docs: add Linux skills + Homebrew FAQ
2026-01-12 01:16:35 +00:00
Peter Steinberger
fa6409bca8
docs: add install page
2026-01-12 01:08:06 +00:00
Peter Steinberger
cf50e91bc8
Merge branch 'land/pr-709'
2026-01-12 01:06:34 +00:00
Peter Steinberger
9877733748
fix(gateway): canonicalize main session aliases
2026-01-12 01:05:43 +00:00
Peter Steinberger
4cff7901bd
docs: switch MiniMax setup to configure
2026-01-12 01:02:43 +00:00
Peter Steinberger
0d819c21a4
docs: note installer git method
2026-01-12 00:59:17 +00:00
Peter Steinberger
056c11687b
docs: add MiniMax provider page
2026-01-12 00:57:17 +00:00
user
d4e9f23ee9
fix(gateway): normalize session key to canonical form before store writes
...
Ensure 'main' alias is always stored as 'agent:main:main' to prevent
duplicate entries. Also update loadSessionEntry to check both forms
when looking up entries.
Fixes duplicate main sessions in session store.
2026-01-12 00:53:20 +00:00
user
7d6f17d77f
fix(subagent): make announce prompt more emphatic
...
The previous prompt was too permissive about skipping announcements.
Updated to strongly encourage announcing results since the requester
is waiting for a response.
- Add 'You MUST announce your result' instruction
- Clarify ANNOUNCE_SKIP is only for complete failures
- Improve guidance on providing useful summaries
2026-01-12 00:52:36 +00:00
user
0ed7ea698a
fix(subagent): wait for completion before announce
...
The previous immediate probe (timeoutMs: 0) only caught already-completed
runs. Cross-process spawns need to actually wait via agent.wait RPC for
the gateway to signal completion, then trigger the announce flow.
- Rename probeImmediateCompletion to waitForSubagentCompletion
- Use 10 minute wait timeout for agent.wait RPC
- Remove leftover debug console.log statements
2026-01-12 00:52:36 +00:00
Peter Steinberger
74526645eb
test: cover unset docker env vars
2026-01-12 00:46:55 +00:00
Peter Steinberger
cb095c8606
test: fix includes tests on windows
2026-01-12 00:39:14 +00:00
Peter Steinberger
376d007371
Merge pull request #725 from petradonka/patch-1
...
Fix docker-setup.sh crash with optional env vars under set -u
2026-01-12 00:38:46 +00:00
Peter Steinberger
01492b6515
fix: tolerate unset docker env vars ( #725 ) (thanks @petradonka)
2026-01-12 00:38:05 +00:00
Petra Donka
3c81ac0315
Fix docker-setup.sh crash with optional env vars under set -u
2026-01-12 00:36:51 +00:00
Peter Steinberger
9c8967ef5d
style: biome fixes
2026-01-12 00:32:47 +00:00
Peter Steinberger
720b9dd116
fix: make codex keychain platform-aware
2026-01-12 00:32:47 +00:00
Peter Steinberger
9f9f6b75e7
test: expand include coverage
2026-01-12 00:30:26 +00:00
Peter Steinberger
26cbbafc86
fix: skip pnpm patch fallback
2026-01-12 00:28:34 +00:00
Peter Steinberger
67743325ee
fix: reset session after compaction overflow
2026-01-12 00:28:16 +00:00
Peter Steinberger
32df2ef7bd
fix: stabilize invalid-connect handshake response
2026-01-12 00:19:47 +00:00
Peter Steinberger
ccd8950d40
ci: stabilize installer smoke
2026-01-12 00:17:07 +00:00
Peter Steinberger
86a7ab6e28
Merge pull request #731 from pasogott/feat/config-includes
...
feat(config): add $include directive for modular configs
2026-01-12 00:13:15 +00:00
Peter Steinberger
e3e3498a4b
fix: guard config includes ( #731 ) (thanks @pasogott)
2026-01-12 00:12:03 +00:00
David Hurley
56f018ddd6
docs(showcase): add Visual Morning Briefing Scene by @buddyhadry
2026-01-12 00:08:53 +00:00
sheeek
53d3134fe8
refactor(config): simplify includes with class-based processor
...
- Replace free functions with IncludeProcessor class
- Simplify IncludeResolver interface: { readFile, parseJson }
- Break down loadFile into focused private methods
- Use reduce() for array include merging
- Cleaner separation of concerns
2026-01-12 00:08:27 +00:00
sheeek
e6400b0b0f
refactor(config): extract includes logic to separate module
...
- Move $include resolution to src/config/includes.ts
- Simplify io.ts by importing from includes module
- Cleaner API: resolveConfigIncludes(obj, configPath, resolver?)
- Re-export errors from io.ts for backwards compatibility
- Rename test file to match module name
2026-01-12 00:08:27 +00:00
sheeek
15d286b617
feat(config): add $include directive for modular configs
...
Adds support for splitting clawdbot.json into multiple files using the
$include directive. This enables:
- Single file includes: { "$include": "./agents.json5" }
- Multiple file merging: { "$include": ["./a.json5", "./b.json5"] }
- Nested includes (up to 10 levels deep)
- Sibling key merging with includes
Features:
- Relative paths resolved from including file
- Absolute paths supported
- Circular include detection
- Clear error messages with resolved paths
Use case: Per-client agent configs for isolated sandboxed environments
(e.g., legal case management with strict data separation).
2026-01-12 00:08:27 +00:00
Peter Steinberger
6b2634512c
ci: fix installer site checkout path
2026-01-12 00:06:41 +00:00
Peter Steinberger
9211183f2d
ci: fix installer smoke clone
2026-01-12 00:04:26 +00:00
Peter Steinberger
cd8c7f391b
Merge pull request #732 from peschee/feat/wire-model-extra-params
...
feat: wire up model extraParams (temperature, maxTokens) to pi agent
2026-01-12 00:04:04 +00:00
Peter Steinberger
4b51c96e4e
fix: apply model extra params without overwriting stream ( #732 ) (thanks @peschee)
2026-01-12 00:03:48 +00:00
Peter Siska
d9960d83c1
style: fix formatting (biome)
2026-01-12 00:03:25 +00:00
Peter Siska
32affaee02
feat: wire up model extraParams (temperature, maxTokens) to pi agent
...
- Use resolveExtraParams() which was defined but unused
- Create streamFn wrapper that injects config-driven params
- Apply to both compaction and run sessions
Config path: agents.defaults.models["provider/model"].params.temperature
Example:
agents.defaults.models["anthropic/claude-sonnet-4"].params.temperature = 0.7
agents.defaults.models["openai/gpt-4"].params.maxTokens = 8192
2026-01-12 00:03:24 +00:00
Peter Steinberger
60430fcd2e
chore: harden installer and add smoke ci
2026-01-12 00:00:54 +00:00
Peter Steinberger
55e55c8825
fix: preserve handshake close code and test truncation
2026-01-11 23:57:37 +00:00
Peter Steinberger
146f7ab433
fix: surface handshake reasons
2026-01-11 23:46:20 +00:00
Peter Steinberger
105d0481d3
chore: note codex keychain fallback
2026-01-11 23:39:55 +00:00
Peter Steinberger
1f95d7fc8b
fix: read codex keychain credentials
2026-01-11 23:39:10 +00:00
Peter Steinberger
3a8bfc0a5d
Merge pull request #733 from AbhisekBasu1/patch-1
...
Readme Fix: Update section title from 'macOS app' to 'Apps'
2026-01-11 23:38:38 +00:00
Peter Steinberger
26cc2bd384
fix: land PR #733 (thanks @AbhisekBasu1)
2026-01-11 23:37:44 +00:00
Peter Steinberger
248c731e78
test: expand voice-call coverage
2026-01-11 23:35:47 +00:00
Abhi
b38155fe9a
Readme Fix: Update section title from 'macOS app' to 'Apps'
...
Tiny readme change that makes it less confusing.
The section title being "macOS app" makes it seem like the app is mandatory, when it is optional. Updated it to just "Apps"
2026-01-11 23:35:16 +00:00
Peter Steinberger
ec763a7546
docs: add skill override faq
2026-01-11 23:33:36 +00:00
Peter Steinberger
4181e72977
fix: strip markup heartbeat acks
2026-01-11 23:26:51 +00:00
Peter Steinberger
5462cfdc3a
chore: update changelog for voice-call plugin
2026-01-11 23:23:23 +00:00
Peter Steinberger
367baaca20
feat: implement voice-call plugin
2026-01-11 23:23:14 +00:00
Peter Steinberger
e576a82c43
docs: clarify WhatsApp pairing + sending FAQ
2026-01-11 23:13:44 +00:00
Ayaan Zaidi
e5bb5b5be5
Merge pull request #736 from clawdbot/fix/discord-lint
...
fix: add discord channel/category actions
2026-01-11 22:36:40 +05:30
Ayaan Zaidi
f082f1e06e
fix: add discord channel actions
2026-01-11 22:32:17 +05:30
Ayaan Zaidi
0d9a1009ff
fix: format discord parentId
2026-01-11 22:28:05 +05:30
Ayaan Zaidi
33aaccd1c3
Merge pull request #728 from pkrmf/feature/dm-history-limit
...
feat: add configurable DM history limits with per-chat overrides
2026-01-11 22:25:12 +05:30
Ayaan Zaidi
a4385dc920
fix: skip dm history limit for non-dm sessions
2026-01-11 22:18:15 +05:30
Shadow
ed14e1f0d0
Merge branch 'pr-730-merge'
2026-01-11 10:16:49 -06:00
Shadow
bab4f8e628
Changelog: note Discord message tool channel actions
2026-01-11 10:16:27 -06:00
Shadow
4c3a853673
Docs: clarify Discord channel type values
2026-01-11 10:02:36 -06:00
Nicholas Spisak
d63eae528c
feat(discord): expose channel management actions via message tool
...
Add channel-create, channel-edit, channel-delete, channel-move,
category-create, category-edit, and category-delete actions to the
unified message tool. These actions were already implemented in the
Discord-specific handler but weren't accessible via the pi_message tool.
Changes:
- Add 7 new channel/category management actions to MessageActionSchema
- Add parameters: name, type, parentId, topic, position, nsfw,
rateLimitPerUser, categoryId
- Gate actions behind discord.actions.channels (disabled by default)
- Add execute handlers routing to existing Discord action handlers
- Update Discord skill SKILL.md with documentation
Channel types: 0=text, 2=voice, 4=category
2026-01-11 10:01:32 -06:00
Ayaan Zaidi
70ba369d65
Merge pull request #729 from clawdbot/fix/telegram-command-mentions
...
fix: normalize telegram command mentions
2026-01-11 21:14:01 +05:30
Ayaan Zaidi
68f6f3f0bd
fix: normalize telegram command mentions
2026-01-11 21:06:04 +05:30
Marc Terns
23717c5036
test: add comprehensive per-DM override tests for all providers
2026-01-11 08:55:32 -06:00
Marc Terns
54abf4b0d7
feat: add per-DM history limit overrides
2026-01-11 08:53:50 -06:00
Marc Terns
ab9ea827a4
refactor: move dmHistoryLimit to provider-level config
2026-01-11 08:38:19 -06:00
Marc Terns
a005a97fef
feat: add configurable DM history limit
2026-01-11 08:21:14 -06:00
Peter Steinberger
933c157092
test: add plugin docker e2e
2026-01-11 12:21:45 +00:00
Peter Steinberger
cf0c72a557
feat: add plugin architecture
2026-01-11 12:11:12 +00:00
Peter Steinberger
f2b8f7bd5b
docs: note bundled skill-creator
2026-01-11 11:51:26 +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
23eec7d841
fix: update heartbeat prompt
2026-01-11 11:35:52 +00:00
Peter Steinberger
fe555f197c
Merge pull request #718 from dan-dr/chore/minimum-release-age
...
chore: set minimum release age
2026-01-11 11:28:54 +00:00
Peter Steinberger
e533f99fa9
fix: add changelog for minimum release age ( #718 ) (thanks @dan-dr)
2026-01-11 11:27:54 +00:00
ddyo
fb60637b7f
chore: set minimum release age
2026-01-11 11:27:54 +00:00
Peter Steinberger
5206c9f2fb
docs: add session management + compaction deep dive
2026-01-11 11:25:57 +00:00
Peter Steinberger
a3747b1ee3
fix: add compaction headroom for memory writes
2026-01-11 11:25:15 +00:00
Peter Steinberger
96e4fdb443
test: skip codex refresh token reuse
2026-01-11 11:24:25 +00:00
Peter Steinberger
684e18bab2
chore: add test:all shortcuts
2026-01-11 11:22:07 +00:00
Peter Steinberger
f328cd5246
fix: preserve reasoning on tool-only turns
2026-01-11 11:22:07 +00:00
Peter Steinberger
61b786b2b7
Merge pull request #708 from xMikeMickelson/fix/agent-transcript-path
...
fix(agent): use session key agentId for transcript path
2026-01-11 11:20:57 +00:00
Peter Steinberger
6b46217d19
fix: route subagent transcripts and keep tool action enums ( #708 ) (thanks @xMikeMickelson)
2026-01-11 11:19:38 +00:00
user
dc3c733612
fix(agent): use session key agentId for transcript path
...
Cross-agent subagent spawns wrote transcripts to the spawner's agent
directory instead of the target agent's directory. For example, when
main spawned a codex subagent with session key agent:codex:subagent:...,
the transcript went to agents/main/sessions/ instead of agents/codex/sessions/.
Pass sessionAgentId to resolveSessionFilePath so transcripts are written
to the correct agent's session directory.
2026-01-11 11:11:43 +00:00
Peter Steinberger
580791088c
test: cover messaging tool error fallback ( #717 )
2026-01-11 11:10:03 +00:00
Peter Steinberger
225b44ad3a
Merge pull request #717 from theglove44/fix/message-tool-send-requires-to
...
Agents: prevent silent message-tool drops
2026-01-11 11:05:14 +00:00
Peter Steinberger
99fcc82705
fix: prevent silent message-tool drops ( #717 ) (thanks @theglove44)
2026-01-11 11:04:29 +00:00
Chris Taylor
fb1fc5feee
fix(message-tool): strip reply/media tags from content in send/thread-reply actions
2026-01-11 11:04:07 +00:00
Chris Taylor
3da3e201de
Agents: harden message tool sends
2026-01-11 11:04:07 +00:00
Peter Steinberger
55da6ca449
fix: keep reasoning for tool-only turns
2026-01-11 11:00:19 +00:00
Peter Steinberger
28b25e8abb
docs: expand cron jobs guidance
2026-01-11 10:57:30 +00:00
Peter Steinberger
2ebad5af1c
test: cover cron cli model overrides
2026-01-11 10:56:46 +00:00
Peter Steinberger
8dbf72099a
fix: refresh pi-ai patch for pnpm lockfile
2026-01-11 10:55:36 +00:00
Peter Steinberger
0590365683
style: format cleanup commands
2026-01-11 10:54:33 +00:00
Peter Steinberger
8e3f7c45d2
Merge pull request #711 from mjrussell/feat/cron-model-override
...
feat(cron): add --model flag to cron add/edit commands
2026-01-11 10:53:42 +00:00
Peter Steinberger
a8a4993ffd
fix: trim cron model overrides and doc guidance ( #711 ) (thanks @mjrussell)
2026-01-11 10:52:40 +00:00
Peter Steinberger
8a9831d37c
Merge pull request #713 from danielz1z/fix/update-doctor-env
...
fix(update): merge custom env with process.env in spawn
2026-01-11 10:49:50 +00:00
Matthew Russell
314e075df2
feat(cron): add --model flag to cron add/edit commands
...
Expose the existing model override capability via CLI flags:
- Add --model to cron add and cron edit commands
- Document model and thinking overrides in cron-jobs.md
- Add CLI example showing model/thinking usage
The backend already supported model in agentTurn payloads;
this change exposes it through the CLI interface.
2026-01-11 10:49:34 +00:00
Peter Steinberger
0ef07bc142
test: extend discord tool-result timeout
2026-01-11 10:48:49 +00:00
Peter Steinberger
4a166cf227
fix: add update env regression test ( #713 ) (thanks @danielz1z)
2026-01-11 10:48:46 +00:00
Peter Steinberger
eec082e541
fix: update pi-ai reasoning replay patch
2026-01-11 10:44:19 +00:00
Peter Steinberger
7006a4aad3
feat: add skill-creator bundled skill
2026-01-11 10:42:56 +00:00
Peter Steinberger
66fb44fbfb
Merge pull request #715 from mjrussell/gog-calendar-colors
...
Add calendar event color documentation to gog skill
2026-01-11 10:41:22 +00:00
Peter Steinberger
eb1de642db
docs: verify gog calendar colors ( #715 ) (thanks @mjrussell)
2026-01-11 10:39:40 +00:00
danielz1z
4570e1db7d
fix(update): merge custom env with process.env in spawn
...
When the update runner passes custom env vars (like CLAWDBOT_UPDATE_IN_PROGRESS),
the current code uses `env ?? process.env` which replaces the entire environment
instead of merging — losing PATH, HOME, etc.
This causes the doctor step to fail with 'node: No such file or directory'.
Fix: merge custom env with process.env instead of replacing it.
2026-01-11 10:39:07 +00:00
Matthew Russell
17a1d302b9
Add calendar event color docs to gog skill
2026-01-11 10:37:48 +00:00
Peter Steinberger
11a3b5aac9
style: biome fixes
2026-01-11 10:35:16 +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
7551415db9
fix: copy postinstall for cleanup docker
2026-01-11 10:28:07 +00:00
Peter Steinberger
f1285be76b
chore(release): update appcast for v2026.1.10
2026-01-11 10:27:10 +00:00
Peter Steinberger
93cdc89daf
fix(release): generate appcast from zip only
2026-01-11 10:27:10 +00:00
Peter Steinberger
f3f88190bb
fix(macos): avoid bundling dist artifacts in relay
2026-01-11 10:27:10 +00:00
Peter Steinberger
11c8db14a1
feat: add reset/uninstall commands
2026-01-11 10:23:52 +00:00
Peter Steinberger
e84eb3e671
test: add install.sh docker e2e smoke
2026-01-11 10:20:50 +00:00
user
029db06477
fix(gateway): normalize session key to canonical form before store writes
...
Ensure 'main' alias is always stored as 'agent:main:main' to prevent
duplicate entries. Also update loadSessionEntry to check both forms
when looking up entries.
Fixes duplicate main sessions in session store.
2026-01-11 07:06:25 +00:00
user
f34d7e0fe0
fix(subagent): make announce prompt more emphatic
...
The previous prompt was too permissive about skipping announcements.
Updated to strongly encourage announcing results since the requester
is waiting for a response.
- Add 'You MUST announce your result' instruction
- Clarify ANNOUNCE_SKIP is only for complete failures
- Improve guidance on providing useful summaries
2026-01-11 06:49:27 +00:00
user
587a556d6b
fix(subagent): wait for completion before announce
...
The previous immediate probe (timeoutMs: 0) only caught already-completed
runs. Cross-process spawns need to actually wait via agent.wait RPC for
the gateway to signal completion, then trigger the announce flow.
- Rename probeImmediateCompletion to waitForSubagentCompletion
- Use 10 minute wait timeout for agent.wait RPC
- Remove leftover debug console.log statements
2026-01-11 06:17:15 +00:00
user
52929c0600
fix(agent): use session key agentId for transcript path
...
Cross-agent subagent spawns wrote transcripts to the spawner's agent
directory instead of the target agent's directory. For example, when
main spawned a codex subagent with session key agent:codex:subagent:...,
the transcript went to agents/main/sessions/ instead of agents/codex/sessions/.
Pass sessionAgentId to resolveSessionFilePath so transcripts are written
to the correct agent's session directory.
2026-01-11 05:52:33 +00:00
Peter Steinberger
4e341d1354
chore(pnpm): refresh lockfile for patches
2026-01-11 04:59:06 +00:00
Peter Steinberger
323200b551
test(live): harden gateway probes
2026-01-11 04:46:30 +00:00
Peter Steinberger
dbe156e881
fix(agents): sanitize transcripts for strict tool APIs
2026-01-11 04:46:18 +00:00
Peter Steinberger
f00038b383
fix(testing): stabilize live model runs
2026-01-11 04:22:35 +00:00
Peter Steinberger
3b6739d3e9
docs: clarify reactions + timeout
2026-01-11 04:22:35 +00:00
Peter Steinberger
d7055f8fd2
docs: align reaction semantics
2026-01-11 04:22:35 +00:00
Peter Steinberger
1fc213468b
docs: note moderation reasons
2026-01-11 04:22:35 +00:00
Peter Steinberger
af1749f3b3
docs: scope discord-only read flag
2026-01-11 04:22:35 +00:00
Peter Steinberger
2b15e952c2
docs: expand imessage targets
2026-01-11 04:22:35 +00:00
Peter Steinberger
343b6ac31b
feat: add onboard reset option
2026-01-11 05:04:36 +01:00
Peter Steinberger
9046296ed3
fix: clarify sub-agent sandbox limits
2026-01-11 05:04:14 +01:00
Peter Steinberger
b4e9a0c975
style: add blank line after note imports
2026-01-11 05:01:50 +01:00
Peter Steinberger
71791d5a6a
fix: restore ZAI provider preference
2026-01-11 04:58:37 +01:00
Peter Steinberger
7acdaad04e
style: fix note import spacing
2026-01-11 04:54:19 +01:00
Peter Steinberger
b7ac9095e6
fix: skip tool-only reasoning replay
2026-01-11 04:52:16 +01:00
Peter Steinberger
f42fca667c
docs: avoid hardcoded pinned version
2026-01-11 04:46:27 +01:00
Peter Steinberger
be3648c511
fix: patch openai-responses replay + docs
2026-01-11 04:45:37 +01:00
Peter Steinberger
5fa682d8f0
fix(macos): show connecting state for remote tunnel
2026-01-11 04:45:37 +01:00
Peter Steinberger
30348e41c6
test: stabilize doctor + sandbox tests
2026-01-11 04:45:04 +01:00
Peter Steinberger
7343597075
chore: keep gate green
2026-01-11 04:42:44 +01:00
Peter Steinberger
0b2ff4cfd9
chore(release): consolidate into 2026.1.10
2026-01-11 04:42:01 +01:00
Peter Steinberger
50e62122bb
chore: format sandbox skills test
2026-01-11 04:39:42 +01:00
Peter Steinberger
eeae5ce7fd
fix: stabilize notes and reasoning replay
2026-01-11 04:37:06 +01:00
Peter Steinberger
edb3651c32
docs: add telegram reactions
2026-01-11 03:30:09 +00:00
Peter Steinberger
3155e4fd5a
docs: clarify agent providers and polls
2026-01-11 03:30:09 +00:00
Peter Steinberger
5a443dfa53
docs: fix session key examples
2026-01-11 03:30:09 +00:00
Peter Steinberger
cfdca57551
docs: align messaging and node docs
2026-01-11 03:30:09 +00:00
Peter Steinberger
473f7df658
docs: fix provider session key examples
2026-01-11 03:30:09 +00:00
Peter Steinberger
57e6a9a762
fix: clamp z.ai developer role
2026-01-11 04:28:30 +01:00
Peter Steinberger
7660a78330
fix: mirror skills for read-only sandbox
2026-01-11 04:24:19 +01:00
Peter Steinberger
29884f8d6f
fix: wrap clack notes for cleaner boxes
2026-01-11 04:23:43 +01:00
Peter Steinberger
76c5bff7d6
test: cover whoami command
2026-01-11 04:20:34 +01:00
Peter Steinberger
f74ead8d43
docs(changelog): consolidate 2026.1.11
2026-01-11 04:17:37 +01:00
Peter Steinberger
bfd0dcde35
Merge pull request #629 from pasogott/feature/whatsapp-ack-reaction
...
feat(whatsapp): add acknowledgment reactions
2026-01-11 03:11:38 +00:00
Peter Steinberger
38604acd94
fix: tighten WhatsApp ack reactions and migrate config ( #629 ) (thanks @pasogott)
2026-01-11 04:11:04 +01:00
sheeek
c928df7237
fix: remove any casts in backward compat code
2026-01-11 04:10:43 +01:00
sheeek
30b4c14296
style: fix biome linting in ack-reaction tests
2026-01-11 04:10:43 +01:00
sheeek
2daead27cf
feat(whatsapp): redesign ack-reaction as whatsapp-specific feature
...
- Move config from messages.ackReaction to whatsapp.ackReaction
- New structure: {emoji, direct, group} with granular control
- Support per-account overrides in whatsapp.accounts.*.ackReaction
- Add Zod schema validation for new config
- Maintain backward compatibility with old messages.ackReaction format
- Update tests to new config structure (14 tests, all passing)
- Add comprehensive documentation in docs/providers/whatsapp.md
- Timing: reactions sent immediately upon message receipt (before bot reply)
Breaking changes:
- Config moved from messages.ackReaction to whatsapp.ackReaction
- Scope values changed: 'all'/'direct'/'group-all'/'group-mentions'
→ direct: boolean + group: 'always'/'mentions'/'never'
- Old config still supported via fallback for smooth migration
2026-01-11 04:10:43 +01:00
sheeek
d38b232724
chore: fix linting issues in ack-reaction feature
...
- Remove unused mock variables in tests
- Remove unused ackReactionScope variables in simple test cases
- Fix line length for ackReactionScope declaration
- All lint checks passing (0 warnings, 0 errors)
- All tests passing (8/8)
2026-01-11 04:10:43 +01:00
sheeek
c3587d6cae
fix(whatsapp): ack reaction logic for group activation 'always' mode
...
- Fix bug where ack reaction was not sent when group activation is 'always'
- When requireMention=false (activation: always), always send reaction
- Add test case for activation='always' scenario
- Update inline comments for clarity
2026-01-11 04:10:43 +01:00
sheeek
b3b507c6ea
feat(whatsapp): add ack reaction support after successful replies
...
- Add automatic emoji reactions on inbound WhatsApp messages
- Support all ackReactionScope modes: all, direct, group-all, group-mentions
- Reaction is sent AFTER successful reply (unlike Telegram/Discord)
- Errors are logged with proper context
- Add comprehensive test suite for ack reaction logic
Config usage:
messages:
ackReaction: "👀 "
ackReactionScope: "group-mentions" # default
Closes: WhatsApp ack-reaction feature request
2026-01-11 04:10:42 +01:00
Peter Steinberger
7879a58f4b
docs: consolidate 2026.1.10 notes
2026-01-11 04:08:33 +01:00
Peter Steinberger
579b00503f
style: format onboard providers
2026-01-11 04:08:26 +01:00
Peter Steinberger
36a21ae9b0
fix: improve telegram configuration safety
2026-01-11 03:57:52 +01:00
Peter Steinberger
11f897b7df
fix(gateway): show connect vs RPC status
2026-01-11 03:57:52 +01:00
Peter Steinberger
054a6d301c
Merge pull request #694 from antons/fix/heartbeat-reasoning
...
Fix/heartbeat reasoning
2026-01-11 02:52:12 +00:00
Peter Steinberger
1f9b4e3af6
fix: send heartbeat reasoning ( #694 ) (thanks @antons)
2026-01-11 03:51:51 +01:00
Peter Steinberger
4ce2e73521
fix: improve provider issue formatting
2026-01-11 03:51:51 +01:00
Anton Sotkov
c7caa9a87d
fix: deliver reasoning alongside HEARTBEAT_OK
2026-01-11 03:51:51 +01:00
Anton Sotkov
7a518166bb
fix: persist reasoning across session resets
2026-01-11 03:51:51 +01:00
Peter Steinberger
89291c384b
fix(macos): improve onboarding discovery
2026-01-11 03:51:08 +01:00
Peter Steinberger
9d802abd9a
test: cover docker setup env plumbing
2026-01-11 03:45:45 +01:00
Peter Steinberger
480bf916e2
fix(status): simplify footer guidance
2026-01-11 03:44:28 +01:00
Peter Steinberger
9a4021a277
Merge pull request #703 from mteam88/openrouter-auth-config
...
Openrouter auth config (AI)
2026-01-11 02:44:24 +00:00
Peter Steinberger
2b07a2a8ab
fix: stabilize onboarding auth tests ( #703 ) (thanks @mteam88)
2026-01-11 03:42:27 +01:00
Matthew
77bc11f91c
chore: format OpenRouter auth edits
2026-01-11 03:35:45 +01:00
Matthew
7890bd7369
CLI: reuse OpenRouter credentials
2026-01-11 03:35:45 +01:00
Matthew
b6982236a6
CLI: add OpenRouter auth choice
2026-01-11 03:35:45 +01:00
Peter Steinberger
6c54977c15
chore(release): 2026.1.11-6
2026-01-11 03:35:28 +01:00
Peter Steinberger
494f41d575
docs(status): make status first-step
2026-01-11 03:34:33 +01:00
Peter Steinberger
cffec07329
Merge pull request #697 from gabriel-trigo/feat/docker-apt-packages
...
feat(docker): optional apt packages in docker-setup
2026-01-11 02:28:36 +00:00
Peter Steinberger
6833e3de5d
fix: harden docker apt install ( #697 ) (thanks @gabriel-trigo)
2026-01-11 03:27:48 +01:00
Peter Steinberger
20b4e2b859
fix: stabilize live probes and docs
2026-01-11 02:26:39 +00:00
Gabriel Trigo
ff14e743ea
feat(docker): optional apt packages in docker-setup
2026-01-11 03:26:05 +01:00
Peter Steinberger
6668805aca
fix(agents): enforce single-writer session files
2026-01-11 02:25:45 +00:00
Peter Steinberger
3a113b7752
fix: stabilize cli runner output
2026-01-11 02:25:45 +00:00
Peter Steinberger
e229a36e9f
docs: update changelog for codex cli
2026-01-11 02:25:22 +00:00
Peter Steinberger
f5670cae06
fix(macos): include optional relay deps
2026-01-11 03:22:46 +01:00
Peter Steinberger
cc79c507f6
docs: add link preference for peter
2026-01-11 03:21:28 +01:00
Peter Steinberger
b0b3896941
Merge pull request #695 from jeffersonwarrior/jeff/no-sign-launchagent
...
macOS: stabilize launchagent in --no-sign
2026-01-11 02:20:32 +00:00
Peter Steinberger
9b6bc0e66b
fix: reset unsigned launchd overrides ( #695 ) (thanks @jeffersonwarrior)
2026-01-11 03:19:24 +01:00
Peter Steinberger
f8d168bde0
docs: clarify gateway remote node flow
2026-01-11 03:17:06 +01:00
Jefferson Warrior
325ed80252
scripts: simplify no-sign steps
2026-01-11 03:12:36 +01:00
Jefferson Warrior
e43abd3f14
macos: keep launchagent stable on --no-sign
2026-01-11 03:12:36 +01:00
Peter Steinberger
d9645b4802
Merge pull request #701 from bjesuiter/fix/update-progress-logs
...
feat(update): add progress spinner during update steps
2026-01-11 02:03:27 +00:00
Peter Steinberger
5ec3663748
fix: guard update spinner output ( #701 ) (thanks @bjesuiter)
2026-01-11 03:03:09 +01:00
Peter Steinberger
84d9c5f5e5
fix(macos): stabilize onboarding discovery
2026-01-11 03:02:47 +01:00
Benjamin Jesuiter
f3bd6e4957
fix(update): use git status --porcelain for dirty check cross-platform
2026-01-11 03:00:43 +01:00
Benjamin Jesuiter
6cb55eaaa7
feat(update): show stderr for failed steps
2026-01-11 03:00:43 +01:00
Benjamin Jesuiter
3f27b23d5a
fix(update): remove command hint from step labels
2026-01-11 03:00:43 +01:00
Benjamin Jesuiter
4102e2f1b8
refactor(update): simplify progress with proper exit codes
2026-01-11 03:00:43 +01:00
Benjamin Jesuiter
35d42be828
fix(update): show skipped status with warning indicator for dirty repo
2026-01-11 03:00:43 +01:00
Benjamin Jesuiter
6a2b8328df
fix(update): restore reason in summary
2026-01-11 03:00:43 +01:00
Benjamin Jesuiter
cc8e6e00a0
fix(update): hide steps in summary when shown live, fix command hint
2026-01-11 03:00:43 +01:00
Benjamin Jesuiter
6e0c1cb051
fix(update): show each step with spinner as it runs
2026-01-11 03:00:43 +01:00
Benjamin Jesuiter
8f9aa3e8c5
fix(progress): start spinner immediately when delayMs is 0
2026-01-11 03:00:43 +01:00
Benjamin Jesuiter
88c404bcfc
feat(update): add progress spinner during update steps
2026-01-11 03:00:43 +01:00
Peter Steinberger
920436da65
fix(macos): add gateway discovery refresh
2026-01-11 02:45:42 +01:00
Peter Steinberger
4759633df1
fix(cli): keep build/lint green
2026-01-11 02:44:24 +01:00
Peter Steinberger
e824b3514b
fix(status): improve diagnostics and output
2026-01-11 02:42:24 +01:00
Peter Steinberger
2e2f05a0e1
docs: add quick setup blocks to chat providers
2026-01-11 02:40:38 +01:00
Peter Steinberger
02270abc87
feat: add codex cli backend
2026-01-11 01:39:30 +00:00
Peter Steinberger
2cc0d8c058
fix(macos): wrap usage provider errors
2026-01-11 02:35:53 +01:00
Peter Steinberger
340d1c64b4
docs: add provider hub and model provider pages
2026-01-11 02:27:37 +01:00
Peter Steinberger
2d74119a08
test: cover auto-reply command gating
2026-01-11 02:27:16 +01:00
Peter Steinberger
e0bf86f06c
feat: improve gateway services and auto-reply commands
2026-01-11 02:27:16 +01:00
Peter Steinberger
df55d45b6f
chore: update changelog for command gating
2026-01-11 02:27:16 +01:00
Peter Steinberger
305ef06090
docs: fix gateway diagram spacing
2026-01-11 02:24:23 +01:00
Peter Steinberger
a665382060
chore(deps): sync pnpm lock patch hash
2026-01-11 02:08:56 +01:00
Peter Steinberger
49f99e200a
docs: add FAQ for Anthropic setup-token and Codex auth
2026-01-11 02:05:35 +01:00
Peter Steinberger
fa0f2b971f
fix(macos): wrap usage errors in menu
2026-01-11 02:04:27 +01:00
Peter Steinberger
fe46a2663b
docs: clarify browser allowlist defaults and risks
2026-01-11 02:00:30 +01:00
Peter Steinberger
a32021dc3e
fix: inject image paths for cli backends
2026-01-11 00:55:22 +00:00
Peter Steinberger
4cf3e84b39
test: add CLI backend image probe
2026-01-11 00:55:22 +00:00
Peter Steinberger
24c3ab6fe0
fix: unblock claude-cli live runs
2026-01-11 00:55:22 +00:00
Peter Steinberger
d8f1124d59
feat: add CLI backend fallback
2026-01-11 00:55:22 +00:00
Peter Steinberger
07be761779
feat: add sandbox browser control allowlists
2026-01-11 01:52:32 +01:00
Peter Steinberger
b0b4b33b6b
fix: update gateway auth docs and clients
2026-01-11 01:51:24 +01:00
Peter Steinberger
d33285a9cd
fix: harden gateway auth defaults
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
0637e4b2a5
chore(release): 2026.1.11-4
2026-01-11 01:46:41 +01:00
Peter Steinberger
3e6d27ac4e
fix(status): show gateway auth when reachable
2026-01-11 01:46:37 +01:00
Peter Steinberger
506cc9e7a1
chore(release): 2026.1.11-3
2026-01-11 01:38:15 +01:00
Peter Steinberger
21ba04755b
fix(macos): onboarding location + layout
2026-01-11 01:36:00 +01:00
Peter Steinberger
cbac9fe4ac
chore(release): 2026.1.11-2
2026-01-11 01:34:51 +01:00
Peter Steinberger
b339097179
style: format browser tool wiring
2026-01-11 01:34:45 +01:00
Peter Steinberger
07eed3de56
docs(status): add diagnostics commands
2026-01-11 01:31:56 +01:00
Peter Steinberger
326fb04d12
feat: add browser target selection for sandboxed agents
2026-01-11 01:31:56 +01:00
Peter Steinberger
d2098e4492
fix(macos): avoid discovery retries during tests
2026-01-11 01:16:39 +01:00
Peter Steinberger
362fc3e235
Merge pull request #692 from peschee/fix/whatsapp-lid-mention-detection
...
fix(whatsapp): pass authDir to jidToE164 for LID mention detection
2026-01-11 00:16:03 +00:00
Peter Steinberger
6444258ad3
fix: handle WhatsApp LID mentions ( #692 ) (thanks @peschee)
2026-01-11 01:14:57 +01:00
Peter Steinberger
3dbd6766ab
fix(macos): improve onboarding discovery + restart onboarding
2026-01-11 01:13:53 +01:00
Peter Steinberger
318f59ec3e
fix(status): show token previews
2026-01-11 01:11:46 +01:00
Peter Steinberger
57dafec0ec
docs(status): add troubleshooting footer
2026-01-11 01:06:58 +01:00
Peter Steinberger
518dfd4e42
fix(status): provider setup vs warn
2026-01-11 01:05:06 +01:00
Peter Siska
9984248f51
fix formatting
2026-01-11 01:04:10 +01:00
Peter Siska
9cb1bfa1c1
fix(whatsapp): pass authDir to jidToE164 for LID mention detection
...
WhatsApp group mentions using the new Linked ID format (@lid) were not
being detected because jidToE164() was called without the authDir needed
to find the LID reverse mapping files.
Now isBotMentioned() and debugMention() accept an optional authDir
parameter, which is passed through from account.authDir.
2026-01-11 01:04:10 +01:00
Peter Steinberger
5fa3ac1e01
fix(status): full-width tables + better diagnosis
2026-01-11 00:54:27 +01:00
Peter Steinberger
f3882671c9
fix(macos): avoid hiding gateways by substring match
2026-01-11 00:47:01 +01:00
Peter Steinberger
7c76561569
fix: dedupe inbound messages across providers
2026-01-11 00:12:25 +01:00
Peter Steinberger
bd2002010c
Merge pull request #580 from jeffersonwarrior/fix/restart-mac-signing-auto-detection
...
feat: add auto-signing detection to restart-mac.sh
2026-01-10 22:48:56 +00:00
Peter Steinberger
317e15c746
fix: harden restart-mac signing ( #580 ) (thanks @jeffersonwarrior)
2026-01-10 23:48:33 +01:00
Peter Steinberger
40f818ff5e
fix(ci): resync pnpm patch hash
2026-01-10 23:48:15 +01:00
Peter Steinberger
1d9199b529
style(test): format update-cli test
2026-01-10 23:46:11 +01:00
Jefferson Warrior
cb213b55f6
feat: add auto-signing detection to restart-mac.sh
2026-01-10 23:45:36 +01:00
Peter Steinberger
7a52a93d08
Merge pull request #683 from benithors/macos-model-picker-search
...
macOS: model picker saves provider/model IDs
2026-01-10 22:43:25 +00:00
Peter Steinberger
d4a93bc25c
fix: normalize model picker refs ( #683 ) (thanks @benithors)
2026-01-10 23:43:06 +01:00
benithors
3853f632e5
fix: restore pi-ai patch hash
2026-01-10 23:42:37 +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
eff092268a
fix(test): avoid update-cli import timeout
2026-01-10 23:40:27 +01:00
Peter Steinberger
b977e8a284
fix(ci): sync pnpm patch hash
2026-01-10 23:39:41 +01:00
Peter Steinberger
621f710d60
fix(mac): add tailnet discovery fallback and debug CLI
2026-01-10 23:39:27 +01:00
Shadow
c731a87d07
Discord: add fetch message action
2026-01-10 16:38:20 -06:00
Peter Steinberger
786eac1d6f
test(cli): avoid update-cli import timeout
2026-01-10 23:35:04 +01:00
Peter Steinberger
1eb50ffac4
feat(status): improve status output
2026-01-10 23:32:07 +01:00
Peter Steinberger
67b7877bbf
docs(changelog): drop self-thanks ( #691 )
2026-01-10 22:27:41 +00:00
Peter Steinberger
3166cc911b
Heartbeat: optional reasoning delivery ( #690 )
...
* feat: expose heartbeat reasoning output
* docs(changelog): mention heartbeat reasoning toggle
2026-01-10 22:26:20 +00:00
Peter Steinberger
5adbeb1bad
Merge pull request #688 from theglove44/fix/thinking-blocks-leak
...
fix(agents): strip <thought> and <antthinking> tags from output
2026-01-10 22:25:37 +00:00
Peter Steinberger
4d0e74ab6c
fix: cover extra thinking tags ( #688 ) (thanks @theglove44)
2026-01-10 23:23:23 +01:00
Chris Taylor
a580639abf
fix(agents): strip <thought> and <antthinking> tags from output
2026-01-10 23:19:58 +01:00
Peter Steinberger
494743a4e5
feat: run doctor after restart
2026-01-10 23:14:55 +01:00
Peter Steinberger
4eb6aec016
Merge pull request #687 from evalexpr/fix/usage-limit-fallback
...
fix: add 'usage limit' to rate limit detection patterns
2026-01-10 22:13:19 +00:00
Peter Steinberger
5a47d6ffc3
docs: add changelog entry for usage limit failover ( #687 ) (thanks @evalexpr)
2026-01-10 23:12:27 +01:00
Jonathan Wilkins
0afa370869
fix: add 'usage limit' to rate limit detection patterns
...
OpenAI/ChatGPT returns "You have hit your ChatGPT usage limit (plus plan)"
when users exceed their plan quota. This error wasn't being recognized as a
rate limit, so fallback to alternative models wasn't triggering.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-10 23:11:06 +01:00
Peter Steinberger
08cc8f2281
refactor(agents): extract transcript repair module
2026-01-10 22:07:25 +00:00
Peter Steinberger
708f04b02f
fix: keep mock openai responses requests
2026-01-10 22:56:08 +01:00
Peter Steinberger
1c257f170a
Gateway: disable OpenAI HTTP chat completions by default ( #686 )
...
* feat(gateway): disable OpenAI chat completions HTTP by default
* test(gateway): deflake mock OpenAI tool-calling
* docs(changelog): note OpenAI HTTP endpoint default-off
2026-01-10 21:55:54 +00:00
Peter Steinberger
06052640e8
Merge pull request #685 from carlulsoe/fix/daemon-restart-feedback
...
fix(cli): improve daemon restart feedback [AI-assisted]
2026-01-10 21:53:00 +00:00
Peter Steinberger
fa61699f9a
fix: polish restart feedback + stabilize tests ( #685 ) (thanks @carlulsoe)
2026-01-10 22:52:09 +01:00
Peter Steinberger
98377c7c6b
fix(agents): harden tool transcript repair
2026-01-10 21:45:15 +00:00
Peter Steinberger
805a29252e
test: add setup-token live smoke
2026-01-10 21:45:15 +00:00
Kit
f699dc3777
fix(cli): improve daemon restart feedback
...
- runDaemonRestart() now returns Promise<boolean> indicating success
- update command only shows success when restart actually happened
- Fixes missing reasoningLevel type in compactEmbeddedPiSession
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Carl Ulsøe Christensen <carlulsoe@users.noreply.github.com >
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-10 22:44:31 +01:00
Peter Steinberger
ad17966e2f
fix(doctor): warn on opencode overrides
2026-01-10 22:44:31 +01:00
Peter Steinberger
2a86e40730
fix: keep docker home volume mounts
2026-01-10 22:42:57 +01:00
Gabriel Trigo
b5cd758c21
feat: add optional home volume and extra mounts
2026-01-10 22:40:57 +01:00
Peter Steinberger
56b11ad5a8
docs(gateway): rename OpenAI HTTP endpoint doc
2026-01-10 22:39:06 +01:00
Peter Steinberger
1110d96769
feat(gateway): add config toggle for chat completions endpoint
2026-01-10 22:39:06 +01:00
Peter Steinberger
050c1c5391
fix(agents): include reasoningLevel in compaction params
2026-01-10 22:39:06 +01:00
Peter Steinberger
357891a063
Merge pull request #676 from ngutman/fix/macos-bridge-tunnel-health
...
fix(macos): stabilize bridge tunnels
2026-01-10 21:27:34 +00: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
Ruby
a6a9930a34
fix: enable block streaming for all providers ( #684 )
2026-01-10 15:25:55 -06:00
Peter Steinberger
6d70524aa8
fix: add reasoning visibility hint
2026-01-10 22:24:22 +01:00
Peter Steinberger
ee5acd6d4b
fix: move attach-only toggle to General settings
2026-01-10 22:21:40 +01:00
Peter Steinberger
aa30995aa1
test(live): add provider filters + google skip rules
2026-01-10 21:16:59 +00:00
Peter Steinberger
d45c27e51f
chore(protocol): regenerate GatewayModels.swift
2026-01-10 22:15:06 +01:00
Peter Steinberger
67fdee6d6b
docs(changelog): note OpenAI HTTP endpoint
2026-01-10 22:11:50 +01:00
Peter Steinberger
0d00d6dfd4
style(gateway): format openai-http
2026-01-10 22:11:15 +01:00
Peter Steinberger
6546a1a23a
feat(gateway): allow agent via model
2026-01-10 22:11:12 +01:00
Peter Steinberger
72d4317d7f
fix(docs): dedupe /sandbox redirects
2026-01-10 22:11:10 +01:00
Peter Steinberger
6d01d70c24
docs(gateway): add OpenAI HTTP API to docs nav
2026-01-10 22:11:07 +01:00
Peter Steinberger
dafa8a2881
feat(gateway): add OpenAI-compatible HTTP endpoint
2026-01-10 22:11:04 +01:00
Peter Steinberger
ab314a22e0
chore: refresh pi-ai patch repro note
2026-01-10 20:55:57 +00:00
Peter Steinberger
c65114be1a
docs(testing): add google live recipes
2026-01-10 20:55:57 +00:00
Shadow
19d9e7ac05
Docs: fix internal links
2026-01-10 14:51:33 -06:00
Peter Steinberger
d19972b317
fix(openai): drop reasoning replay for tool-only turns
2026-01-10 20:44:23 +00:00
Peter Steinberger
9790b39d80
feat(gateway): add agent image attachments + live probe
2026-01-10 20:44:23 +00:00
Peter Steinberger
b9b1bc2726
test: relax reasoning replay expectations
2026-01-10 21:43:52 +01:00
Peter Steinberger
8a194b4abc
fix: align opencode-zen provider setup
2026-01-10 21:38:18 +01:00
Peter Steinberger
46e00ad5e7
fix: describe sandboxed elevated in prompt
2026-01-10 21:37:15 +01:00
Peter Steinberger
3389231ecb
feat(doctor): offer update first
2026-01-10 21:34:59 +01:00
Peter Steinberger
d772ff06c8
test: update openai responses reasoning replay
2026-01-10 21:20:26 +01:00
Peter Steinberger
d9290137bc
fix: add whatsapp sender ids to group context
2026-01-10 21:09:08 +01:00
Peter Steinberger
686b3f884c
fix: expose WhatsApp sender ids in group context
2026-01-10 21:09:08 +01:00
Peter Steinberger
914216eca4
fix(ci): sync pnpm patchedDependencies hash
2026-01-10 21:07:53 +01:00
Peter Steinberger
0ef429f532
feat: color docs search output
2026-01-10 21:02:27 +01:00
Peter Steinberger
9bd5d4355c
docs: expand testing guide
2026-01-10 19:53:34 +00:00
Peter Steinberger
1bd5500832
feat: add colored CLI docs links
2026-01-10 20:51:03 +01:00
Peter Steinberger
cf192f8551
style: biome format
2026-01-10 19:47:17 +00:00
Peter Steinberger
afede929b3
test: harden gateway tool probes
2026-01-10 19:46:13 +00:00
Peter Steinberger
d44bb41d27
fix: replay OpenAI reasoning for tool calls
2026-01-10 19:46:13 +00:00
Peter Steinberger
fa346d7b78
fix: accept Z_AI_API_KEY for zai
2026-01-10 19:46:13 +00:00
Peter Steinberger
ec1047583a
Merge pull request #640 from mcinteerj/fix/whatsapp-group-reactions
...
fix(whatsapp): enable reactions in group chats
2026-01-10 19:44:05 +00:00
Peter Steinberger
7e6fa94720
fix: update WhatsApp history assertions ( #640 ) (thanks @mcinteerj)
2026-01-10 20:41:30 +01:00
Jake
4933113252
fix(whatsapp): preserve group message IDs and normalize reaction participants
2026-01-10 20:36:32 +01:00
Peter Steinberger
2f050b197e
docs: document clawdbot update
2026-01-10 20:33:02 +01:00
Peter Steinberger
4c4c167416
fix(update): harden root selection
2026-01-10 20:33:02 +01:00
Claude
777fb6b7bb
CLI: add clawdbot update command and --update flag
2026-01-10 20:33:02 +01:00
Peter Steinberger
9f9098406c
feat(sandbox): add sandbox explain inspector
2026-01-10 20:28:43 +01:00
Peter Steinberger
4533dd6e5d
test: add image attachment regression coverage
2026-01-10 20:25:38 +01:00
Peter Steinberger
212b13b099
fix: repair tool-use history for anthropic
2026-01-10 19:15:57 +00:00
Peter Steinberger
c409edd3fa
Merge pull request #670 from cristip73/fix/ios-image-attachments
...
fix: enable image attachments in chat messages for Claude API
2026-01-10 19:07:35 +00:00
Peter Steinberger
193ebba657
fix: sniff chat attachment mime ( #670 ) (thanks @cristip73)
2026-01-10 20:06:33 +01:00
Peter Steinberger
fac4951f27
docs: add group flow diagram
2026-01-10 20:05:22 +01:00
cristip73
c4e76eb635
fix: enable image attachments in chat messages for Claude API
...
Images were previously converted to markdown data URLs which Claude API
treats as plain text, not as actual images.
Changes:
- Add parseMessageWithAttachments() that returns {message, images[]}
- Pass images through the stack to session.prompt() as content blocks
- Filter null/empty attachments before parsing
- Strip data URL prefix if client sends it
This enables iOS and other clients to send images that Claude can actually see.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-10 20:00:25 +01:00
Peter Steinberger
0279f09459
fix: avoid duplicate cli banners
2026-01-10 19:57:24 +01:00
Peter Steinberger
831de9ba8f
docs: clarify group chat behavior
2026-01-10 19:56:46 +01:00
Peter Steinberger
7947059884
test(gateway): deflake temp HOME cleanup
2026-01-10 19:53:04 +01:00
Peter Steinberger
1fe9f648b1
feat(hooks): allow gmail tailscale target URLs
2026-01-10 19:19:43 +01:00
Peter Steinberger
0335bccd91
docs: clarify tailscale gmail path forwarding
2026-01-10 19:19:43 +01:00
Peter Steinberger
f9347235e4
docs: call out group history limits
2026-01-10 19:19:31 +01:00
Peter Steinberger
b1664ec9c7
test: rename signal reaction-only test ( #637 )
2026-01-10 19:19:05 +01:00
Peter Steinberger
801e7dd811
docs: update changelog for unified history
2026-01-10 19:16:26 +01:00
Peter Steinberger
82f71d25e5
refactor: centralize history context wrapping
2026-01-10 19:16:26 +01:00
Peter Steinberger
b977ae19af
chore: fix lint and typing
2026-01-10 19:16:25 +01:00
Peter Steinberger
c0a010335b
docs: document history context overrides
2026-01-10 19:16:25 +01:00
Peter Steinberger
d41372b9d9
feat: unify provider history context
2026-01-10 19:16:25 +01:00
Peter Steinberger
8c1d39064d
test: adjust tool id sanitization
2026-01-10 18:15:15 +00:00
Peter Steinberger
7c925aa5a0
style: format helper
2026-01-10 18:15:15 +00:00
Peter Steinberger
651a9e9be4
fix: restore minimax tool calling
2026-01-10 18:15:15 +00:00
Peter Steinberger
c264e98c62
fix(deps): patch pi-ai tool calling
2026-01-10 18:15:15 +00:00
Peter Steinberger
1ac7338d9a
Merge pull request #637 from neist/main
...
fix(signal): handle reactions in dataMessage.reaction format
2026-01-10 18:14:30 +00:00
Peter Steinberger
8dbb22cc93
fix: signal handle dataMessage.reaction safely ( #637 ) (thanks @neist)
2026-01-10 19:13:23 +01:00
Kasper Neist Christjansen
59e6064006
fix(signal): handle reactions in dataMessage.reaction format ( #1 )
...
* fix(signal): handle reactions inside dataMessage.reaction
Signal reactions can arrive in two formats:
1. envelope.reactionMessage (already handled)
2. envelope.dataMessage.reaction (now handled)
The signal-cli SSE events use the second format, which was being
misinterpreted as a message with attachments, leading to 'broken
media / attachments' errors.
Changes:
- Add reaction property to SignalDataMessage type
- Check both envelope.reactionMessage and dataMessage.reaction
- Improve body content detection to properly identify reaction-only messages
- Add test for dataMessage.reaction format
* fix(signal): reaction notifications work when account is phone number
When reactionNotifications mode is 'own', notifications would never fire
because resolveSignalReactionTarget() returned a UUID but
shouldEmitSignalReactionNotification() compared it against the account
phone number, which never matched.
The fix:
- Add optional 'phone' field to SignalReactionTarget type
- Extract phone number first in resolveSignalReactionTarget(), include
it even when UUID is present
- In shouldEmitSignalReactionNotification() 'own' mode, check phone
match first before falling back to UUID comparison
This ensures reactions to your own messages are properly detected when
the Signal account is configured as a phone number and the reaction
event contains both targetAuthor (phone) and targetAuthorUuid.
* fix(signal): include phone in reaction target for own-mode matching
When targetAuthorUuid is present, also store targetAuthor phone number
in the reaction target. This allows own-mode reaction notifications to
match when comparing account phone against UUID-based targets.
2026-01-10 19:10:39 +01:00
Peter Steinberger
f648267dd9
docs: add changelog for gmail tailscale fix
2026-01-10 18:52:17 +01:00
Anton Sotkov
26ce65995f
fix(gmail): keep tailscale serve path at root
...
The default Gmail hook path configured by `clawdbot hooks gmail setup` is `/gmail-pubsub`. Tailscale strips the mount path before proxying, so the request lands on `/` and the hook 404s under the default configuration.
When Tailscale is enabled, always listen on `/` internally and keep the public URL on the configured path (defaulting to `/gmail-pubsub`). This makes default and custom paths work reliably.
Alternative (not implemented here): call tailscale with a full target URL so the backend keeps the path, e.g. `tailscale funnel --set-path /gmail-pubsub http://127.0.0.1:8788/gmail-pubsub `. We did not take this path because it requires changing the CLI invocation to pass URLs (not ports) plus extra validation, which is a larger behavior change.
2026-01-10 18:51:12 +01:00
Shadow
0de3bb36d5
Deps: drop carbon patch
2026-01-10 11:40:28 -06:00
Shadow
755c031f6a
Deps: bump carbon beta
2026-01-10 11:40:27 -06:00
Peter Steinberger
7ac628a697
Merge pull request #666 from roshanasingh4/fix/652-cron-wakeMode-now-waits-for-agent
...
[AI-assisted] fix(cron): wait for heartbeat to complete when wakeMode is "now"
2026-01-10 17:39:14 +00:00
Peter Steinberger
7dd0899856
fix: voicewake respects state dir override ( #666 ) (thanks @roshanasingh4)
2026-01-10 18:32:09 +01:00
Peter Steinberger
8dd8818e08
style: swiftformat GatewayEnvironment
2026-01-10 18:31:36 +01:00
Peter Steinberger
f1a1032cd6
fix: serialize telegram media-group processing
2026-01-10 18:31:36 +01:00
Peter Steinberger
b383fbeed3
fix: cron wakeMode now waits for heartbeat ( #666 ) (thanks @roshanasingh4)
2026-01-10 18:31:35 +01:00
Roshan Singh
91c870a0c4
fix(cron): wait for heartbeat to complete when wakeMode is "now"
...
Fixes #652
When cron jobs with sessionTarget:"main" have wakeMode:"now",
they were being marked as completed immediately without waiting for the
agent to actually process the system event.
The issue was that requestHeartbeatNow() is fire-and-forget and
doesn't wait for the heartbeat to complete. The job would finish
with durationMs: 0 before the agent had a chance to run.
This fix:
- Adds runHeartbeatOnce to CronServiceDeps
- Wires it up in gateway/server.ts to load config and pass runtime
- Modifies executeJob() to call runHeartbeatOnce when wakeMode:"now"
- Waits for heartbeat to complete and maps status to cron result:
* "ran" → "ok"
* "skipped" → "skipped"
* "failed" → "error"
- Falls back to old behavior for wakeMode:"next-heartbeat" or if
runHeartbeatOnce is not available (backward compatibility)
Benefits:
- Jobs now have accurate durationMs reflecting actual processing time
- Jobs are correctly marked with "error" status if heartbeat fails
- Prevents race condition where job completes before agent runs
[AI-assisted] - Generated with z.ai GLM-4.7
[Tested: Lightly tested - Logic validated with test scenarios, code quality checks passed, integration testing requires live Clawdbot instance]
2026-01-10 18:31:35 +01:00
Peter Steinberger
5a57cbe571
Merge pull request #667 from rubyrunsstuff/fix/discord-forwarded-snapshots
...
Discord: include forwarded message snapshots
2026-01-10 17:31:26 +00:00
Peter Steinberger
6480ef369f
fix: telegram draft chunking defaults ( #667 ) (thanks @rubyrunsstuff)
2026-01-10 18:30:06 +01:00
Peter Steinberger
2455a2b26a
Merge pull request #669 from magimetal/opencode-zen-model-defaults
...
feat(opencode-zen): update models with sensible defaults
2026-01-10 17:27:05 +00:00
Peter Steinberger
2d105d16f8
fix(opencode-zen): keep legacy aliases + rationale ( #669 ) (thanks @magimetal)
2026-01-10 18:25:43 +01:00
Ruby
7a836c9ff0
Discord: include forwarded message snapshots
2026-01-10 18:23:30 +01:00
Magi Metal
738269eb74
feat(opencode-zen): update models with sensible defaults
...
- Replace model catalog with 11 current models: gpt-5.1-codex, claude-opus-4-5,
gemini-3-pro, alpha-glm-4.7, gpt-5.1-codex-mini, gpt-5.1, glm-4.7-free,
gemini-3-flash, gpt-5.1-codex-max, minimax-m2.1-free, gpt-5.2
- Add accurate per-token costs from OpenCode Zen pricing
- Add accurate context windows and output limits
- Update aliases for new model families (codex, glm, minimax)
- Remove deprecated models (sonnet, haiku, o-series, gemini-2.5)
2026-01-10 18:22:26 +01:00
Peter Steinberger
9b5ce2530a
Merge pull request #665 from sebslight/fix/cloud-code-assist-schema-and-tool-ids
...
fix(agents): harden Cloud Code Assist compatibility
2026-01-10 17:07:58 +00:00
Peter Steinberger
38d6930fbe
Merge pull request #664 from azade-c/fix/use-state-dir-for-nodes-voicewake
...
fix: use resolveStateDir() for node-pairing and voicewake storage
2026-01-10 17:07:28 +00:00
Peter Steinberger
0d98e93253
fix: harden cloud code assist tool schema sanitizing ( #665 ) (thanks @sebslight)
2026-01-10 18:07:26 +01:00
Sebastian Barrios
64babcac7a
fix(agents): harden Cloud Code Assist compatibility
...
- Expand schema scrubber to strip additional constraint keywords rejected
by Cloud Code Assist (examples, minLength, maxLength, minimum, maximum,
multipleOf, pattern, format, minItems, maxItems, uniqueItems,
minProperties, maxProperties)
- Extend tool call ID sanitization to cover toolUse and toolCall block
types (previously only functionCall was sanitized)
- Update pi-tools test to include 'examples' in unsupported keywords
Fixes 400 errors when using google-antigravity/claude-opus-4-5-thinking:
- tools.N.custom.input_schema: JSON schema is invalid
- messages.N.content.N.tool_use.id: String should match pattern
2026-01-10 18:06:35 +01:00
Peter Steinberger
464f0645a8
fix: stabilize telegram media tests ( #664 ) (thanks @azade-c)
2026-01-10 18:06:05 +01:00
Peter Steinberger
ef08c3f038
fix(agents): stabilize cli creds cache + bash cwd
2026-01-10 18:02:21 +01:00
Azade
48ad3bbbe6
fix: use resolveStateDir() for node-pairing and voicewake storage
...
Both node-pairing.ts and voicewake.ts were using a local defaultBaseDir()
that hardcoded ~/.clawdbot, ignoring CLAWDBOT_STATE_DIR.
This caused nodes/paired.json and settings/voicewake.json to be stored
in ~/.clawdbot instead of the configured state directory.
Fixes the bug where paired nodes config was stored in a different
location than the rest of the gateway state.
2026-01-10 17:55:30 +01:00
Peter Steinberger
843ff5f2d4
fix(sessions): tolerate ENOENT during lock
2026-01-10 17:50:53 +01:00
Peter Steinberger
60bf349201
fix(sessions): lock store saves; wait for bash close
2026-01-10 17:47:12 +01:00
Peter Steinberger
a54706a063
fix: throttle cli credential sync
2026-01-10 17:44:03 +01:00
Peter Steinberger
6cc8570369
docs: expand TypeBox protocol guide
2026-01-10 17:38:34 +01:00
Peter Steinberger
dd958fddfc
docs: clarify model picks and auth setup
2026-01-10 17:36:54 +01:00
Peter Steinberger
12722acb55
feat: wizard model picker ( #611 , thanks @jonasjancarik)
2026-01-10 16:32:59 +00:00
Jonáš Jančařík
687a10b8cc
fix: map opencode-zen preferred provider
2026-01-10 16:32:59 +00:00
Jonáš Jančařík
9f80d8ec7c
fix: skip model picker when auth choice preset
2026-01-10 16:32:59 +00:00
Jonáš Jančařík
dcc41e932d
feat: add shared model picker to configure/onboarding
2026-01-10 16:32:59 +00:00
Peter Steinberger
e3cd431551
fix(auto-reply): RawBody commands + locked session updates ( #643 )
2026-01-10 17:32:31 +01:00
Peter Steinberger
e2ea02160d
test: add workspace path regressions
2026-01-10 17:28:43 +01:00
Peter Steinberger
89b20baafe
docs: update changelog
2026-01-10 16:23:53 +00: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
a1533a17f7
fix(gateway): harden chat abort semantics
2026-01-10 17:23:27 +01:00
Peter Steinberger
84d64f9395
Merge pull request #446 from tony-freedomology/feat/human-delay
...
feat(agent): add human-like delay between block replies
2026-01-10 16:16:52 +00:00
Peter Steinberger
fb03149df4
fix: finalize human delay config typing ( #446 ) (thanks @tony-freedomology)
2026-01-10 17:15:27 +01:00
Lloyd
ab994d2c63
feat(agent): add human-like delay between block replies
...
Adds `agent.humanDelay` config option to create natural rhythm between
streamed message bubbles. When enabled, introduces a random delay
(default 800-2500ms) between block replies, making multi-message
responses feel more like natural human texting.
Config example:
```json
{
"agent": {
"blockStreamingDefault": "on",
"humanDelay": {
"enabled": true,
"minMs": 800,
"maxMs": 2500
}
}
}
```
- First message sends immediately
- Subsequent messages wait a random delay before sending
- Works with iMessage, Signal, and Discord providers
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-10 17:12:50 +01:00
Peter Steinberger
a1ded60bca
Merge pull request #642 from mukhtharcm/fix/workspace-path-resolution
...
fix(tools): resolve Read/Write/Edit paths against workspace directory
2026-01-10 16:11:13 +00:00
Peter Steinberger
f62f4b6703
fix: log workspace tool path resolution ( #642 ) (thanks @mukhtharcm)
2026-01-10 17:09:56 +01:00
Muhammed Mukhthar CM
de5b75eff6
fix(tools): resolve Read/Write/Edit paths against workspace directory
...
Previously, Read/Write/Edit tools used the global tool instances from
pi-coding-agent which had process.cwd() baked in at import time. Since
the gateway starts from /root/dev/ai/clawdbot, relative paths like
'SOUL.md' would incorrectly resolve there instead of the agent's
workspace (/root/clawd).
This fix:
- Adds workspaceDir option to createClawdbotCodingTools
- Creates fresh Read/Write/Edit tools bound to workspaceDir
- Adds cwd option to Bash tool defaults for consistency
- Passes effectiveWorkspace from pi-embedded-runner
Absolute paths and ~/... paths are unaffected. Sandboxed sessions
continue to use sandbox root as before.
Includes tests for Read/Write/Edit workspace path resolution.
2026-01-10 17:08:56 +01:00
Peter Steinberger
bf0184d0cf
docs: update changelog ( #662 )
2026-01-10 16:04:32 +00:00
Peter Steinberger
64525f825c
chore(docs): quiet docs build output
2026-01-10 16:04:32 +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
d1943a9337
chore: format reply session
2026-01-10 17:03:17 +01:00
Peter Steinberger
d781508952
fix: make chat.send non-blocking
2026-01-10 17:02:28 +01:00
Peter Steinberger
22144cd51b
docs(changelog): note native /model fix
2026-01-10 16:52:14 +01:00
Peter Steinberger
b7fdc266ad
test(auto-reply): cover native /model session routing
2026-01-10 16:50:32 +01:00
Peter Steinberger
b99eb4c9f3
fix(auto-reply): apply native commands to target session
2026-01-10 16:48:53 +01:00
Peter Steinberger
239e9bafc8
docs: use providers login
2026-01-10 16:44:59 +01:00
Peter Steinberger
8978ac425e
fix: harden cli credential sync
2026-01-10 16:37:54 +01:00
Peter Steinberger
81f9093c3c
fix(pairing): accept positional provider args
2026-01-10 16:36:43 +01:00
Peter Steinberger
41c8bdfada
feat: add ZAI auth choice
2026-01-10 16:32:21 +01:00
Peter Steinberger
8b47368167
fix: harden cli credential sync
2026-01-10 16:25:40 +01:00
Peter Steinberger
e60c3fc1b3
fix: doctor ignore install dir in legacy workspace check
2026-01-10 16:23:35 +01:00
Peter Steinberger
db5e4b986b
Merge pull request #650 from henrino3/showcase-2026-01-10
...
docs(showcase): add ParentPay, R2 Upload, iOS TestFlight, Oura Health
2026-01-10 15:18:03 +00:00
Peter Steinberger
78532d76bd
test: clean up lint warnings
2026-01-10 16:17:02 +01:00
Peter Steinberger
04f2972b4a
fix: update showcase changelog ( #650 ) (thanks @henrino3)
2026-01-10 16:16:48 +01:00
henrymascot
e87ce9c680
docs(showcase): add ParentPay, R2 Upload, iOS TestFlight, Oura Health
...
New community showcase entries from Discord #showcase:
- ParentPay School Meals (@George5562) - UK school meal automation
- R2 Upload (@julianengel) - presigned URL file sharing
- iOS App via Telegram (@coard) - full iOS app built via chat
- Oura Ring Health Assistant (@AS) - health/calendar integration
2026-01-10 16:15:55 +01:00
Peter Steinberger
53a0c966a5
refactor: unify configure auth choice
2026-01-10 16:14:49 +01:00
Peter Steinberger
d6d5c5ccd1
docs: remove legacy bundled gateway doc
2026-01-10 16:03:36 +01:00
Peter Steinberger
001a19eb2c
refactor: tidy mac bundled gateway packaging
2026-01-10 16:03:36 +01:00
Peter Steinberger
43b530ca1c
fix(agents): suppress partial replies with reasoning
2026-01-10 16:03:17 +01:00
Peter Steinberger
44564df028
refactor(sessions): add mergeSessionEntry
2026-01-10 16:03:17 +01:00
Peter Steinberger
70c1732dd1
refactor: centralize messaging dedupe helpers
2026-01-10 16:02:56 +01:00
Peter Steinberger
99e9e506be
Merge pull request #654 from radek-paclt/fix/claude-cli-oauth-refresh
...
fix(auth): enable OAuth refresh for Claude CLI credentials
2026-01-10 14:51:29 +00:00
Peter Steinberger
5a93447294
fix: prevent claude-cli oauth downgrade ( #654 ) (thanks @radek-paclt)
2026-01-10 15:50:25 +01:00
Radek Paclt
a39951d463
fix(auth): enable OAuth refresh for Claude CLI credentials
...
When Claude CLI credentials (anthropic:claude-cli) expire, automatically
refresh using the stored refresh token instead of failing with
"No credentials found" error.
Changes:
- Read refreshToken from Claude CLI and store as OAuth credential type
- Implement bidirectional sync: after refresh, write new tokens back to
Claude Code storage (file on Linux/Windows, Keychain on macOS)
- Prefer OAuth over Token credentials (enables auto-refresh capability)
- Maintain backward compatibility for credentials without refreshToken
This enables long-running agents to operate autonomously without manual
re-authentication when OAuth tokens expire.
Co-Authored-By: Claude <noreply@anthropic.com >
2026-01-10 15:40:27 +01:00
Peter Steinberger
1281c1d155
Merge pull request #655 from antons/fix/reasoning-imsg
...
Fix reasoning in iMessage
2026-01-10 14:39:14 +00:00
Peter Steinberger
236f8560b3
fix: reasoning iMessage sessions + final reply ( #655 ) (thanks @antons)
2026-01-10 15:31:57 +01:00
Peter Steinberger
ae3711bfbd
Merge pull request #659 from mickahouan/fix/dedupe-message-tool
...
Fix: avoid duplicate replies when message tool sends
2026-01-10 14:30:02 +00:00
Peter Steinberger
449bee9645
fix: bundle node runtime for mac app
2026-01-10 15:28:37 +01:00
Peter Steinberger
4d146ea2f5
fix: dedupe message tool replies ( #659 ) (thanks @mickahouan)
2026-01-10 15:28:13 +01:00
Anton Sotkov
3b5149ca39
fix: send only final answer with reasoning
...
When reasoning is enabled on non‑block providers, we now ignore interim streaming chunks and send only the final assistant answer at completion, so replies aren’t partial or duplicated.
2026-01-10 15:28:04 +01:00
Anton Sotkov
4c86da044e
fix(sessions): persist reasoning/elevated across DMs
2026-01-10 15:28:04 +01:00
Mickaël Ahouansou
d01e06f09a
Fix: dedupe message tool sends
2026-01-10 15:25:20 +01:00
henrymascot
c782404bee
docs(showcase): add Adam H's multi-agent swarm
...
- 14+ Clawdbot agents under single gateway
- Opus 4.5 orchestrator + Codex workers
- Self-maintaining agent architecture
- Open-sourced clawdspace sandbox
2026-01-10 14:21:18 +00:00
Peter Steinberger
6019c1e718
Merge pull request #656 from mneves75/feat/minimax-api-auth-v2
...
Config: add MiniMax direct API authentication option
2026-01-10 14:13:24 +00:00
Peter Steinberger
65c2532cd5
fix: minimax apiKey optional for providers ( #656 ) (thanks @mneves75)
2026-01-10 15:08:12 +01:00
mneves75
3e2e3eb023
Config: add MiniMax direct API authentication option
...
Makes apiKey optional in ModelProviderConfig so MiniMax can use auth
profiles or environment variables (MINIMAX_API_KEY) instead of requiring
explicit config.
Changes:
- src/config/types.ts: apiKey changed from required to optional
- src/config/zod-schema.ts: use z.string().min(1).optional() for validation
- src/commands/configure.ts: add minimax-api auth choice in wizard
- src/commands/onboard-auth.ts: MiniMax provider omits apiKey (uses env/auth)
- patches/@mariozechner__pi-ai@0.42 .1.patch: map minimax → MINIMAX_API_KEY
Auth Resolution Order (unchanged):
1. Auth profiles (highest priority)
2. Environment variables (MINIMAX_API_KEY, etc.)
3. Custom provider apiKey from models.json (lowest priority)
2026-01-10 10:57:09 -03:00
pasogott
0258c746bc
docs(telegram): Add @userinfobot tip with privacy note ( #649 )
...
* docs(telegram): Add @userinfobot tip with screenshot and privacy note
* docs: adjust telegram userinfobot tip
---------
Co-authored-by: sheeek <gitlab@ott.team >
Co-authored-by: Ayaan Zaidi <zaidi@uplause.io >
2026-01-10 19:21:51 +05:30
Peter Steinberger
920b3880c1
test: add elevated mode regressions
2026-01-10 05:31:48 +01:00
Peter Steinberger
66db6c749d
fix: persist elevated off override
2026-01-10 05:23:46 +01:00
Peter Steinberger
e4abd06094
chore(release): update appcast for 2026.1.9
2026-01-10 05:23:34 +01:00
Peter Steinberger
98abf3983a
docs(changelog): move 2026.1.10 fixes
2026-01-10 04:19:43 +00:00
Peter Steinberger
10102e1cf2
docs(changelog): note regression coverage
2026-01-10 04:14:39 +00:00
Peter Steinberger
a057f6a306
test(docker): add multi-container gateway network smoke
2026-01-10 04:14:39 +00:00
Peter Steinberger
2045395ccb
test(live): add optional write/bash probes
2026-01-10 04:14:39 +00:00
Peter Steinberger
d3674f4d6c
test(onboard): cover remote + lan token flows
2026-01-10 04:14:39 +00:00
Peter Steinberger
cdb915d527
chore: normalize Clawdbot naming
2026-01-10 05:14:09 +01:00
Peter Steinberger
a7c8341452
feat: show more session flags
2026-01-10 05:14:07 +01:00
Peter Steinberger
7b478909b2
chore(release): bump to 2026.1.10
2026-01-10 04:55:43 +01:00
Peter Steinberger
7b392ca74b
test(onboard): gateway token auth flow
2026-01-10 03:54:29 +00:00
Peter Steinberger
eee04fa2ce
fix(onboard): persist gateway token in config
2026-01-10 03:54:25 +00:00
Peter Steinberger
025f794f0f
docs(testing): document onboarding + wizard regressions
2026-01-10 03:47:44 +00:00
Peter Steinberger
4fac94f259
test(gateway): add wizard e2e + isolate live suite
2026-01-10 03:44:21 +00:00
Peter Steinberger
0f409cb99d
test(telegram): force real timers for media groups
2026-01-10 03:44:21 +00:00
Peter Steinberger
241bc737cf
test(telegram): deflake media groups on windows
2026-01-10 04:43:04 +01:00
Peter Steinberger
cc8d3d331a
fix(release): include whatsapp in npm pack
2026-01-10 04:34:24 +01:00
Peter Steinberger
5ec2018c8a
fix(release): include msteams in npm pack
2026-01-10 04:30:56 +01:00
Peter Steinberger
6b9e1b9dbb
docs: finalize 2026.1.9 changelog top
2026-01-10 04:25:54 +01:00
Peter Steinberger
16b4df4a9d
docs(changelog): note oauth tool fix
2026-01-10 04:25:54 +01:00
Peter Steinberger
2a0d8f6e38
test(gateway): avoid real OpenAI in mock test
2026-01-10 03:25:45 +00:00
Peter Steinberger
056c4ae622
test(telegram): harden media tests
2026-01-10 04:18:05 +01:00
Peter Steinberger
6274adce3a
fix(tools): keep canonical tool names for oauth
2026-01-10 04:18:00 +01:00
Peter Steinberger
2772b39e4a
docs: rewrite changelog for 2026.1.9
2026-01-10 04:17:30 +01:00
Peter Steinberger
4f79122068
test: stabilize gateway mock + lint
2026-01-10 03:14:13 +00:00
Peter Steinberger
7376d1e6c9
feat: improve tui status output
2026-01-10 04:07:15 +01:00
Peter Steinberger
f918d30a58
docs(testing): refresh live docker runners
2026-01-10 03:06:07 +00:00
Peter Steinberger
782863ea6c
test(gateway): add offline tool-calling regression
2026-01-10 03:06:02 +00:00
Peter Steinberger
cc1c5f800f
fix(tools): harden schemas and oauth tool names
2026-01-10 03:05:56 +00:00
Peter Steinberger
f241859c98
fix: relax fetch typing for Bun
2026-01-10 04:01:06 +01:00
Peter Steinberger
8466e53b5d
fix: restore Anthropic OAuth tool dispatch
2026-01-10 04:01:00 +01:00
Peter Steinberger
8e63cd9a76
feat: improve tui status line
2026-01-10 03:53:32 +01:00
Peter Steinberger
895cd06ecc
chore: add dev gateway/tui scripts
2026-01-10 03:53:32 +01:00
Peter Steinberger
2cfed7952e
test(telegram): relax media group timeouts on Windows
2026-01-10 02:32:03 +00:00
Peter Steinberger
8a5fb796c0
test(live): probe Read tool via gateway
2026-01-10 02:25:24 +00:00
Peter Steinberger
34664601e0
fix(auto-reply): default audioAsVoice to false
2026-01-10 02:25:19 +00:00
Peter Steinberger
d693f02fa7
fix(msteams): download image attachments reliably
2026-01-10 02:25:14 +00:00
Peter Steinberger
003cda73e8
style: fix biome formatting
2026-01-10 02:11:43 +00:00
Peter Steinberger
afe6f182ca
feat: show effective config in /debug
2026-01-10 03:10:14 +01:00
Peter Steinberger
5a6ae2624e
docs: add /config get alias
2026-01-10 03:10:14 +01:00
Peter Steinberger
2dc7872ad1
feat: auto-start sandbox browser
2026-01-10 02:06:21 +00:00
Peter Steinberger
8b579c91a5
feat: add /config chat config updates
2026-01-10 03:01:27 +01:00
Peter Steinberger
63b0a16357
feat(cli): colorize gateway health + daemon output
2026-01-10 03:01:27 +01:00
Peter Steinberger
f28a4a34ad
refactor: unify inline directives and media fetch
2026-01-10 03:01:04 +01:00
Peter Steinberger
4075895c4c
refactor: consolidate reply/media helpers
2026-01-10 02:41:16 +01:00
Peter Steinberger
9cd2662a86
refactor: centralize WhatsApp target normalization
2026-01-10 02:39:52 +01:00
Peter Steinberger
8f8caa8d89
test(telegram): relax media group test timeouts
2026-01-10 02:37:59 +01:00
Peter Steinberger
991f6dda38
Merge pull request #631 from imfing/fix-normalize
...
fix(whatsapp): normalize targets for groups and E.164
2026-01-10 01:27:33 +00:00
Peter Steinberger
2485701835
fix: hide tui reasoning label when off
2026-01-10 01:25:15 +00:00
Peter Steinberger
f634db5c17
fix: signal own reactions match uuid + phone ( #632 ) (thanks @neist)
...
Co-authored-by: neist <1029724+neist@users.noreply.github.com >
2026-01-10 02:24:57 +01:00
Xin
f0700e9778
fix: normalize WhatsApp targets for groups and E.164 ( #631 ) (thanks @imfing)
2026-01-10 02:22:13 +01:00
Peter Steinberger
172fc777ed
ci: use node 22.x
2026-01-10 02:20:20 +01:00
Peter Steinberger
a6822e1210
ci: pin node to engine minimum
2026-01-10 02:17:59 +01:00
Peter Steinberger
5b8f2911df
chore: sync pnpm patches after pull
2026-01-10 02:17:19 +01:00
Peter Steinberger
ede3cd78c8
docs: document testing kit
2026-01-10 01:15:47 +00:00
Peter Steinberger
092d357187
Merge pull request #633 from levifig/feat/remove-ack-after-reply
...
feat: add removeAckAfterReply option (Discord, Slack, Telegram)
2026-01-10 01:14:33 +00:00
Peter Steinberger
38e2362be6
fix: remove ack reactions after reply ( #633 ) (thanks @levifig)
2026-01-10 02:14:14 +01:00
Levi Figueira
b5858c0148
feat: add removeAckAfterReply option for Discord, Slack, and Telegram
...
Add `messages.removeAckAfterReply` config option to automatically remove
acknowledgment reactions after the bot sends a reply, reducing visual
clutter while still providing immediate feedback.
Platforms: Discord, Slack, Telegram
Implementation:
- Added removeAckAfterReply boolean field to MessagesConfig (default: false)
- Track ack reaction state in all three platform handlers
- Remove ack reaction after successful reply delivery
- Graceful error handling with verbose logging
Platform-specific:
- Discord: uses removeReactionDiscord()
- Slack: uses removeSlackReaction()
- Telegram: uses setMessageReaction() with empty array
Closes #627
2026-01-10 02:13:46 +01:00
Peter Steinberger
a29f5dda2e
test(live): gateway smoke across profile-key models
2026-01-10 01:09:41 +00:00
Peter Steinberger
3ed877a813
fix: sandbox browser CDP proxy
2026-01-10 01:09:41 +00:00
Peter Steinberger
28b7e87c99
fix(pnpm): regenerate patchedDependencies
2026-01-10 01:09:41 +00:00
Peter Steinberger
623d1e11f1
refactor: centralize session agent resolution
2026-01-10 01:57:54 +01:00
Peter Steinberger
f4b3869f45
Merge pull request #490 from jarvis-medmatic/feat/audio-as-voice-tag
...
feat(telegram): `[[audio_as_voice]]` tag support
2026-01-10 00:52:02 +00:00
Peter Steinberger
c56b2f4bc1
fix: honor audio_as_voice streaming + parse tests ( #490 ) (thanks @jarvis-medmatic)
2026-01-10 01:50:33 +01:00
Peter Steinberger
c75d77e36c
ci: add clean install check
2026-01-10 01:50:32 +01:00
Peter Steinberger
45ff927980
ci: enforce frozen pnpm install
2026-01-10 01:49:24 +01:00
Peter Steinberger
a4ea47be37
fix: refresh @buape/carbon patch
2026-01-10 01:48:42 +01:00
Peter Steinberger
cb10682d3e
fix(openai): avoid invalid reasoning replay
2026-01-10 00:45:10 +00:00
Jarvis
5fedfd8d15
chore: format audioAsVoice updates
...
Co-authored-by: Manuel Hettich <17690367+ManuelHettich@users.noreply.github.com >
2026-01-10 01:44:57 +01:00
Jarvis
8c7d1781bc
fix(pi): preserve audio_as_voice tag
...
- Allow flag-only chunks so audio_as_voice propagates
- Keep reply item scan aware of empty audio tag blocks
Co-authored-by: Manuel Hettich <17690367+ManuelHettich@users.noreply.github.com >
2026-01-10 01:43:51 +01:00
Peter Steinberger
626b085c85
docs: improve Hetzner 24/7 VPS guide
2026-01-10 01:43:28 +01:00
Jarvis
9a7f050568
refactor(telegram): centralize voice decisions
...
- Share voice compatibility decision logic across send + bot flows
- Keep voice fallback logging consistent
- Simplify voice handling in the audio send path
2026-01-10 01:43:23 +01:00
Jarvis
ce786762db
fix(telegram): guard voice note sends
2026-01-10 01:43:01 +01:00
Jarvis
2f036f7173
fix(audio): preserve audioAsVoice propagation
...
- Keep audioAsVoice-only payloads from being filtered out
- Allow empty payloads through when they carry the flag
- Remove temporary debug logs around audioAsVoice buffering
Co-authored-by: Manuel Hettich <17690367+ManuelHettich@users.noreply.github.com >
2026-01-10 01:42:09 +01:00
Jarvis
05a99aa49b
feat(telegram): buffer audio blocks for [[audio_as_voice]] tag support
...
- Add [[audio_as_voice]] detection to splitMediaFromOutput()
- Pass audioAsVoice through onBlockReply callback chain
- Buffer audio blocks during streaming, flush at end with correct flag
- Non-audio media still streams immediately
- Fix: emit payloads with audioAsVoice flag even if text is empty
Co-authored-by: Manuel Hettich <17690367+ManuelHettich@users.noreply.github.com >
2026-01-10 01:41:18 +01:00
Peter Steinberger
60bd65dfac
Merge pull request #630 from adam91holt/fix/heartbeat-default-agent-only
...
fix: only inject heartbeat prompt for default agent
2026-01-10 00:34:13 +00:00
Peter Steinberger
43975a39dc
fix: gate heartbeat prompt to default agent sessions ( #630 ) (thanks @adam91holt)
2026-01-10 01:32:58 +01:00
Adam Holt
c91ec2aab7
fix: only inject heartbeat prompt for default agent
...
The heartbeat prompt from agents.defaults.heartbeat.prompt was being
injected into the system prompt for ALL agents, causing non-default
agents to read the default agent's identity files and adopt its persona.
Now the heartbeat prompt is only included when the session's agent ID
matches the configured default agent. Other agents receive no heartbeat
section in their system prompt.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-10 01:32:30 +01:00
Peter Steinberger
5898304fa0
fix: abort runs between tool calls
2026-01-10 01:26:25 +01:00
Peter Steinberger
a0a64a625e
docs: document OpenCode Zen config ( #623 )
2026-01-10 01:26:25 +01:00
Peter Steinberger
53ec8e36cb
refactor: centralize failover error parsing
2026-01-10 01:26:06 +01:00
Peter Steinberger
82ffcfb181
fix(web): show all WhatsApp shared contacts
2026-01-10 00:22:31 +00:00
Peter Steinberger
20d4773f14
fix(agents): require raw for gateway config.apply ( #566 ) (thanks @sircrumpet)
2026-01-10 00:21:15 +00:00
Peter Steinberger
52565864d1
Merge pull request #619 from rubyrunsstuff/fix/telegram-block-streaming
...
fix: enable block streaming for Telegram when streamMode is 'block'
2026-01-10 00:16:04 +00:00
Peter Steinberger
1fd7a6e310
fix: keep telegram streamMode draft-only ( #619 ) (thanks @rubyrunsstuff)
2026-01-10 01:14:40 +01:00
Peter Steinberger
08015fbce6
Merge pull request #544 from jeffersonwarrior/fix/cloud-code-assist-api-errors
...
Fix Cloud Code Assist API errors (429/400)
2026-01-10 00:13:46 +00:00
Peter Steinberger
a9bd01b523
refactor: unify contact list summaries
2026-01-10 01:13:38 +01:00
Peter Steinberger
7b8ac0d5ad
Merge pull request #623 from magimetal/feat/opencode-zen-provider
...
feat(onboard): add OpenCode Zen as model provider
2026-01-10 00:13:30 +00:00
Peter Steinberger
251ed83680
fix: harden Cloud Code Assist failover ( #544 ) (thanks @jeffersonwarrior)
2026-01-10 01:12:46 +01:00
Peter Steinberger
d75b302699
style: fix pi-embedded-runner formatting ( #623 ) (thanks @magimetal)
2026-01-10 01:12:22 +01:00
Ruby
b4fbf2fe0d
fix: enable block streaming for Telegram when streamMode is 'block'
...
- Fix disableBlockStreaming logic in telegram/bot.ts to properly enable
block streaming when telegram.streamMode is 'block' regardless of
blockStreamingDefault setting
- Set minChars default to 1 for Telegram block mode so chunks send
immediately on newlines/sentences instead of waiting for 800 chars
- Skip coalescing for Telegram block mode when not explicitly configured
to reduce chunk batching delays
- Fix newline preference to wait for actual newlines instead of breaking
on any whitespace when buffer is under maxChars
Fixes issue where all Telegram messages were batched into one message
at the end instead of streaming as separate messages during generation.
2026-01-10 01:11:41 +01:00
Jefferson Warrior
5843733978
Fix Cloud Code Assist API errors (429/400)
...
- Enhanced rate limit detection for Cloud Code Assist quota exhaustion
- Added tool call ID sanitization to fix invalid request format errors
- Integrated Cloud Code Assist format error detection into failover system
- Added comprehensive error pattern matching for Cloud Code Assist APIs
Fixes #cloud-code-assist-api-errors
2026-01-10 01:10:23 +01:00
Peter Steinberger
c69c4caa33
fix: polish opencode-zen onboarding ( #623 ) (thanks @magimetal)
2026-01-10 01:09:34 +01:00
Magi Metal
05bd100f7a
style: fix formatting
2026-01-10 01:09:34 +01:00
Magi Metal
a399fa36c8
feat(onboard): add OpenCode Zen as model provider
2026-01-10 01:09:34 +01:00
Peter Steinberger
9b1f164447
fix: guard small context windows
2026-01-10 01:08:56 +01:00
Peter Steinberger
3554004968
fix: QuickStart provider selection ( #485 )
2026-01-10 01:08:00 +01:00
Jefferson Warrior
74485f171b
CLI: fix Cloud Code Assist 400 API errors and missing session exports
...
- Add sanitizeToolCallId() to fix Cloud Code Assist tool call ID validation
- Apply sanitization in sanitizeSessionMessagesImages() for toolResult and assistant messages
- Add legacy CONFIG_PATH_CLAWDIS and STATE_DIR_CLAWDIS exports for backward compatibility
- Resolves Cloud Code Assist rejection of invalid tool call IDs with pipe characters
- Fixes missing session export functions that were blocking system startup
Addresses Cloud Code Assist API 400 errors from invalid tool call IDs like 'call_abc123|item_456'
2026-01-10 01:07:51 +01:00
Peter Steinberger
0cb28e26fc
Merge pull request #625 from mahmoudashraf93/fix/whatsapp-contact-cards-multi
...
fix: include numbers for WhatsApp contact arrays
2026-01-10 00:04:00 +00:00
Peter Steinberger
103dd3af64
fix: keep contact summary counts ( #625 ) (thanks @mahmoudashraf93)
2026-01-10 01:02:28 +01:00
Peter Steinberger
21eebb6d3b
fix: limit subagent bootstrap context
2026-01-10 00:01:16 +00:00
Mahmoud Ibrahim
d1e10af1e1
WhatsApp: show all contacts in shares
2026-01-10 01:00:00 +01:00
Mahmoud Ibrahim
18338bc60f
Style: format contact label helper
2026-01-10 01:00:00 +01:00
Mahmoud Ibrahim
77c7387bbd
Changelog: note multi-contact numbers
2026-01-10 01:00:00 +01:00
Mahmoud Ibrahim
fd7450e5b9
WhatsApp: include numbers in contact cards
2026-01-10 01:00:00 +01:00
Peter Steinberger
e311dc82e0
refactor: centralize reasoning tag handling
2026-01-10 00:53:48 +01:00
Peter Steinberger
097550c299
fix: centralize verbose overrides and tool stream gating
2026-01-10 00:52:24 +01:00
Peter Steinberger
9a8d3aed26
test: update status expectations for verbose/elevated labels
2026-01-09 23:43:24 +00:00
Peter Steinberger
e18080163f
fix: simplify verbose/elevated status labels
2026-01-09 23:41:57 +00:00
Peter Steinberger
eea686c81e
docs: update changelog
2026-01-09 23:41:57 +00:00
Peter Steinberger
bd10f3d3f1
feat: allow session_status in sandbox
2026-01-09 23:41:57 +00:00
Peter Steinberger
a25922a21f
fix: clarify sessions_send delivery semantics
2026-01-10 00:34:24 +01:00
Peter Steinberger
96e17d407a
fix: filter NO_REPLY prefixes
2026-01-09 23:29:05 +00:00
Peter Steinberger
a9a70ea278
fix: persist verbose off and gate tool stream
2026-01-10 00:22:28 +01:00
Peter Steinberger
695be8e92d
Merge pull request #624 from clawdbot/refactor/vcard-utils
...
refactor: extract vcard parsing helper
2026-01-09 23:16:31 +00:00
Peter Steinberger
c17d3a0738
docs: update changelog for vcard refactor ( #624 ) (thanks @steipete)
2026-01-10 00:16:00 +01:00
Peter Steinberger
b6b1b570f9
refactor: extract vcard parsing helper
2026-01-10 00:12:53 +01:00
Peter Steinberger
6016a63162
refactor(web): centralize active web listener resolution
2026-01-09 23:12:29 +00:00
Peter Steinberger
6f6acd94cc
Merge pull request #614 from zknicker/fix/block-stream-think-leak
...
fix: prevent <think> leakage in block streaming
2026-01-09 23:10:17 +00:00
Peter Steinberger
2396a66e82
Merge pull request #622 from mahmoudashraf93/fix/whatsapp-contact-cards
...
fix: handle WhatsApp contact cards inbound
2026-01-09 23:09:40 +00:00
Peter Steinberger
1277f6e27b
fix: prefer FN for WhatsApp contact cards ( #622 ) (thanks @mahmoudashraf93)
2026-01-10 00:08:30 +01:00
Mahmoud Ibrahim
c9c5a71d8b
Changelog: note WhatsApp contact cards
2026-01-10 00:07:04 +01:00
Mahmoud Ibrahim
30b3d6ce61
WhatsApp: handle contact cards inbound
2026-01-10 00:07:04 +01:00
Peter Steinberger
875c62689e
docs: remove unused root showcase
2026-01-10 00:02:39 +01:00
Peter Steinberger
51ec578cec
fix: suppress <think> leakage + split reasoning output ( #614 ) (thanks @zknicker)
2026-01-10 00:02:13 +01:00
Zach Knickerbocker
2d0ca67c21
fix: prevent <think> leakage in block streaming
2026-01-09 23:58:48 +01:00
Peter Steinberger
88cbe2d275
fix: cap pairing requests and suppress outbound pairing replies
2026-01-09 22:58:18 +00:00
Peter Steinberger
98d0318d4e
refactor: cron payload migration cleanup ( #621 )
...
* refactor: centralize cron payload migration
* test: stabilize block streaming mocks
* test: adjust chunker fence-close case
2026-01-09 22:56:55 +00:00
Peter Steinberger
e3c340fd38
docs: add fresh showcase projects
2026-01-09 23:56:44 +01:00
Peter Steinberger
89dc6ebb8b
feat(signal): add reaction notifications
2026-01-09 23:53:36 +01:00
Peter Steinberger
90d6a55e05
Merge pull request #615 from YuriNachos/fix/smoke-test-exit-code
...
fix(build): remove non-functional smoke test from package-mac-app.sh
2026-01-09 22:42:08 +00:00
Peter Steinberger
a18743eabc
fix(web): improve WhatsApp Web listener errors ( #612 , thanks @YuriNachos)
2026-01-09 22:40:58 +00:00
Yurii Chukhlib
a9f8719cd2
fix(web): remove provider name from gateway listener error messages
...
Error messages in sendMessageWhatsApp, sendReactionWhatsApp, and
sendPollWhatsApp included hardcoded \"WhatsApp\" references. This caused
confusion when cron jobs using other providers (e.g., Telegram) failed
with errors mentioning WhatsApp.
Changes error messages to be provider-agnostic while maintaining the
same error handling behavior.
Fixes #461
Fixes #470
Co-Authored-By: Claude <noreply@anthropic.com >
2026-01-09 22:40:58 +00:00
Peter Steinberger
0730e15c6c
fix: verify bundled relay with version check ( #615 ) (thanks @YuriNachos)
2026-01-09 23:40:52 +01:00
Peter Steinberger
f4b9a00d37
Merge pull request #616 from neist/feat/signal-reactions
...
feat(signal): add reaction message support
2026-01-09 22:40:37 +00:00
Peter Steinberger
5bc3d15bba
fix: handle signal reactions safely ( #616 ) (thanks @neist)
2026-01-09 23:39:18 +01:00
Yurii Chukhlib
9c05675d66
fix(build): remove non-functional smoke test from package-mac-app.sh
...
The --smoke qr argument was removed from the relay CLI, but the smoke
test remained in the macOS app packaging script. This caused the build
to fail with exit code 1 when the bundled relay didn't recognize the
argument.
Removes the 2-line smoke test section to fix the build.
Fixes #317
Co-Authored-By: Claude <noreply@anthropic.com >
2026-01-09 23:37:57 +01:00
Kasper Neist
94e7a98bf2
feat(signal): add reaction message support
...
- Add SignalReactionMessage type with emoji, targetAuthor, timestamp
- Handle reaction messages in monitor (log and skip for now)
- Prevents reactions from showing as unknown media
2026-01-09 23:37:33 +01:00
Peter Steinberger
65cc92c06a
chore: bump pi libs and oxlint-tsgolint
2026-01-09 22:23:58 +00:00
Peter Steinberger
870c9f0b99
refactor: stop pinning hardcoded main session in chat UI
2026-01-09 23:20:58 +01:00
Peter Steinberger
3b91148a0a
fix: handle fence-close paragraph breaks
2026-01-09 22:20:22 +00:00
Peter Steinberger
22b3bd4415
fix: migrate cron payload channel alias
2026-01-09 22:20:22 +00:00
Peter Steinberger
bdee50da6b
fix(test): reduce gateway port collisions
2026-01-09 22:18:57 +00:00
Peter Steinberger
50461c23c0
fix(protocol): sync generated Swift models
2026-01-09 22:12:28 +00:00
Peter Steinberger
8a9c38e66e
docs: embed YouTube video on showcase
2026-01-09 23:10:22 +01:00
Peter Steinberger
8624feb36a
docs: clarify npm vs git install switching
2026-01-09 23:10:15 +01:00
Peter Steinberger
15757d01bc
fix(protocol): regen Swift GatewayModels
2026-01-09 22:10:01 +00:00
Peter Steinberger
2af3853bfa
fix(protocol): keep agent provider string
2026-01-09 23:09:10 +01:00
Peter Steinberger
3f1415b8fe
ci: run pnpm test on macOS (PRs)
2026-01-09 22:06:36 +00:00
Peter Steinberger
79f5ccc99d
fix(gateway): harden agent provider routing
2026-01-09 23:00:36 +01:00
Peter Steinberger
3adec35632
fix: make forced block chunking fence-safe
2026-01-09 21:52:47 +00:00
Peter Steinberger
dc3a0bfd1e
chore: set version to 2026.1.9
2026-01-09 22:42:25 +01:00
Peter Steinberger
79af03ba5e
fix(auto-reply): tighten block streaming defaults
2026-01-09 22:41:10 +01:00
Peter Steinberger
f8bf041396
test(gateway): cover internal provider defaults
2026-01-09 22:40:37 +01:00
Peter Steinberger
92cc7a841c
refactor: centralize main session key normalization in apps
2026-01-09 22:38:17 +01:00
Peter Steinberger
40b4341a1d
test: fix Windows path in LID mapping test
2026-01-09 21:34:35 +00:00
Peter Steinberger
35083fcb37
fix(gateway): avoid whatsapp fallback for internal runs
2026-01-09 22:33:05 +01:00
Peter Steinberger
53f51786f2
fix: default block streaming coalesce idle to 1s
2026-01-09 22:31:19 +01:00
Peter Steinberger
6c7a27c010
refactor: normalize main session key handling
2026-01-09 22:30:15 +01:00
Peter Steinberger
83270f98f7
chore: set version to 2026.1.8
2026-01-09 22:22:32 +01:00
Peter Steinberger
304ec1abe5
fix(agents): sessions_spawn inherits provider ( #528 )
2026-01-09 22:21:33 +01:00
Peter Steinberger
55e830b009
fix: harden onboarding for non-systemd environments
2026-01-09 22:17:09 +01:00
Peter Steinberger
402c35b91c
refactor(agents): centralize failover normalization
2026-01-09 22:15:06 +01:00
Peter Steinberger
6220106ab2
refactor: centralize main session key resolution
2026-01-09 22:13:20 +01:00
Peter Steinberger
c37b77855b
Merge pull request #464 from austinm911/fix/slack-thread-replies
...
feat(slack): implement configurable reply threading
2026-01-09 21:10:39 +00:00
Peter Steinberger
84046cbad8
fix(slack): mrkdwn + thread edge cases ( #464 ) (thanks @austinm911)
2026-01-09 22:09:02 +01:00
Peter Steinberger
c27b1441f7
fix(auth): billing backoff + cooldown UX
2026-01-09 22:00:14 +01:00
Austin Mudd
8890fbcf38
Slack: fix message tool not passing threading context to handleSlackAction
2026-01-09 21:59:51 +01:00
Austin Mudd
8ae0429162
Slack: add mrkdwn formatter for proper bold/italic/strikethrough rendering
2026-01-09 21:59:51 +01:00
Austin Mudd
909c14d443
fix: resolve merge conflicts and fix threading tests
...
- Update MessageToolOptions type to include Slack threading options
- Remove duplicate threadTs property in slack/actions.ts
- Fix replyThreadTs parameter name in monitor.ts
- Update test to correctly verify 'first' mode threading behavior:
- 'off' mode: no threading unless already in a thread
- 'first' mode: first reply starts a thread
- Add new test case for 'first' mode threading
2026-01-09 21:59:51 +01:00
Austin Mudd
b4663ed11c
Slack: implement replyToMode threading for tool path
...
- Add shared hasRepliedRef state between auto-reply and tool paths
- Extract buildSlackThreadingContext helper in agent-runner.ts
- Extract resolveThreadTsFromContext helper in slack-actions.ts
- Update docs with clear replyToMode table (off/first/all)
- Add tests for first mode behavior across multiple messages
2026-01-09 21:59:51 +01:00
Austin Mudd
29e6f13b29
Test: add threadTs passthrough test for Slack sendMessage
2026-01-09 21:59:27 +01:00
Austin Mudd
1be8d06cca
Slack: expose threadTs in agent sendMessage tool for thread replies
2026-01-09 21:59:27 +01:00
Peter Steinberger
42a0089b3b
fix: require explicit system event session keys
2026-01-09 21:59:01 +01:00
Peter Steinberger
cb2a365594
Merge pull request #607 from wes-davis/fix/launch-at-login-persistence
...
fix Mac app Launch at Login
2026-01-09 20:55:26 +00:00
Peter Steinberger
1985790f7f
fix: avoid clearing Launch at Login on startup ( #607 ) (thanks @wes-davis)
2026-01-09 21:54:26 +01:00
Wes
6f5503688d
fix(macos): prevent launch-at-login plist deletion on startup
2026-01-09 21:53:32 +01:00
Peter Steinberger
a5065b354e
fix(whatsapp): resolve lid mappings for inbound
2026-01-09 21:46:18 +01:00
Peter Steinberger
5fa26bfec7
feat: add per-agent elevated controls
2026-01-09 20:42:19 +00:00
Peter Steinberger
1a97aadb6b
fix: broadcast group history consistency ( #547 )
2026-01-09 21:39:58 +01:00
Peter Steinberger
7641b142ad
refactor: harden broadcast groups
2026-01-09 21:39:58 +01:00
Peter Steinberger
374aa856f2
refactor(agents): centralize failover handling
2026-01-09 21:31:18 +01:00
Peter Steinberger
cfeaa34c16
refactor: centralize cli timeout parsing
2026-01-09 21:29:52 +01:00
Peter Steinberger
1689ef0b97
docs: update changelog
2026-01-09 21:27:51 +01:00
Peter Steinberger
2bb9716598
fix: write clawdbot config atomically
2026-01-09 21:27:51 +01:00
Peter Steinberger
564caf49bb
feat: add config --section
2026-01-09 21:27:51 +01:00
Peter Steinberger
24605379b9
refactor: centralize skills prompt resolution
2026-01-09 21:27:20 +01:00
Shadow
cf8d7139e1
Docs: credit Docker cache PR
2026-01-09 14:24:45 -06:00
Zach Knickerbocker
c6fc7c2ea6
Docker: cache deps layer for faster rebuilds ( #605 )
2026-01-09 14:23:06 -06:00
Peter Steinberger
e8dbb350ae
fix: honor config timeout in tui
2026-01-09 21:22:50 +01:00
Peter Steinberger
4861f09f78
fix: inject skills prompt list
2026-01-09 21:20:51 +01:00
Peter Steinberger
0297b38ce0
fix(discord): remove unused import
2026-01-09 21:18:26 +01:00
Peter Steinberger
65cb9dc3f7
fix(agents): fail over on billing/credits errors
2026-01-09 21:17:07 +01:00
Peter Steinberger
e0089bb4eb
Merge pull request #547 from pasogott/feature/broadcast-groups
...
feat: add broadcast groups for multi-agent responses
2026-01-09 20:15:42 +00:00
Peter Steinberger
76964162c7
fix: land broadcast groups ( #547 ) (thanks @pasogott)
2026-01-09 21:14:19 +01:00
Shadow
2396df0d97
Docs: add PR 608 changelog entry
2026-01-09 14:12:38 -06:00
Nicholas Spisak
d1b0a3584f
fix(discord): add zombie connection detection with HELLO timeout
...
Add 30-second timeout after WebSocket opens to detect when Discord
never sends HELLO (zombie state). If isConnected stays false after
timeout, forces a fresh connection instead of hanging indefinitely.
Relates to #595
2026-01-09 14:12:38 -06:00
Nicholas Spisak
90be8c632a
fix(discord): log gateway debug events for disconnect visibility
...
Add listener for Carbon GatewayPlugin 'debug' events to capture WebSocket
connection state changes. Critical events (close, reconnect, resume) are
logged at INFO level always; all debug messages logged in verbose mode.
Fixes #595
2026-01-09 14:12:38 -06:00
Peter Steinberger
4121f9e6dc
feat(agents): add session_status tool
2026-01-09 21:09:42 +01:00
Peter Steinberger
d309d4fe8b
fix(discord): log gateway reconnects
2026-01-09 21:06:19 +01:00
Peter Steinberger
e73b812236
fix: dedupe telegram updates
2026-01-09 21:06:06 +01:00
sheeek
09769d127f
feat: add broadcast groups for multi-agent responses
...
Enables multiple agents to process the same message simultaneously,
allowing teams of specialized agents with atomic tasks to work together
in the same group using one phone number.
Key features:
- Configure multiple agents per WhatsApp group/DM via routing.broadcast
- Parallel (default) or sequential processing strategies
- Full session isolation (separate history, workspace, tools per agent)
- Minimal code changes (~50 lines in auto-reply.ts)
- Backward compatible with existing routing
Use cases:
- Specialized agent teams (code reviewer + security scanner + docs)
- Multi-language support (EN + DE + ES agents)
- Quality assurance workflows (support + QA agents)
- Task automation (tracker + logger + reporter)
Example config:
{
"routing": {
"broadcast": {
"strategy": "parallel",
"120363403215116621@g.us ": ["alfred", "baerbel", "assistant3"]
}
}
}
This enables scaling to hundreds of focused micro-agents on a single
phone number, each handling specific atomic tasks.
2026-01-09 21:05:58 +01:00
Shadow
2469384643
update carbon
2026-01-09 13:52:59 -06:00
Peter Steinberger
81e7e25b3a
style(macos): swiftformat cleanup
2026-01-09 19:49:12 +00:00
Peter Steinberger
f97fbbf2b8
chore(swift): narrow formatter/lint scope
2026-01-09 19:49:12 +00:00
Peter Steinberger
6d378ee608
feat(telegram): inline keyboard buttons ( #491 )
...
Co-authored-by: Azade <azade@hey.com >
2026-01-09 20:47:03 +01:00
Peter Steinberger
46f0a08878
chore: update clawtributors
2026-01-09 20:46:33 +01:00
Peter Steinberger
fb989cd0f8
Merge pull request #600 from samratjha96/fix/discord-duplicate-messages
...
fix(queue): deduplicate followup queue entries
2026-01-09 19:45:10 +00:00
Peter Steinberger
d3a0114b6b
fix: dedupe followup queue by message id ( #600 ) (thanks @samratjha96)
2026-01-09 20:44:11 +01:00
Peter Steinberger
e4cd03033a
Merge pull request #537 from Nachx639/fix/discord-web-provider-activity
...
fix: Discord eventQueue + WhatsApp provider activity accounting
2026-01-09 19:43:27 +00:00
Peter Steinberger
a65455e25d
fix: align WhatsApp activity account id ( #537 ) (thanks @Nachx639)
2026-01-09 20:42:35 +01:00
Samrat Jha
9185fdc896
fix(queue): deduplicate followup queue entries to prevent duplicate responses
...
## Problem
When messages arrived while the agent was busy processing a previous message,
the same message could be enqueued multiple times into the followup queue.
This happened because Discord's event system can emit the same message multiple
times (e.g., during reconnects or due to slow listener processing), and the
followup queue had no deduplication logic.
This caused the bot to respond to the same user message 2-4+ times.
## Solution
Add simple exact-match deduplication in `enqueueFollowupRun()`: if a prompt
is already in the queue, skip adding it again. Extracted into a small
`isPromptAlreadyQueued()` helper for clarity.
## Testing
- Added test cases for deduplication (same prompt rejected, different accepted)
- Manually verified on Discord: single response per message even when multiple
events fire during slow agent processing
2026-01-09 20:40:18 +01:00
Tu Nombre Real
a05c4fca5c
fix(web): pass accountId in WhatsApp provider activity tracking
...
Recent changes added recordProviderActivity calls with accountId, but
the type definition and usage didn't include accountId in ActiveWebSendOptions.
This fix adds the optional accountId field and uses optional chaining
when accessing it to handle cases where options is undefined.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-09 20:40:03 +01:00
Peter Steinberger
85fab7afe3
chore: add pnpm app workflow scripts
2026-01-09 19:38:48 +00:00
Peter Steinberger
2977b296e6
feat(messages): add whatsapp messagePrefix and responsePrefix auto
2026-01-09 19:29:04 +00:00
Peter Steinberger
0a4cb0d264
Merge pull request #604 from clawdbot/fix/model-fallback-error-message
...
Fix model fallback error message handling
2026-01-09 19:24:22 +00:00
Peter Steinberger
9ecef09c69
docs: update changelog for model fallback lint fix ( #604 ) (thanks @steipete)
2026-01-09 20:24:08 +01:00
Peter Steinberger
6481806751
fix: avoid base-to-string in model fallback
2026-01-09 20:23:00 +01:00
Shadow
60bd21d77b
chore: update carbon
2026-01-09 13:22:32 -06:00
Peter Steinberger
7e00fc4ebc
Merge pull request #603 from clawdbot/refactor/ui-chat-split-475
...
refactor(ui): split chat renderers and styles
2026-01-09 19:21:56 +00:00
Peter Steinberger
1acbd6aea0
refactor(ui): split chat renderers and styles
2026-01-09 20:20:06 +01:00
Peter Steinberger
71a08eed84
Merge pull request #599 from mcinteerj/fix/gemini-tool-schemas
...
fix: simplify tool schemas for Gemini compatibility
2026-01-09 19:19:01 +00:00
Peter Steinberger
72b0777341
fix(messages): restore explicit responsePrefix default
2026-01-09 19:18:34 +00:00
Peter Steinberger
0edacd0469
fix: simplify session tool schemas for Gemini compatibility ( #599 ) (thanks @mcinteerj)
2026-01-09 20:17:46 +01:00
Peter Steinberger
237480ed9b
Merge pull request #602 from clawdbot/refactor/model-override-warnings
...
refactor: centralize model override validation
2026-01-09 19:15:51 +00:00
Peter Steinberger
837cec64af
refactor: centralize test path containment checks
2026-01-09 19:15:44 +00:00
Keith the Silly Goose
423eef4624
fix: simplify tool schemas for Gemini compatibility
...
Replaces Type.Integer with Type.Number and simplifies the sessions_send tool schema to avoid anyOf/oneOf unions that cause 400 errors with Google Cloud Code Assist API.
2026-01-09 20:15:26 +01:00
Peter Steinberger
133e30c594
refactor: centralize model override validation ( #602 ) (thanks @steipete)
2026-01-09 20:15:26 +01:00
Peter Steinberger
7e81980747
refactor: centralize model override validation
2026-01-09 20:14:42 +01:00
Shadow
f0a909f6dd
Changelog: add PR 601
2026-01-09 13:06:41 -06:00
Peter Steinberger
840ccbccf6
docs: add messages concept overview
2026-01-09 19:06:14 +00:00
Peter Steinberger
ade06cb9fb
Merge pull request #472 from koala73/main
...
feat: add hooks.gmail.model for cheaper Gmail PubSub processing
2026-01-09 19:00:53 +00:00
Martin Púčik
d23bba9d24
docs: split CLI install commands into separate code blocks ( #601 )
2026-01-09 13:00:50 -06:00
Peter Steinberger
5755d85ad1
fix: harden Gmail hook model defaults ( #472 ) (thanks @koala73)
2026-01-09 19:59:45 +01:00
Magi Metal
50a5b4ddcc
Discord: fix DM recipient parsing for bare numeric user IDs ( #596 )
...
Co-authored-by: Shadow <shadow@clawd.bot >
2026-01-09 12:58:25 -06:00
Shadow
04512ee67c
Docs: pin Carbon dependency
2026-01-09 12:57:58 -06:00
Peter Steinberger
47a8b410ee
Merge pull request #475 from rahthakor/feature/ui-enhancements
...
feat(ui): refactor chat layout with sidebar, message grouping, and nav improvements
2026-01-09 18:54:44 +00:00
Peter Steinberger
067c20608c
fix(ui): landing cleanup ( #475 ) (thanks @rahthakor)
2026-01-09 19:53:32 +01:00
Peter Steinberger
6ec4c4bf8f
Merge pull request #505 from koala73/feat/whatsapp-media-max-size
...
feat(whatsapp): add configurable media max size
2026-01-09 18:53:04 +00:00
Peter Steinberger
87f432880a
fix: honor whatsapp mediaMaxMb ( #505 ) (thanks @koala73)
2026-01-09 19:51:35 +01:00
rahthakor
9624d70187
test(ui): add tests for chat modules and update for icon refactor
...
- Add 21 tests for message-normalizer.ts (normalizeMessage, normalizeRoleForGrouping, isToolResultMessage)
- Add 17 tests for tool-helpers.ts (formatToolOutputForSidebar, getTruncatedPreview)
- Update navigation.test.ts to test iconClassForTab instead of deprecated iconForTab
- Skip focus-mode.browser.test.ts (toggle button moved to settings)
- Skip chat-markdown.browser.test.ts (tool card rendering refactored to sidebar)
- Skip bash-tools.test.ts line offset tests (shell env pollution issue)
2026-01-09 19:47:19 +01:00
Elie Habib
3026367c1b
feat(whatsapp): add configurable media max size
...
- Add whatsapp.mediaMaxMb config option (default: 50MB)
- Increases default from previous 5MB hardcoded limit
- Allows receiving larger documents/media files
- Per-account override via whatsapp.accounts.*.mediaMaxMb
Fixes #<issue-number> (if applicable)
2026-01-09 19:40:21 +01:00
Elie Habib
da2323f80e
docs: add gateway restart guide
2026-01-09 19:39:42 +01:00
Elie Habib
f85807a2a6
fix: add serveBaseUrl to compactEmbeddedPiSession params
2026-01-09 19:39:42 +01:00
Elie Habib
1a47aec6e4
feat(gateway): add serve feature for sharing files via public URLs
2026-01-09 19:39:42 +01:00
Peter Steinberger
fd15704c77
fix(auto-reply): coalesce block replies and document streaming toggles ( #536 ) (thanks @mcinteerj)
2026-01-09 18:19:55 +00:00
Jake
a05916bee8
Config: add support for per-provider blockStreaming override
2026-01-09 18:11:27 +00:00
Peter Steinberger
91a6f721a3
docs: changelog for iMessage thread isolation ( #535 ) (thanks @mdahmann)
2026-01-09 18:43:32 +01:00
Peter Steinberger
3eef200145
Merge pull request #535 from mdahmann/fix/imessage-groupish-threads
...
imessage: isolate group-ish threads by chat_id
2026-01-09 17:42:42 +00:00
Peter Steinberger
d6d84ce349
test: harden logout path check on windows
2026-01-09 18:39:38 +01:00
Peter Steinberger
42ead1499f
refactor: centralize minimax onboarding + keys
2026-01-09 18:37:06 +01:00
Peter Steinberger
d0a20cadaf
Merge branch 'main' into fix/imessage-groupish-threads
2026-01-09 17:36:15 +00:00
Peter Steinberger
dac3b675cc
fix: stabilize CI path assumptions
2026-01-09 18:35:52 +01:00
Peter Steinberger
6aac3184c3
test: normalize windows path assertions
2026-01-09 18:32:45 +01:00
Peter Steinberger
a06b6c807e
Merge pull request #592 from clawdbot/docs/hetzner-followups
2026-01-09 17:31:27 +00:00
Peter Steinberger
e6a7429ac7
refactor: add helper for empty assistant content
2026-01-09 18:29:27 +01:00
Peter Steinberger
e251ac4f74
Merge pull request #591 from clawdbot/followup/empty-error-filter
...
refactor: drop empty error messages from session history
2026-01-09 17:24:51 +00:00
Peter Steinberger
65a11095c0
docs: add changelog entry for #591
2026-01-09 18:23:26 +01:00
Peter Steinberger
79b3abd797
refactor: drop empty error messages in history
2026-01-09 18:23:26 +01:00
Peter Steinberger
805969b598
Merge branch 'main' into fix/imessage-groupish-threads
2026-01-09 17:16:44 +00:00
Miles
27952bb94d
imessage: isolate group-ish threads by chat_id
2026-01-09 00:01:01 -06:00