Peter Steinberger
01aa7eba21
chore: ignore local identity files ( #1001 ) (thanks @gerardward2007)
2026-01-16 09:58:21 +00:00
gerardward2007
9479fded34
chore: ignore local identity files (IDENTITY.md, USER.md)
...
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-16 09:54:42 +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
37389005fc
docs: note hetzner cross-links in changelog ( #592 )
2026-01-09 18:21:53 +01:00
Peter Steinberger
6904a79d1d
docs: link Hetzner guide from install/platforms
2026-01-09 18:21:28 +01:00
Peter Steinberger
62bf779c14
Merge pull request #556 from Iamadig/docs/hetzner-guide
...
Docs/hetzner guide
2026-01-09 17:18:18 +00:00
Peter Steinberger
5c13dcdb7b
Merge pull request #590 from mneves75/feat/minimax-anthropic-api
...
feat: Add MiniMax Anthropic-compatible API support (minimax-api)
2026-01-09 17:18:09 +00:00
Peter Steinberger
706cbe89ec
fix: align Hetzner docker guide with gateway runtime ( #556 ) (thanks @Iamadig)
2026-01-09 18:17:19 +01:00
Peter Steinberger
a6a469435a
fix: finalize minimax-api onboarding ( #590 ) (thanks @mneves75)
2026-01-09 18:17:13 +01:00
Peter Steinberger
834e2b82f3
docs: comment doctor switch e2e
2026-01-09 18:16:59 +01:00
Peter Steinberger
805969b598
Merge branch 'main' into fix/imessage-groupish-threads
2026-01-09 17:16:44 +00:00
Peter Steinberger
18bc9db6b3
Merge pull request #561 from mukhtharcm/fix/filter-empty-error-messages
...
fix: filter empty error messages to prevent session corruption
2026-01-09 17:15:15 +00:00
AG
258184232d
docs: add Hetzner deployment guide
2026-01-09 18:15:02 +01:00
Peter Steinberger
6156402c1a
fix: scope 429 fast-fail to antigravity ( #561 ) (thanks @mukhtharcm)
2026-01-09 18:13:47 +01:00
mneves75
9279795c47
feat: Add MiniMax Anthropic-compatible API support (minimax-api)
...
Add --auth-choice minimax-api for direct MiniMax API usage at
https://api.minimax.io/anthropic using the anthropic-messages API.
Changes:
- Add applyMinimaxApiConfig() function with provider/model config
- Add minimax-api to AuthChoice type and CLI options
- Add handler and non-interactive support
- Fix duplicate minimax entry in envMap
- Update live test to use anthropic-messages API
- Add 11 unit tests covering all edge cases
- Document configuration in gateway docs
Test results:
- 11/11 unit tests pass
- 1/1 live API test passes (verified with real API key)
Co-Authored-By: Claude <noreply@anthropic.com >
2026-01-09 18:13:18 +01:00
Muhammed Mukhthar CM
d0450bb425
fix(antigravity): add fail-fast on 429 rate limit
...
When Antigravity returns 429, throw immediately instead of waiting for the
server-provided retry delay (which can be 10+ minutes). This lets clawdbot
quickly rotate to another account.
This patch was previously in PR #454 but was accidentally removed in 0dbb569
when bumping to pi-ai 0.40.0. The upstream release did NOT include this fix.
Context: Antigravity rate limits cause pi-ai to sleep for the full retry
delay inside the request, blocking the thread. Clawdbot's timeout would
eventually fire, but waiting 10+ minutes is unacceptable UX.
Bundled with the empty error message filter since both handle 429 recovery.
2026-01-09 18:10:23 +01:00
Muhammed Mukhthar CM
1cfe409a09
fix: filter empty error messages to prevent session corruption
...
When 429/500 errors occur during tool execution, empty assistant messages
with stopReason='error' and content=[] get persisted to the session file.
These break the tool_use -> tool_result chain that Claude/Gemini require:
- Claude expects every tool_use block to have a matching tool_result
- Empty error messages inserted mid-sequence violate this invariant
- Results in: 'tool_use ids were found without tool_result blocks'
This patch filters out empty error messages when building session context,
allowing sessions to recover gracefully from transient API errors.
Evidence from production:
- 113 of 170 sessions had empty error messages
- Session 30764430 demonstrated recovery: 429 at 14:30:11 IST,
resumed successfully at 14:30:22, completed at 14:30:34
Sorry Peter, one more patch! 🙈
2026-01-09 18:10:23 +01:00
NickSpisak_
cfcff68e91
feat(discord): add channel/category management actions ( #487 )
...
Co-authored-by: Shadow <shadow@clawd.bot >
2026-01-09 11:05:58 -06:00
Shadow
d588bb00d4
fix: update carbon version for gateway fixes
2026-01-09 10:56:13 -06:00
Peter Steinberger
e74656fa71
Merge pull request #589 from clawdbot/chore/commands-registry-guards
...
fix: harden slash command registry
2026-01-09 16:56:01 +00:00
Peter Steinberger
d64ed620d5
Merge pull request #588 from clawdbot/refactor/discord-thread-context
...
refactor: consolidate discord thread context handling
2026-01-09 16:54:14 +00:00
Peter Steinberger
377885bd36
style: format doctor gateway services
2026-01-09 17:53:57 +01:00
Peter Steinberger
cf1e0d743c
fix: harden slash command registry
2026-01-09 17:53:24 +01:00
Peter Steinberger
b23ce86c81
docs: update changelog for #588
2026-01-09 17:52:47 +01:00
Peter Steinberger
cae8e8d6e8
refactor: consolidate discord thread context handling
2026-01-09 17:52:47 +01:00
Peter Steinberger
24af8adcf9
Merge pull request #587 from clawdbot/refactor/hook-agent-normalize
...
Hooks: normalize agent provider handling
2026-01-09 16:52:32 +00:00
Peter Steinberger
c3083f0186
feat: add setup-token + token auth
2026-01-09 17:50:34 +01:00
Peter Steinberger
083877d286
fix: audit doctor service entrypoint
2026-01-09 17:50:28 +01:00
Peter Steinberger
044ea90dde
fix: repair doctor service install switches
2026-01-09 17:50:28 +01:00
Peter Steinberger
9c9f89e9be
Merge pull request #497 from lc0rp-contrib/commands-list-clean
...
feat(commands): add /commands to list available commands
2026-01-09 16:46:32 +00:00
Luke
401f2a77e3
Merge branch 'main' into commands-list-clean
2026-01-09 11:46:08 -05:00
Peter Steinberger
b1ddf1f048
refactor: share hook provider types
2026-01-09 17:45:42 +01:00
Peter Steinberger
51725a71a3
refactor: normalize hook agent providers
2026-01-09 17:40:36 +01:00
Peter Steinberger
f146c9ef16
Merge pull request #585 from clawdbot/shadow/forum
...
Discord: fix forum thread starters
2026-01-09 16:35:33 +00:00
Peter Steinberger
abfd5719d6
fix: cache discord channel lookups for thread starters ( #585 ) (thanks @thewilloftheshadow)
2026-01-09 17:35:16 +01:00
Peter Steinberger
3a0cc3c927
Merge pull request #533 from mcinteerj/hooks-deliver-true-by-default
...
Hooks: default agent delivery to true
2026-01-09 16:35:09 +00:00
Peter Steinberger
40fcfc9479
test: cover hook deliver default ( #533 ) (thanks @mcinteerj)
2026-01-09 17:34:22 +01:00
Jake
cac467a2df
Hooks: default agent delivery to true
2026-01-09 17:32:42 +01:00
Shadow
6ef9fc64d7
Discord: fix forum thread starters
2026-01-09 17:32:14 +01:00
Peter Steinberger
ee70a1d1fb
fix(status): use claude-cli token for usage
2026-01-09 16:24:55 +00:00
Peter Steinberger
1478473537
refactor(commands): canonicalize text command aliases
2026-01-09 17:22:46 +01:00
Peter Steinberger
c82ebd3ef3
docs(commands): document /usage slash command
2026-01-09 17:18:01 +01:00
Peter Steinberger
1838582546
refactor(auto-reply): centralize chat command aliases
2026-01-09 17:16:52 +01:00
Peter Steinberger
d372fac9c6
refactor: streamline reply tag parsing
2026-01-09 17:14:40 +01:00
Peter Steinberger
cef13aa705
Merge pull request #586 from clawdbot/temp/landpr-492
...
fix(commands): wire /usage alias to /status
2026-01-09 16:14:11 +00:00
Peter Steinberger
f4ec53dcb9
refactor(sessions): dedupe sessions.resolve
2026-01-09 17:13:38 +01:00
Peter Steinberger
68ad27e31c
fix(commands): wire /usage to status ( #492 ) (thanks @lc0rp)
2026-01-09 17:10:53 +01:00
Peter Steinberger
613d866296
chore(docker): pass claude web session env
2026-01-09 16:07:40 +00:00
Luke
4658f937cc
Merge branch 'main' into commands-list-clean
2026-01-09 11:06:06 -05:00
Peter Steinberger
67af3c3291
Merge pull request #560 from mcinteerj/fix/reply-tags-whitespace
...
Auto-Reply: relax regex for reply tags to allow whitespace
2026-01-09 16:05:17 +00:00
Luke
98b875cd0f
Merge branch 'main' into commands-list-clean
2026-01-09 11:04:23 -05:00
Peter Steinberger
7d9300e0f5
fix: allow whitespace in reply tags ( #560 ) (thanks @mcinteerj)
2026-01-09 17:03:44 +01:00
Peter Steinberger
c892fd174e
refactor(sessions): add sessions.resolve + label helper ( #570 )
2026-01-09 17:02:57 +01:00
LK
08caf7b9fc
feat(commands): add /usage alias for /status
2026-01-09 17:02:29 +01:00
Jake
4381b03412
Auto-Reply: relax regex for reply tags to allow whitespace
2026-01-09 17:01:58 +01:00
Peter Steinberger
d099dabf37
refactor: centralize slack threading helpers
2026-01-09 16:01:53 +00:00
Peter Steinberger
d0b06b4334
fix: avoid object stringification in session labels
2026-01-09 16:57:50 +01:00
Peter Steinberger
be48233bc4
chore: format
2026-01-09 16:55:51 +01:00
Peter Steinberger
fd9e2d3def
feat: remove provider config in configure
2026-01-09 16:55:47 +01:00
Peter Steinberger
c643ce2a7a
feat: add /debug runtime overrides
2026-01-09 16:55:16 +01:00
Peter Steinberger
36bdec0f2c
refactor(messages): centralize per-agent prefixes
2026-01-09 16:54:54 +01:00
Peter Steinberger
8341b662af
refactor(test): temp home env + normalize status
2026-01-09 16:50:09 +01:00
Peter Steinberger
e8d75a39bc
ci: drop output sanitize wrapper
2026-01-09 16:49:12 +01:00
Peter Steinberger
02b945cc95
refactor(ui): split mobile layout css
2026-01-09 16:49:02 +01:00
Peter Steinberger
c8b15af979
refactor(test): centralize temp home + polling
2026-01-09 16:49:02 +01:00
Peter Steinberger
eb73b4e58e
chore: make pnpm test non-watch
2026-01-09 16:49:02 +01:00
Peter Steinberger
7d518e336e
feat(sessions): label lookup tightening ( #570 ) (thanks @azade-c)
2026-01-09 16:42:09 +01:00
Peter Steinberger
09b602b4ec
style: format trigger test
2026-01-09 16:41:05 +01:00
Peter Steinberger
4ffbd9802a
refactor(test): consolidate temp home + vitest setup
2026-01-09 16:41:05 +01:00
Peter Steinberger
1eecce9a15
Merge pull request #578 from p6l-richard/feature/identity-based-message-prefix
...
fix(messages): derive messagePrefix from identity.name
2026-01-09 15:40:52 +00:00
Peter Steinberger
66bbb723c5
fix: derive prefixes from routed identity ( #578 ) (thanks @p6l-richard)
2026-01-09 16:39:32 +01:00
Peter Steinberger
8de1c449ee
Merge pull request #558 from carlulsoe/mobile-ui-improvements
...
feat(ui): improve mobile responsiveness [AI-assisted]
2026-01-09 15:39:19 +00:00
Peter Steinberger
facf5c09a0
fix: honor slack reply threading ( #574 , thanks @bolismauro)
2026-01-09 15:38:43 +00:00
Peter Steinberger
b3e0fafe50
fix: stabilize windows CI ( #558 ) (thanks @carlulsoe)
2026-01-09 16:37:58 +01:00
Mauro Bolis
96149d1f71
fix: honor slack reply threading
2026-01-09 15:35:54 +00:00
Peter Steinberger
014a4d51a6
feat(status): add claude.ai usage fallback
2026-01-09 15:34:58 +00:00
Peter Steinberger
922ca2ee1c
fix(status): surface provider usage errors
2026-01-09 15:34:58 +00:00
Kit
480aa406bb
feat(ui): improve mobile responsiveness
...
- Add @media (max-width: 600px) breakpoint for mobile-specific styles
- Compact header: smaller title, hidden subtitle, minimal status pill
- Horizontal scrollable nav: all items in one row, swipeable
- Hide redundant page titles on mobile
- Hide docs button on mobile (saves space)
- Smaller theme toggle icons
- Tighter spacing on cards, stats, forms
- Better chat layout: full-width session selector, compact compose
- Single-column log entries on small screens
Desktop layout remains unchanged.
Co-authored-by: Carl Ulsoe <34673973+carlulsoe@users.noreply.github.com >
2026-01-09 16:32:55 +01:00
Richard Poelderl
43848b7b43
feat(messages): also derive responsePrefix from identity.name
...
When identity.name is configured and responsePrefix is not explicitly set,
automatically default responsePrefix to [identity.name].
This means users only need to set their identity once:
{ identity: { name: "MyBot" } }
And outbound messages will automatically be prefixed with [MyBot].
2026-01-09 16:31:20 +01:00
Richard Poelderl
8112b276c0
feat(messages): derive messagePrefix from identity.name
...
When identity.name is configured, use it for the default messagePrefix
instead of hardcoded '[clawdbot]'. Falls back to 'clawdbot' if not set.
This allows users to customize how their bot identifies itself in messages
by setting identity.name in their config or IDENTITY.md.
2026-01-09 16:31:01 +01:00
Peter Steinberger
f436808735
refactor: consolidate schema scrub + test harness
2026-01-09 16:27:28 +01:00
Peter Steinberger
7957196924
feat: add TUI bootstrap start
2026-01-09 16:25:29 +01:00
Josh Palmer
25babbfdc4
🤖 codex: fix duplicate agentDir (no-issue)
2026-01-09 16:23:34 +01:00
Emanuel Stadler
277225dc45
Chore: ignore .vscode
2026-01-09 15:21:30 +00:00
Peter Steinberger
d3ca84e14c
feat: add dev workspace templates
2026-01-09 16:13:41 +01:00
Peter Steinberger
07430eb33d
Merge pull request #569 from bjesuiter/ui-build-default-to-relative-path
...
fix(ui): default to relative paths for control UI assets
2026-01-09 14:47:46 +00:00
Peter Steinberger
9af5b13803
test: make withTempHome cross-platform
2026-01-09 15:47:26 +01:00
Peter Steinberger
cfb369d727
docs: add dev gateway flow
2026-01-09 15:47:22 +01:00
Peter Steinberger
2679768447
Merge pull request #577 from clawdbot/fix/node-bridge-keepalive
...
fix: harden node bridge keepalive
2026-01-09 14:46:59 +00:00
Peter Steinberger
d746304371
docs: changelog for keepalive hardening ( #577 )
2026-01-09 15:46:45 +01:00
Peter Steinberger
f5cc6bb283
fix: harden node bridge keepalive
2026-01-09 15:46:45 +01:00
Peter Steinberger
6177c2d575
fix: auto-create dev config for dev profile
2026-01-09 15:45:11 +01:00
Peter Steinberger
616293f8a7
Merge pull request #567 from erikpr1994/fix/gemini-schema-sanitization
...
fix(agents): remove unsupported JSON Schema keywords for Cloud Code Assist API
2026-01-09 14:44:38 +00:00
Peter Steinberger
d77dee50c9
Merge pull request #570 from azade-c/feat/sessions-label
...
feat(sessions): expose label in sessions.list and support label lookup in sessions_send
2026-01-09 14:44:23 +00:00
Peter Steinberger
c4c0f1349a
fix: keep build green after main rebase ( #570 ) (thanks @azade-c)
2026-01-09 15:40:36 +01:00
Peter Steinberger
17a7d4e8dd
test: stabilize Windows test env ( #567 ) (thanks @erikpr1994)
2026-01-09 15:40:02 +01:00
Peter Steinberger
2aeeeff65f
ci: sanitize CI test output
2026-01-09 15:39:16 +01:00
Peter Steinberger
d17141b859
fix(status): show usage for token auth profiles
2026-01-09 14:36:46 +00:00
Peter Steinberger
1afa48fcdf
style(models): biome format auth order
2026-01-09 14:36:46 +00:00
Peter Steinberger
7cb9e95a53
docs: document auth profile selection
2026-01-09 14:36:46 +00:00
Peter Steinberger
407a3c2c10
fix: quiet telegram getUpdates errors
2026-01-09 15:35:39 +01:00
Peter Steinberger
5f4eb8b509
style: format cli files
2026-01-09 15:34:41 +01:00
Peter Steinberger
d28c266771
fix: sanitize Windows test output
2026-01-09 15:32:55 +01:00
Peter Steinberger
d5b826ffc8
fix: restore openUrl import
2026-01-09 15:32:55 +01:00
Peter Steinberger
59d942c9ec
fix: unblock CI on main ( #569 ) (thanks @bjesuiter)
2026-01-09 15:32:55 +01:00
Peter Steinberger
92b792b3f0
fix: land #569 (thanks @bjesuiter)
2026-01-09 15:32:55 +01:00
Benjamin Jesuiter
7dcf19d902
fix(ui): default to relative paths for control UI assets
...
Changes the default base path from "/" to "./" so the control UI works
correctly when served under a custom basePath (e.g., /jbclawd/).
Previously, assets were referenced with absolute paths like /assets/...,
which failed when the UI was served under a subpath. With relative paths
(./assets/...), the browser resolves them relative to the HTML location,
making the UI work regardless of the configured basePath.
2026-01-09 15:32:55 +01:00
Peter Steinberger
f7e8cd8ac8
chore: regen protocol models ( #570 ) (thanks @azade-c)
2026-01-09 15:32:49 +01:00
Peter Steinberger
56e77f6843
fix: sessions label lookup and persistence ( #570 ) (thanks @azade-c)
2026-01-09 15:32:49 +01:00
Azade
e24e0cf364
test(sessions): add tests for sessions_send label lookup
...
- Test finding session by label
- Test error when label not found
- Test error when neither sessionKey nor label provided
2026-01-09 15:32:49 +01:00
Azade
3133c7c84e
feat(sessions): expose label in sessions.list and support label lookup in sessions_send
...
- Add `label` field to session entries and expose it in `sessions.list`
- Display label column in the web UI sessions table
- Support `label` parameter in `sessions_send` for lookup by label instead of sessionKey
- `sessions.patch`: Accept and store `label` field
- `sessions.list`: Return `label` in session entries
- `sessions_spawn`: Pass label through to registry and announce flow
- `sessions_send`: Accept optional `label` param, lookup session by label if sessionKey not provided
- `agent` method: Accept `label` and `spawnedBy` params (stored in session entry)
- Add `label` column to sessions table in web UI
- Changed session store writes to merge with existing entry (`{ ...existing, ...new }`)
to preserve fields like `label` that might be set separately
We attempted to implement label persistence "properly" by passing the label
through the `agent` call and storing it during session initialization. However,
the auto-reply flow has multiple write points that overwrite the session entry,
and making all of them merge-aware proved unreliable.
The working solution patches the label in the `finally` block of
`runSubagentAnnounceFlow`, after all other session writes complete.
This is a workaround but robust - the patch happens at the very end,
just before potential cleanup.
A future refactor could make session writes consistently merge-based,
which would allow the cleaner approach of setting label at spawn time.
```typescript
// Spawn with label
sessions_spawn({ task: "...", label: "my-worker" })
// Later, find by label
sessions_send({ label: "my-worker", message: "continue..." })
// Or use sessions_list to see labels
sessions_list() // includes label field in response
```
2026-01-09 15:32:49 +01:00
Peter Steinberger
b85854d0fe
Merge pull request #575 from clawdbot/blacksmith-migration-944f15e
2026-01-09 14:31:53 +00:00
Peter Steinberger
4b7d9c72df
docs: emphasize setup-token
2026-01-09 15:29:50 +01:00
Peter Steinberger
e612aedbff
docs: prefer setup-token for Anthropic
2026-01-09 15:27:49 +01:00
Peter Steinberger
80ff2dc77d
fix: honor gateway --dev flag
2026-01-09 15:25:51 +01:00
Peter Steinberger
c228df8f90
fix: rebase onto main + restore build/lint ( #567 ) (thanks @erikpr1994)
2026-01-09 15:23:41 +01:00
Peter Steinberger
fd3cbd96a8
test: sanitize Windows CI vitest runner output ( #567 ) (thanks @erikpr1994)
2026-01-09 15:19:49 +01:00
Peter Steinberger
cb96deb517
test: harden Windows CI output sanitization ( #567 ) (thanks @erikpr1994)
2026-01-09 15:19:49 +01:00
Peter Steinberger
f58b3d082f
test: sanitize Windows CI buffer output ( #567 ) (thanks @erikpr1994)
2026-01-09 15:19:49 +01:00
Peter Steinberger
090d16392b
test: sanitize Windows CI output ( #567 )
2026-01-09 15:19:49 +01:00
Peter Steinberger
760e9b3df5
fix: avoid Windows runner unicode crash ( #567 )
2026-01-09 15:19:49 +01:00
Peter Steinberger
63f5fa47de
fix: avoid invalid UTF-16 in truncation ( #567 )
2026-01-09 15:19:49 +01:00
Peter Steinberger
fd535a50d3
fix: scrub tool schemas for Cloud Code Assist ( #567 ) (thanks @erikpr1994)
2026-01-09 15:19:49 +01:00
Erik
e9217181c1
fix(agents): remove unsupported JSON Schema keywords for Cloud Code Assist API
...
Cloud Code Assist API requires strict JSON Schema draft 2020-12 compliance
and rejects keywords like patternProperties, additionalProperties, $schema,
$id, $ref, $defs, and definitions.
This extends cleanSchemaForGemini to:
- Remove all unsupported keywords from tool schemas
- Add oneOf literal flattening (matching existing anyOf behavior)
- Add test to verify no unsupported keywords remain in tool schemas
2026-01-09 15:19:48 +01:00
Peter Steinberger
2c5ec94843
test: stabilize sandbox/doctor tests
2026-01-09 15:17:20 +01:00
Peter Steinberger
fc7580ab5e
fix: remove configure control-ui prompt
2026-01-09 15:17:20 +01:00
Peter Steinberger
adb3bc2577
fix: reset dev gateway setup
2026-01-09 15:17:20 +01:00
Peter Steinberger
3e400ff9f2
feat(models): add per-agent auth order overrides
2026-01-09 14:07:45 +00:00
blacksmith-sh[bot]
a596f32a8e
Migrate workflows to Blacksmith
2026-01-09 14:06:46 +00:00
Peter Steinberger
944f15e401
fix(discovery): decode dns-sd escaped UTF-8
2026-01-09 14:56:01 +01:00
Peter Steinberger
02aeff8efc
style(gateway): multiline discovery output
2026-01-09 14:43:46 +01:00
Peter Steinberger
b5c32a4c79
fix(onboarding): remove redundant model spread fallback
2026-01-09 14:16:37 +01:00
Peter Steinberger
6f91bcafdb
fix(config): align agents defaults schema
2026-01-09 14:13:52 +01:00
Peter Steinberger
576f8d4681
Merge pull request #572 from ngutman/fix/mac-node-bridge-ping
...
fix(macos): add node bridge ping loop (AI-assisted)
2026-01-09 13:03:03 +00:00
Peter Steinberger
cb86d0d6d4
fix: land mac node bridge ping loop ( #572 ) (thanks @ngutman)
2026-01-09 14:01:20 +01:00
Peter Steinberger
f6f178ddee
style(telegram): format bot init
2026-01-09 13:57:06 +01:00
Peter Steinberger
b3d640b978
fix(onboarding): remove duplicate minimax constants
2026-01-09 13:56:16 +01:00
Peter Steinberger
0fc7a06913
fix(discovery): silence oxlint warning
2026-01-09 13:55:28 +01:00
Peter Steinberger
e38cdb3133
docs(cli): fix sandbox links
2026-01-09 13:55:28 +01:00
Peter Steinberger
b21e62f072
style: format gateway discovery
2026-01-09 13:55:28 +01:00
Peter Steinberger
b0672da396
fix(gateway): fix wide-area discovery update
2026-01-09 13:55:27 +01:00
Peter Steinberger
c2d185aab7
fix: normalize routed replies
2026-01-09 13:55:27 +01:00
Peter Steinberger
bfadc8f4ee
style: format onboard providers
2026-01-09 13:54:53 +01:00
Peter Steinberger
1716c01bdf
feat(gateway): improve wide-area discovery
2026-01-09 13:54:53 +01:00
Nimrod Gutman
975aa5bf82
fix(macos): add node bridge ping loop
2026-01-09 13:50:38 +01:00
Peter Steinberger
7b81d97ec2
feat: wire multi-agent config and routing
...
Co-authored-by: Mark Pors <1078320+pors@users.noreply.github.com >
2026-01-09 12:48:42 +00:00
Peter Steinberger
81beda0772
feat: migrate agent config to multi-agent layout
2026-01-09 12:44:29 +00:00
Peter Steinberger
82b342e77b
fix: respect auth cooldown with auth.order
2026-01-09 12:44:29 +00:00
Peter Steinberger
4166cd12b6
Merge pull request #495 from tobiasbischoff/main
...
Onboarding: add hosted MiniMax M2.1 API key option
2026-01-09 12:43:00 +00:00
Peter Steinberger
ac922e83d3
Merge branch 'main' into tobias-sync
2026-01-09 13:42:34 +01:00
Peter Steinberger
dc6f22c2c5
fix: add hosted minimax onboarding ( #495 , thanks @tobiasbischoff)
2026-01-09 13:40:01 +01:00
Tobias Bischoff
897685a2de
Telegram: cast fetch to grammy client type
2026-01-09 13:39:28 +01:00
Tobias Bischoff
a0bb2bccaf
Onboarding: add MiniMax hosted API key option
2026-01-09 13:39:28 +01:00
Josh Palmer
7b79823b24
Adjust UI install for offline pnpm fetch ( #568 )
...
* 🤖 codex: make ui build install prod deps for offline pnpm (issue-pnpm-offline)
* 🤖 codex: ensure ui:test installs dev deps (issue-pnpm-offline)
2026-01-09 13:38:46 +01:00
Peter Steinberger
17a7dfc966
chore: update dev identity default
2026-01-09 13:34:45 +01:00
Peter Steinberger
22d517a520
fix: clarify WhatsApp owner number prompts
2026-01-09 13:32:52 +01:00
Peter Steinberger
201c879772
fix(sandbox): compare list to config images ( #563 ) - thanks @pasogott
2026-01-09 13:29:47 +01:00
sheeek
7883491ce2
test(sandbox): add unit tests for formatter functions
...
Add comprehensive tests for sandbox-formatters.ts (20 tests):
- formatStatus: running/stopped with emojis
- formatSimpleStatus: running/stopped without emojis
- formatImageMatch: match/mismatch indicators
- formatAge: seconds, minutes, hours, days with edge cases
- countRunning: count items by running state
- countMismatches: count items by image mismatch
All pure functions now covered. 152 LOC tests added.
Total test count: 39 tests (19 integration + 20 unit)
Test coverage increased from ~66% to ~80%.
2026-01-09 13:23:16 +01:00
sheeek
7f02b62bba
style(sandbox): fix linting errors
...
- Remove unused normalizeOptions function
- Fix line length violations (format long lines)
- Fix import order (alphabetical)
- Format function signatures for readability
All lint checks now passing.
2026-01-09 13:23:16 +01:00
sheeek
b0c97d6178
refactor(sandbox-cli): improve structure and reduce duplication
...
Improvements:
- Extract help text examples into EXAMPLES constant object
- Add createRunner() helper to reduce try-catch boilerplate
- Add normalizeOptions() helper (prepared for future use)
- Fix command names from 'clawd' to 'clawdbot' throughout
- Update main sandbox command to show help by default
- Better organize code with clear section comments
Increases from 82 to 137 LOC but with much better organization
and reduced duplication in error handling.
2026-01-09 13:23:16 +01:00
sheeek
1c757ae35e
refactor(sandbox): use extracted display and formatter modules
...
Update sandbox.ts to import and use functions from:
- sandbox-display.ts for all UI output
- sandbox-formatters.ts for data formatting
Removes 141 LOC of display/formatting code from sandbox.ts,
reducing it from 351 to 210 LOC (-40%).
Core business logic now clearer and more focused.
2026-01-09 13:23:16 +01:00
sheeek
81c55be19b
refactor(sandbox): extract display logic into separate module
...
Move all display functions to sandbox-display.ts:
- displayContainers, displayBrowsers with generic displayItems helper
- displaySummary with image mismatch warnings
- displayRecreatePreview, displayRecreateResult
Uses DisplayConfig pattern to reduce duplication between container
and browser display logic. 156 LOC.
2026-01-09 13:23:16 +01:00
sheeek
dd0104290e
refactor(sandbox): extract formatters into separate module
...
Move formatting utilities to sandbox-formatters.ts:
- formatStatus, formatSimpleStatus, formatImageMatch, formatAge
- countRunning, countMismatches helper functions
- ContainerItem type definition
Improves modularity and reusability. 49 LOC.
2026-01-09 13:23:16 +01:00
sheeek
6ca34c1259
docs(sandbox): fix command name from clawd to clawdbot
...
Update all command examples in documentation to use 'clawdbot' instead
of 'clawd' for consistency with actual CLI command name.
2026-01-09 13:23:16 +01:00
sheeek
c3932c8508
test(sandbox): add comprehensive test suite for CLI commands
...
Add 19 tests covering sandboxListCommand and sandboxRecreateCommand:
- List command: human/JSON output, browser flag, error handling
- Recreate command: validation, filtering (session/agent), confirmation flow
- Factory functions (createContainer, createBrowser) reduce duplication
- Helper functions (expectLogContains, setupDefaultMocks) improve readability
All tests passing. 365 LOC with ~66% production code coverage.
2026-01-09 13:23:16 +01:00
sheeek
00b77421dd
refactor: improve sandbox commands code structure
...
Improvements:
- Extract validation into separate function
- Split display logic from business logic
- Create reusable container matcher for agent filtering
- Abstract status/image formatting into helpers
- Reduce code duplication between containers and browsers
- Extract container removal into generic function
- Add type safety with FilteredContainers type
- Improve readability with smaller, focused functions
Changes:
- validateRecreateOptions(): Validate mutual exclusivity
- fetchAndFilterContainers(): Fetch + filter in one place
- createAgentMatcher(): Reusable agent filter predicate
- displayContainers/Browsers(): Dedicated display functions
- displaySummary/RecreatePreview/Result(): Clear separation
- removeContainer(): Generic removal with error handling
- Format helpers: formatStatus, formatImageMatch, etc.
- Count helpers: countRunning, countMismatches
Result: 85 more lines but much better maintainability and testability.
2026-01-09 13:23:16 +01:00
sheeek
bcd52ee546
chore: update CHANGELOG for sandbox CLI commands
2026-01-09 13:23:16 +01:00
sheeek
75927d736a
docs: add sandbox CLI documentation
2026-01-09 13:22:51 +01:00
sheeek
5e78d5a21f
feat: add sandbox CLI commands for container management
...
Add 'clawd sandbox list' and 'clawd sandbox recreate' commands to manage
sandbox containers. This fixes the issue where containers continue using
old images/configs after updates.
Problem:
- When sandbox Docker images or configs are updated, existing containers
keep running with old settings
- Containers are only recreated after 24h inactivity (pruning)
- If agents are used regularly, old containers run indefinitely
Solution:
- 'clawd sandbox list': Show all containers with status, age, and image match
- 'clawd sandbox recreate': Force container removal (recreated on next use)
- Supports --all, --session, --agent, --browser filters
- Requires confirmation unless --force is used
Implementation:
- Added helper functions to sandbox.ts (list/remove containers)
- Created sandbox-cli.ts following existing CLI patterns
- Created commands/sandbox.ts with list and recreate logic
- Integrated into program.ts
Use case: After updating sandbox images or changing sandbox config,
run 'clawd sandbox recreate --all' to ensure fresh containers.
2026-01-09 13:22:51 +01:00
Peter Steinberger
ae6f268987
refactor(msteams): validate send recipient
...
Co-authored-by: Onur <onutc@users.noreply.github.com >
2026-01-09 11:22:59 +01:00
Peter Steinberger
08cceb6435
fix(config): add gateway remote ssh fields
2026-01-09 11:18:37 +01:00
Peter Steinberger
6b107e9e74
refactor(msteams): consolidate stores and send context
2026-01-09 11:18:33 +01:00
Peter Steinberger
6d223303eb
refactor(msteams): extract sdk + storage helpers
2026-01-09 11:07:32 +01:00
Peter Steinberger
8875dbd449
refactor(msteams): split monitor handler and poll store
2026-01-09 11:07:32 +01:00
Peter Steinberger
475d598ecb
fix: normalize poll providers and msteams deps
2026-01-09 11:07:32 +01:00
Peter Steinberger
e55358c65d
feat: finalize msteams polls + outbound parity
2026-01-09 11:07:32 +01:00
Onur
a2bba7ef51
fix(msteams): add msteams to pairing provider labels
2026-01-09 11:07:32 +01:00
Onur
7f326ae4ae
fix: sync doctor-prompter.ts with main
2026-01-09 11:07:17 +01:00
Onur
13b47e6047
fix(doctor): restore initialValue behavior in non-interactive mode
...
The repair/force commit added an early return that broke non-interactive
mode - migrations would return false instead of using initialValue.
2026-01-09 11:07:01 +01:00
Onur
0bc50abd73
style: format quickstart note and media-note test
2026-01-09 11:07:00 +01:00
Onur
c469fac8ef
Tests: speed up media note prompt setup
2026-01-09 11:07:00 +01:00
Onur
a542a285a3
Wizard: preserve QuickStart gateway settings
2026-01-09 11:07:00 +01:00
Onur
eb908985f7
Gateway: fix reload tests for MS Teams provider
2026-01-09 11:07:00 +01:00
Onur
1df7bfefe7
MSTeams: stop on shutdown and honor chunk limit
2026-01-09 11:07:00 +01:00
Onur
9f9b6044aa
docs(msteams): expand setup guide with missing details
...
- Add Azure Bot deprecation notice (multi-tenant deprecated after 2025-07-31)
- Add RSC vs Graph API comparison table
- Add Known Limitations section (webhook timeouts, formatting limits)
- Add Reply Style section explaining threads vs posts channel UI
- Add Updating an existing app section with version bump steps
- Add icon sizes and zip instructions to manifest setup
- Expand troubleshooting with manifest upload errors
2026-01-09 11:07:00 +01:00
Onur
73c1d11eb9
Remove tmp files
2026-01-09 11:07:00 +01:00
Onur
ea1cd2c734
wip
2026-01-09 11:07:00 +01:00
Onur
54d82e4e83
wip [skip ci]
2026-01-09 11:07:00 +01:00
Onur
3cb3460398
add doc
2026-01-09 11:07:00 +01:00
Onur
96b4d885ac
wip [skip ci]
2026-01-09 11:07:00 +01:00
Onur
678d704341
image works in DM
2026-01-09 11:07:00 +01:00
Onur
15e6761035
wip [skip ci]
2026-01-09 11:06:49 +01:00
Onur
e67ca92443
MS Teams: ingest inbound image attachments
2026-01-09 11:06:49 +01:00
Onur
2ab5890eab
wip
2026-01-09 11:06:49 +01:00
Onur
d6256a388e
feat(msteams): wire up proactive messaging in routeReply for queued replies
2026-01-09 11:06:49 +01:00
Onur
04b1eb57eb
MS Teams: fix top-level replies (agent reference)
2026-01-09 11:06:39 +01:00
Onur
8d096ef85d
Tests: stabilize file watchers
2026-01-09 11:06:39 +01:00
Onur
a2bab7d923
MS Teams: refactor provider + replyStyle + reliability
2026-01-09 11:06:38 +01:00
Onur
81f81be816
feat(msteams): add replyStyle config for thread vs top-level replies
...
- Add replyStyle config at global, team, and channel levels
- "thread" replies to the original message (for Posts layout channels)
- "top-level" posts as a new message (for Threads layout channels)
- Default based on requireMention: false → top-level, true → thread
- DMs always use thread style (direct reply)
2026-01-09 11:06:28 +01:00
Onur
269a3c4000
feat(msteams): add outbound sends and fix reply delivery
...
- Add sendMessageMSTeams for proactive messaging via CLI/gateway
- Wire msteams into outbound delivery, heartbeat targets, and gateway send
- Fix reply delivery to use SDK's getConversationReference() for proper
bot info, avoiding "Activity Recipient undefined" errors
- Use proactive messaging for replies to post as top-level messages
(not threaded) by omitting activityId from conversation reference
- Add lazy logger in send.ts to avoid test initialization issues
2026-01-09 11:06:14 +01:00
Onur
2c7d5c82f3
feat(msteams): add per-channel requireMention config
...
- Add teams/channels config structure to MSTeamsConfig
- Implement requireMention check in monitor.ts
- Resolution order: channel > team > global > default (true)
- Update zod schema for validation
- Document RSC permissions for receiving all messages without @mention
- Document Graph API Proxy pattern for historical message access
- Document private channel limitations
- Document team/channel ID format (use URL path, not groupId)
2026-01-09 11:05:46 +01:00
Onur
7d72fcf7f8
add notes [skip ci]
2026-01-09 11:05:34 +01:00
Onur
e0812f8c4d
feat(msteams): add config reload, DM policy, proper shutdown
...
- Add msteams to config-reload.ts (ProviderKind, ReloadAction, rules)
- Add msteams to PairingProvider for pairing code support
- Create conversation-store.ts for storing ConversationReference
- Implement DM policy check (disabled/pairing/open/allowlist)
- Fix WasMentioned to check actual bot mentions via entities
- Fix server shutdown by using custom Express server with httpServer.close()
- Pass authConfig to CloudAdapter for outbound call authentication
- Improve error logging with JSON serialization
2026-01-09 11:05:34 +01:00
Onur
1c73d45106
feat(msteams): wire agent integration for Teams messages
...
- Integrate dispatchReplyFromConfig() for full agent routing
- Add msteams to TextChunkProvider and OriginatingChannelType
- Add msteams case to route-reply (proactive not yet supported)
- Strip @mention HTML tags from Teams messages
- Fix session key to exclude messageid suffix
- Add typing indicator support
- Add proper logging for debugging
2026-01-09 11:05:34 +01:00
Onur
951789e9fa
wip [skip ci]
2026-01-09 11:05:34 +01:00
Onur
d9cbecac7f
feat(msteams): add MS Teams provider skeleton
...
- Add Microsoft 365 Agents SDK packages (@microsoft/agents-hosting,
@microsoft/agents-hosting-express, @microsoft/agents-hosting-extensions-teams)
- Add MSTeamsConfig type and zod schema
- Create src/msteams/ provider with monitor, token, send, probe
- Wire provider into gateway (server-providers.ts, server.ts)
- Add msteams to all provider type unions (hooks, queue, cron, etc.)
- Update implementation guide with new SDK and progress
2026-01-09 11:05:34 +01:00
Onur
7274d6e757
docs: add detailed Azure Bot creation fields [skip ci]
...
- Direct link to Azure Bot creation page
- Field-by-field table for Project details
- Pricing tier options
- Microsoft App ID settings (Single Tenant, Create new)
- Note about SDK version requirement
2026-01-09 11:03:32 +01:00
Onur
0bb9756e0c
docs: add useful links to Azure setup section [skip ci]
2026-01-09 11:03:32 +01:00
Onur
8e02c53df2
docs: add Azure Bot setup instructions
...
Added section 2.5 with step-by-step Azure setup:
- Create Azure Bot (single-tenant)
- Get credentials (appId, appPassword, tenantId)
- Configure messaging endpoint
- Enable Teams channel
- Local dev tunnel options (ngrok, Tailscale)
- Teams App manifest template
- Config example
2026-01-09 11:03:32 +01:00
Onur
051da852a2
docs: rename to msteams-implementation-guide.md
2026-01-09 11:03:32 +01:00
Onur
3b53a84459
docs: rewrite MS Teams research as implementation guide
...
Codex (gpt-5.2 xhigh) rewrote the doc:
- Added MVP scope definition
- Verified repo conventions against actual codebase
- Added 2025/2026 Microsoft guidance (CloudAdapter, single-tenant default)
- Concrete code examples (monitor, send, webhook, adapter)
- Detailed integration checklist (all files to modify)
- 9 MS Teams gotchas to plan for
- 12 actionable implementation steps
- Current references (2026-01)
2026-01-09 11:03:32 +01:00
Onur
01e737e90e
docs: add MS Teams provider research document
...
Initial research and implementation guide for adding msteams as a new
messaging provider. Includes:
- Provider structure patterns from existing implementations
- Gateway integration requirements
- Config types and validation schemas
- Onboarding flow patterns
- MS Teams Bot Framework SDK considerations
- Files to create/modify checklist
This is exploratory work - implementation plan to follow.
2026-01-09 11:03:32 +01:00
Peter Steinberger
fe69bc9439
fix(config): allow gateway.remote ssh fields
2026-01-09 10:50:19 +01:00
Peter Steinberger
d258c68ca1
feat: add gateway dev config options
2026-01-09 10:39:00 +01:00
Luke
750dea3edf
Merge branch 'main' into commands-list-clean
2026-01-09 04:21:47 -05:00
Luke K (pr-0f3t)
5f4df5e336
Auto-reply: drop native command flag
2026-01-09 04:14:36 -05:00
Peter Steinberger
0c167e85af
style: sort configure imports
2026-01-09 10:03:52 +01:00
Peter Steinberger
e0c310d056
chore: bump versions to 2026.1.9
2026-01-09 10:02:15 +01:00
Peter Steinberger
827e68eadd
feat: improve auth setup flows
2026-01-09 09:59:58 +01:00
Peter Steinberger
3db52c972d
fix: repair typing for thinking promotion
2026-01-09 08:37:38 +00:00
Peter Steinberger
17ccf53eb1
fix: normalize <think> reasoning blocks
2026-01-09 08:30:05 +00:00
Peter Steinberger
5b50c97939
feat(cli): improve gateway status output
2026-01-09 09:27:42 +01:00
Peter Steinberger
89132fdd25
chore(lint): biome import order
2026-01-09 09:27:42 +01:00
Peter Steinberger
8dd2286e3e
docs: add message examples to cli index
2026-01-09 09:14:31 +01:00
Luke
aa64abe84c
Merge branch 'main' into commands-list-clean
2026-01-09 03:12:08 -05:00
Peter Steinberger
9998293dff
docs: summarize message subcommands
2026-01-09 09:08:55 +01:00
Peter Steinberger
8d67bd2889
feat: apply lobster palette to prompts
2026-01-09 09:05:24 +01:00
Peter Steinberger
f9be9ad426
feat: switch message cli to subcommands
2026-01-09 09:00:41 +01:00
Peter Steinberger
7ed53e243d
fix(cli): clear lint warnings
2026-01-09 08:51:22 +01:00
Peter Steinberger
0a31112fb4
docs(changelog): mention gateway discover
2026-01-09 08:46:50 +01:00
Peter Steinberger
732972be2b
style: format control ui assets log
2026-01-09 08:32:15 +01:00
Peter Steinberger
721183e259
feat: unify message cli and tools
2026-01-09 08:30:24 +01:00
Peter Steinberger
77d4bb8dfe
feat: update token auth flow
2026-01-09 08:13:05 +01:00
Peter Steinberger
a4d6638f89
fix: import outbound delivery types
2026-01-09 08:13:04 +01:00
Peter Steinberger
c32e3c467d
fix: map CLI deps for outbound sends
2026-01-09 08:13:04 +01:00
Peter Steinberger
185727c696
style: fix lint formatting
2026-01-09 08:13:04 +01:00
Peter Steinberger
37cbcc97d3
feat: support token auth profiles
2026-01-09 08:13:04 +01:00
Peter Steinberger
eced473e05
feat: add models auth commands
2026-01-09 08:13:04 +01:00
Peter Steinberger
af1f6fab29
chore: add lobster CLI banner art
2026-01-09 08:13:04 +01:00
Peter Steinberger
8808d8c84c
docs: add gateway CLI doc
2026-01-09 08:13:04 +01:00
Peter Steinberger
266643bb94
feat(gateway): discover on local + wide-area DNS-SD
2026-01-09 08:13:04 +01:00
Peter Steinberger
2062165cd3
chore: add configure section hints
2026-01-09 08:13:04 +01:00
Peter Steinberger
c807c7e72d
chore: clarify multi-agent reporting
2026-01-09 08:13:04 +01:00
Peter Steinberger
581da80209
chore: log gateway reload and signals
2026-01-09 08:13:04 +01:00
Peter Steinberger
394027dffb
docs: add special thanks for OAuth fix
...
Co-authored-by: Andrew Ting <andrewtingnyc@gmail.com >
2026-01-09 08:13:04 +01:00
Peter Steinberger
60b282cf1d
fix: improve web media fetch errors
2026-01-09 07:09:15 +00:00
Peter Steinberger
c46bab35df
fix: drop explicit ui:install step
2026-01-09 07:02:42 +00:00
Miles
27952bb94d
imessage: isolate group-ish threads by chat_id
2026-01-09 00:01:01 -06:00
Shadow
95c2ccbd7b
fix: remove incorrect discord limited warning
2026-01-08 23:59:40 -06:00
Peter Steinberger
458cbcfb41
docs: note restart disabled by default
2026-01-09 05:52:44 +00:00
Peter Steinberger
0a026fea1c
fix: disable restart by default
2026-01-09 05:49:30 +00:00
Peter Steinberger
db22207014
feat: add message tool and CLI
2026-01-09 06:44:20 +01:00
Peter Steinberger
48a1b07097
fix: promote selected auth profile order
2026-01-09 05:36:14 +00:00
Peter Steinberger
8e35ad5484
style: format after gate
2026-01-09 05:27:54 +00:00
Peter Steinberger
482364aa92
test: stabilize claude cli serialization test
2026-01-09 05:27:50 +00:00
Peter Steinberger
3aa5f45094
chore: update dependencies
2026-01-09 05:25:08 +00:00
Peter Steinberger
31a2830f7d
fix: support /models alias for /model
2026-01-09 06:24:40 +01:00
Peter Steinberger
133124e023
fix: strip thinking tags in chat UI
2026-01-09 05:24:11 +00:00
Peter Steinberger
7842109609
fix: report auth label from configured order
2026-01-09 05:17:27 +00:00
Peter Steinberger
f9fe067f68
fix: normalize anthropic model ids
2026-01-09 05:07:16 +00:00
Peter Steinberger
9114331218
fix: serialize claude cli runs
2026-01-09 04:58:21 +00:00
Peter Steinberger
aa5e75e853
fix: align tool rename fallout
2026-01-09 05:54:34 +01:00
Claude
333832c2e1
fix: bypass Anthropic OAuth token blocking for tool names
...
Anthropic blocks specific lowercase tool names (bash, read, write, edit)
when using OAuth tokens. This fix:
1. Renames blocked tools to capitalized versions (Bash, Read, Write, Edit)
in pi-tools.ts via renameBlockedToolsForOAuth()
2. Passes all tools as customTools in splitSdkTools() to bypass
pi-coding-agent's built-in tool filtering, which expects lowercase names
The capitalized names work with both OAuth tokens and regular API keys.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-09 05:48:54 +01:00
Peter Steinberger
a69a863090
chore: update pi deps
2026-01-09 05:38:21 +01:00
Luke
a4806e9417
Merge branch 'main' into commands-list-clean
2026-01-08 23:21:31 -05:00
Peter Steinberger
ef1ce5d9a8
fix: avoid claude-cli session id collisions
2026-01-09 04:20:58 +00:00
Luke K (pr-0f3t)
5d34e27078
Revert: non-PR file edits
2026-01-08 23:19:44 -05:00
Peter Steinberger
64fc5fa9fc
fix: allow default model outside allowlist
2026-01-09 04:18:30 +00:00
Luke K (pr-0f3t)
16f893c46b
Tests: align google shared expectations
2026-01-08 23:12:37 -05:00
Peter Steinberger
7e4d5c9f84
test: align status and google-shared expectations
2026-01-09 05:03:12 +01:00
Luke
1be8a39442
Merge branch 'main' into commands-list-clean
2026-01-08 22:58:54 -05:00
Peter Steinberger
709d5d9cd6
fix: add spacing to daemon status output
2026-01-09 03:52:51 +00:00
Peter Steinberger
9a8fe4d683
feat(agent): add claude cli runner
2026-01-09 04:52:37 +01:00
Luke K (pr-0f3t)
1309cee124
Auto-reply: fix status command lint
2026-01-08 22:51:35 -05:00
Luke K (pr-0f3t)
8aa80fa464
Auto-reply: tidy help message
2026-01-08 22:48:46 -05:00
Peter Steinberger
8e27ea7371
feat: add raw stream logging flags
2026-01-09 03:45:21 +00:00
Peter Steinberger
69546d563d
fix: combine status usage and cost line
2026-01-09 03:45:01 +00:00
Peter Steinberger
16cfd24967
fix: colorize daemon status output
2026-01-09 03:22:02 +00:00
Luke
b97a9235e0
Merge branch 'main' into commands-list-clean
2026-01-08 22:19:52 -05:00
Peter Steinberger
3e19f82af2
fix: repair status reply call
2026-01-09 03:18:20 +00:00
Peter Steinberger
d8a23cf5ab
fix: restore emoji-rich status output
2026-01-09 03:15:33 +00:00
Luke K (pr-0f3t)
6c8b2a8dc9
Auto-reply: organize status imports
2026-01-08 22:14:24 -05:00
Peter Steinberger
875b849322
feat(ui): link sessions to chat page ( #471 ) — thanks @HazAT
2026-01-09 04:07:56 +01:00
Daniel Griesser
2e1dee197a
feat(ui): link sessions to chat page
...
- Session names in the Sessions table are now clickable links
- Clicking navigates to /chat?session=<key> with that session loaded
- Global sessions excluded (not real conversations)
- Added .session-link CSS styling (accent color, underline on hover)
- Chat page reads 'session' query param and cleans URL after applying
2026-01-09 04:05:33 +01:00
Peter Steinberger
b3b84ffefa
fix: fallback /model list when catalog is unavailable
2026-01-09 03:56:19 +01:00
Luke
e52a2888cc
Merge branch 'main' into commands-list-clean
2026-01-08 21:47:09 -05:00
Peter Steinberger
0cbc5fea93
fix: keep status for directive-only messages
2026-01-09 03:46:00 +01:00
Peter Steinberger
dc81d0a649
fix: improve /status auth label
2026-01-09 03:39:02 +01:00
Peter Steinberger
75d193a284
test: update google shared expectations
2026-01-09 02:34:16 +00:00
Peter Steinberger
3c79d5c711
fix: keep /status usage filtering
2026-01-09 03:31:02 +01:00
Peter Steinberger
151523f47b
feat: add usage cost reporting
2026-01-09 02:29:54 +00:00
Peter Steinberger
dfbee10377
docs: clarify sandbox non-main behavior
2026-01-09 03:23:36 +01:00
Peter Steinberger
1a295d9460
fix: improve status usage filtering and directives
2026-01-09 03:18:47 +01:00
Peter Steinberger
84f668f9c5
test: align google-shared expectations with pi-ai 0.40.0
2026-01-09 03:12:32 +01:00
Peter Steinberger
468889abef
fix: refine status usage and elevated directives
2026-01-09 03:09:56 +01:00
Peter Steinberger
8a3e100ad1
test: update google-shared expectations
2026-01-09 03:04:16 +01:00
Peter Steinberger
fb1ec2cfbf
Merge pull request #526 from neist/feat/system-prompt-messaging-guide
...
feat(system-prompt): add messaging guidance section
2026-01-09 02:02:04 +00:00
Peter Steinberger
362f62f325
docs: update changelog and clawtributors for #526
2026-01-09 03:00:42 +01:00
Kasper Neist
3b78870f33
feat(system-prompt): add messaging guidance section
...
Adds a brief 'Messaging' section to the system prompt to guide agents on:
- Reply in session = auto-routes to source provider
- Cross-session = use sessions_send
- Never use bash/curl for provider messaging
This helps prevent agents from using shell workarounds for messaging
when Clawdbot already handles routing internally.
2026-01-09 03:00:40 +01:00
Luke
c678216ac2
Merge branch 'main' into commands-list-clean
2026-01-08 20:58:26 -05:00
Peter Steinberger
4827c283a6
docs: expand logging guidance
2026-01-09 02:56:29 +01:00
Peter Steinberger
0a722de65c
test: cover log line parsing
2026-01-09 02:54:04 +01:00
Peter Steinberger
3a99ac7e9a
fix: honor mention-bypass for group commands
2026-01-09 02:52:44 +01:00
Peter Steinberger
efa5f0bfe0
feat: improve logs output and docs
2026-01-09 02:51:17 +01:00
Peter Steinberger
e1789ba9e5
fix: set gemini default model for api-key auth ( #489 ) - thanks @jonasjancarik
2026-01-09 02:49:42 +01:00
Jonáš Jančařík
302d51fd40
feat: add Gemini API key onboarding
2026-01-09 02:45:15 +01:00
Peter Steinberger
340d5d03f2
docs: note PR 541 and add clawtributor
2026-01-09 02:38:03 +01:00
Ogulcan Celik
7bb0841f42
fix: prevent systemd hang on restart with podman sandboxes
...
Add KillMode=process to generated systemd unit file. Without this,
podman's conmon processes (which monitor sandbox containers) block
shutdown since they're children of the gateway process.
This preserves the desired behavior of keeping containers alive
across restarts while preventing systemd from waiting indefinitely.
2026-01-09 02:37:00 +01:00
Peter Steinberger
a738ade0ec
chore: update dependencies
2026-01-09 02:34:39 +01:00
Kasper Neist
514b85ba33
feat(system-prompt): add messaging guidance section
...
Adds a brief 'Messaging' section to the system prompt to guide agents on:
- Reply in session = auto-routes to source provider
- Cross-session = use sessions_send
- Never use bash/curl for provider messaging
This helps prevent agents from using shell workarounds for messaging
when Clawdbot already handles routing internally.
2026-01-09 02:21:55 +01:00
Jake
0dbb569187
chore: bump Pi to 0.40.0 and revert PR #454 pi-ai patch
...
- Upgrade @mariozechner/pi-* packages from 0.38.0 to 0.40.0
- Remove pi-ai patch (upstream 429 fix in 0.40.0 supersedes PR #454 )
- Update CHANGELOG
2026-01-09 02:12:19 +01:00
Peter Steinberger
75af0e61da
docs: thank pasogott for Ansible guide ( #545 )
2026-01-09 02:10:19 +01:00
sheeek
b8afbfbb44
docs: add Ansible installation guide
2026-01-09 02:09:02 +01:00
Peter Steinberger
14096fb629
docs: add model allowlist + reasoning safety notes
2026-01-09 02:07:33 +01:00
Peter Steinberger
9c33080f12
Merge pull request #534 from mcinteerj/fix/whatsapp-queued-routing
...
WhatsApp: fix routing for queued messages
2026-01-09 01:05:16 +00:00
Peter Steinberger
97635a8966
test: assert WhatsApp queued routing context ( #534 ) thanks @mcinteerj
2026-01-09 02:04:05 +01:00
Peter Steinberger
f2246df875
fix: route WhatsApp queued replies to sender ( #534 )
2026-01-09 02:03:30 +01:00
Jake
a52e75d978
WhatsApp: fix routing for queued messages by using correct OriginatingTo
2026-01-09 02:01:33 +01:00
Peter Steinberger
7f12548615
docs: explain model allowlist errors
2026-01-09 01:59:22 +01:00
Peter Steinberger
57d3d6bd78
docs: clarify workspace vs sandbox
2026-01-09 01:54:28 +01:00
Peter Steinberger
455723375e
fix: show directive options on query
2026-01-09 01:40:44 +01:00
Peter Steinberger
8ee7223587
docs: add clawdhub install/sync guidance
2026-01-09 01:38:19 +01:00
Peter Steinberger
ae9f5ecc2d
docs: clarify per-agent vs shared skills
2026-01-09 01:37:24 +01:00
Peter Steinberger
948ce5eb5f
feat(models): add oauth auth health
2026-01-09 00:34:38 +00:00
L36 Server
bcec534e5e
docs: add authentication to gateway navigation
2026-01-09 00:34:38 +00:00
L36 Server
4ca2677815
docs: add authentication guide with 1-year token setup
2026-01-09 00:34:38 +00:00
L36 Server
6484195bfe
scripts: add auth management and Termux widget scripts
2026-01-09 00:34:38 +00:00
Luke
daafa9e3bc
Merge branch 'main' into commands-list-clean
2026-01-08 19:33:56 -05:00
Peter Steinberger
8f21f34b1c
docs(changelog): note webchat queue ( #527 )
2026-01-09 01:32:43 +01:00
Peter Steinberger
94c61aa19d
feat(webchat): queue outgoing messages
2026-01-09 01:30:38 +01:00
Yurii Chukhlib
e84cafec8a
feat(webchat): change Enter key to send message
...
Changes webchat textarea behavior:
- Enter key now sends message (was Cmd/Ctrl+Enter)
- Shift+Enter allows line breaks
- Updated placeholder text to reflect new behavior
Fixes #411
Co-Authored-By: Claude <noreply@anthropic.com >
2026-01-09 01:30:37 +01:00
Jake
bd4bc16192
WhatsApp: fix routing for queued messages by using correct OriginatingTo
2026-01-09 13:28:31 +13:00
Peter Steinberger
ab1896dc13
docs: add PR #519 changelog
...
Co-authored-by: Jonathan D. Rhyne <jonathan@pspdfkit.com >
2026-01-09 01:16:57 +01:00
Peter Steinberger
9b901889ee
docs: rewrite TUI guide
2026-01-09 01:05:10 +01:00
Jonathan D. Rhyne
debdd2aa95
fix(tui): status bar not updating after /verbose, /reasoning, /think commands
...
The status bar refresh failed because refreshSessionInfo() compared
currentSessionKey (e.g. 'main') against the canonical session keys
returned by the gateway (e.g. 'agent:default:main').
This fix uses parseAgentSessionKey to also match canonical keys by
their 'rest' component, allowing 'main' to match 'agent:default:main'.
Fixes: status bar showing stale values after setting changes
AI-assisted: yes (Claude)
Testing: lightly tested (build passes, logic verified)
2026-01-09 01:05:10 +01:00
Peter Steinberger
714e170c16
feat(tui): add agent picker and agents list rpc
2026-01-09 01:05:10 +01:00
Peter Steinberger
a5f0f62e0d
docs: fix models doc merge marker
2026-01-09 00:58:50 +01:00
Peter Steinberger
e5dbba7b67
fix: sort imports for lint
2026-01-09 00:57:17 +01:00
Peter Steinberger
7a0614c850
Merge pull request #539 from clawdbot/fix/inline-directive-spacing
...
Preserve spacing after inline directives
2026-01-08 23:51:44 +00:00
Peter Steinberger
27adabbeea
test: cover reasoning directive spacing (thanks @joshp123) ( #539 )
2026-01-09 00:51:05 +01:00
Peter Steinberger
f666f60731
fix: preserve inline directive spacing tests (thanks @joshp123) ( #539 )
2026-01-09 00:37:40 +01:00
Josh Palmer
43545a4864
🤖 codex: preserve spacing after inline directives (issue-telegram-inline-spacing)
2026-01-09 00:37:40 +01:00
Peter Steinberger
4e92ccc0dd
style: format
2026-01-09 00:33:09 +01:00
Peter Steinberger
71309c064a
fix: drop redundant telegram audit union
2026-01-09 00:33:09 +01:00
Peter Steinberger
01b8f4582f
fix: align discord monitor + whatsapp activity
2026-01-09 00:33:09 +01:00
Peter Steinberger
e09708e82d
feat: sync skills into sandbox workspace
2026-01-09 00:33:09 +01:00
Peter Steinberger
561fa99d95
feat(providers): show status spinner message
2026-01-08 23:30:38 +00:00
Peter Steinberger
7ece3717e6
refactor(pairing): centralize reply formatting
2026-01-08 23:29:23 +00:00
Peter Steinberger
e952f7df96
docs: drop Updated headers
2026-01-09 00:20:32 +01:00
Peter Steinberger
a5cb51282c
docs: clarify WhatsApp number modes
2026-01-09 00:19:51 +01:00
Peter Steinberger
e0439df4ce
feat(pairing): show sender ids across providers
2026-01-08 23:19:13 +00:00
Peter Steinberger
7c7858a519
refactor(signal): normalize sender identity
2026-01-08 23:08:25 +00:00
Kasper Neist
9e9f2babeb
fix(signal): use sourceUuid as fallback when sourceNumber is null
...
Users without a visible phone number (like some Signal users)
were being silently dropped. Now falls back to UUID for sender ID.
- Add sourceUuid to SignalEnvelope type
- Use sourceUuid when sourceNumber is not available
- Only check against bot account when sourceNumber exists (avoid UUID comparison issues)
2026-01-08 23:08:25 +00:00
Peter Steinberger
490bbd10fc
feat(telegram): show user id in pairing
2026-01-09 00:01:23 +01:00
Peter Steinberger
829782c42c
docs(changelog): note provider troubleshooting index
2026-01-08 23:56:54 +01:00
Peter Steinberger
db7ea832a7
docs: add PR #476 to changelog
2026-01-08 23:52:55 +01:00
gupsammy
12231e3f59
chore: add .local to gitignore
2026-01-08 23:52:55 +01:00
gupsammy
df1fdbeb2b
docs: add 3 showcase entries from Discord
2026-01-08 23:52:55 +01:00
Shadow
9f8336c92b
Discord: harden gateway resilience
2026-01-08 16:52:44 -06:00
Peter Steinberger
769b76cd40
test(provider-activity): restore real timers
2026-01-08 23:52:07 +01:00
Peter Steinberger
69f8af530d
feat(providers): improve doctor + status probes
2026-01-08 23:48:37 +01:00
Peter Steinberger
41d484d239
test: cover browser and canvas verbose summaries
2026-01-08 23:48:37 +01:00
Peter Steinberger
2f1ce51b2c
test: stabilize doctor + bash tool tests
2026-01-08 23:44:54 +01:00
Peter Steinberger
4360d1106d
Merge pull request #532 from mcinteerj/docs/webhook-params-descriptions
...
docs: expand parameter descriptions for agent/wake hooks
2026-01-08 22:38:34 +00:00
Peter Steinberger
4655360546
chore: update changelog for #532 (thanks @mcinteerj)
2026-01-08 23:38:17 +01:00
Jake
89d01f15a5
docs: expand parameter descriptions for agent/wake hooks
2026-01-08 23:38:17 +01:00
Peter Steinberger
b1d4bd0f78
docs: require code-verified answers
2026-01-08 23:33:41 +01:00
Peter Steinberger
6f6af83033
Merge pull request #521 from fishfisher/update-app-icons
...
chore(apps): rebrand app icons from Clawdis to Clawdbot
2026-01-08 22:31:55 +00:00
Peter Steinberger
dc9fdf335d
chore: update changelog and clawtributors ( #521 , thanks @fishfisher)
2026-01-08 23:31:24 +01:00
Erik von Essen Fisher
fb0c566b2a
Rebrand app icons from Clawdis to Clawdbot
...
Replace app icons with new Clawdbot branding (lobster-in-phone-booth design) across iOS, Android, and macOS.
Changes:
- iOS: Updated all 14 icon sizes in AppIcon.appiconset (20px to 1024px)
- Android: Updated launcher icons for all density buckets (mdpi to xxxhdpi)
- macOS: Updated Icon.icon bundle and regenerated Clawdbot.icns
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-01-08 23:31:24 +01:00
Peter Steinberger
cdfae0b9d3
fix(daemon): normalize audit paths
2026-01-08 22:28:51 +00:00
Peter Steinberger
3965c5b4d2
docs: naming sweep and platform wording
2026-01-08 23:25:51 +01:00
Peter Steinberger
ed80860c34
chore(format): apply biome fixes
2026-01-08 22:22:17 +00:00
Peter Steinberger
1f215848be
chore(test): align auth choice options formatting
2026-01-08 23:18:33 +01:00
Peter Steinberger
dc1992cbb5
docs: note elevated no-op when unsandboxed
2026-01-08 23:18:33 +01:00
Peter Steinberger
b01d7e39d5
fix(onboarding): preflight claude cli keychain
2026-01-08 23:18:33 +01:00
Peter Steinberger
d38a8d7076
docs: clarify elevated sandbox behavior
2026-01-08 23:18:33 +01:00
Peter Steinberger
36fa3c3cd3
fix: improve ws close diagnostics
2026-01-08 22:18:07 +00:00
Peter Steinberger
1cf8503017
fix(daemon): audit runtime best practices
2026-01-08 22:18:07 +00:00
Jake
95015ddea6
docs: expand parameter descriptions for agent/wake hooks
2026-01-09 11:14:52 +13:00
Peter Steinberger
cd2f3bd355
feat(status): add Telegram/WhatsApp troubleshooting warnings
2026-01-08 23:14:11 +01:00
Peter Steinberger
a33271d374
refactor: share paren-aware chunk break scan
2026-01-08 23:09:34 +01:00
Peter Steinberger
7392387ec1
feat(status): warn on Discord message content intent
2026-01-08 23:07:34 +01:00
Peter Steinberger
a6c309824e
docs: refresh and simplify docs
2026-01-08 23:07:20 +01:00
Peter Steinberger
88dca1afdf
docs: fix Mintlify parse error
2026-01-08 23:05:26 +01:00
Peter Steinberger
b48ed56635
test: add DM elevated regression coverage
2026-01-08 22:58:15 +01:00
Peter Steinberger
014667e00b
fix: tighten group elevated targeting
2026-01-08 22:57:18 +01:00
Peter Steinberger
cda2025c49
fix: align env config schema
2026-01-08 22:57:18 +01:00
Peter Steinberger
59f89678b2
feat: allow inline env vars in config
2026-01-08 22:57:18 +01:00
Peter Steinberger
9a1267b530
fix(doctor): run legacy migrations in non-interactive
2026-01-08 21:37:22 +00:00
Peter Steinberger
5b46214379
refactor(cron): centralize telegram targets + delivery helpers
2026-01-08 21:36:53 +00:00
Peter Steinberger
5939dff092
fix: avoid synthesizing agent defaults
2026-01-08 22:26:29 +01:00
Luke
ab28eb5109
Merge branch 'main' into commands-list-clean
2026-01-08 16:25:56 -05:00
Peter Steinberger
2c7d64232e
feat: enable adaptive context pruning by default
2026-01-08 22:23:03 +01:00
Luke
5965708f1d
Merge branch 'main' into commands-list-clean
2026-01-08 16:22:25 -05:00
Peter Steinberger
d58cdf7c9f
fix: normalize gateway cli option strings
2026-01-08 22:18:06 +01:00
Peter Steinberger
35ba99c245
fix: honor non-interactive legacy migrations
2026-01-08 22:13:57 +01:00
Peter Steinberger
e75ca23e7d
test(cron): cover telegram topic delivery ( #478 ) (thanks @nachoiacovino)
2026-01-08 21:13:39 +00:00
Nacho Iacovino
5391f1141e
fix(cron): parse :topic: suffix for Telegram topic delivery
...
When cron jobs specify a Telegram topic in the 'to' field like
'-1003420657307:topic:60', the delivery code now correctly parses
this into separate chatId and messageThreadId values.
Previously, the entire string was passed as chatId, causing messages
to fail delivery to forum topics.
2026-01-08 21:12:15 +00:00
Peter Steinberger
699ba410fe
fix: resolve WhatsApp LID inbound mapping
2026-01-08 22:08:54 +01:00
Peter Steinberger
da48a9907b
docs: add beginner paths for docker and linux vps
2026-01-08 21:56:47 +01:00
Josh Palmer
53b81d07c6
🤖 codex: add changelog entry for #210
2026-01-08 21:54:04 +01:00
Josh Palmer
2fae8eda66
🤖 codex: strip empty assistant blocks from history ( #210 )
2026-01-08 21:53:33 +01:00
Peter Steinberger
884e734809
feat(doctor): audit config + state permissions
2026-01-08 21:51:34 +01:00
Peter Steinberger
13ddd40a59
docs: clarify sandboxing config option
2026-01-08 21:51:21 +01:00
Peter Steinberger
d55750189e
docs: add sandboxing page and cross-links
2026-01-08 21:49:26 +01:00
Peter Steinberger
2d4ec35e1c
feat(doctor): add repair/force flows
2026-01-08 21:47:35 +01:00
Peter Steinberger
712a7dddf6
docs(cron): clarify jobId vs id
2026-01-08 21:43:22 +01:00
Peter Steinberger
10e46c6d5e
docs(cron): rewrite cron jobs documentation
2026-01-08 21:39:03 +01:00
Peter Steinberger
0373574f0b
refactor(telegram): centralize target parsing
2026-01-08 21:38:59 +01:00
Peter Steinberger
88039a69a2
style(cli): format daemon config warnings
2026-01-08 21:38:54 +01:00
Peter Steinberger
ea748f9440
fix(doctor): handle missing service readCommand
2026-01-08 21:38:51 +01:00
Luke
a574ae5415
Merge branch 'main' into commands-list-clean
2026-01-08 15:35:17 -05:00
Peter Steinberger
23e34dd598
docs: clarify doctor + launchd service guidance
2026-01-08 21:34:28 +01:00
Peter Steinberger
01641b34ea
feat(doctor): audit supervisor config + docs
2026-01-08 21:28:48 +01:00
Peter Steinberger
d0c4ce6749
docs(changelog): note PR #483 (thanks @AbhisekBasu1)
2026-01-08 20:26:18 +00:00
Peter Steinberger
58a9e35233
style(cron): format telegram target tests
2026-01-08 21:23:07 +01:00
Peter Steinberger
5fea53d89c
fix(cron): parse telegram targets with prefixes (thanks @mitschabaude-bot)
2026-01-08 21:23:07 +01:00
Gregor's Bot
2afb75d508
fix(cron): support Telegram topic/thread ID in delivery target
...
When delivering cron job output to Telegram, the 'to' field now supports
specifying a topic (forum thread) ID in addition to the chat ID.
Supported formats:
- chatId (plain chat ID or @username)
- chatId:topicId (chat ID with numeric topic ID)
- chatId:topic:topicId (alternative format with explicit marker)
This enables cron jobs to deliver messages to specific forum topics
rather than always going to the main/general topic.
Adds parseTelegramTarget helper function with unit tests.
(cherry picked from commit 24a6595e81 )
2026-01-08 21:23:07 +01:00
Tobias Bischoff
7cffa65376
Merge branch 'main' into main
2026-01-08 21:16:47 +01:00
Peter Steinberger
f63496b389
Merge pull request #479 from azade-c/docs/systemd-service-comments
...
fix(daemon): align systemd unit with documentation
2026-01-08 20:16:32 +00:00
Peter Steinberger
9632ebed7b
docs: note systemd unit alignment ( #479 ) - thanks @azade-c
2026-01-08 21:16:19 +01:00
Azade
3a8d8bc6a4
fix(daemon): align systemd unit with documentation
...
Align generated systemd service file with docs:
https://docs.clawd.bot/gateway#supervision-systemd-user-unit
Adds:
- After=network-online.target
- Wants=network-online.target
- RestartSec=5
2026-01-08 21:16:19 +01:00
Tobias Bischoff
634f1389a4
Merge branch 'main' into main
2026-01-08 21:15:06 +01:00
Erik von Essen Fisher
7363bd1ad7
Rebrand app icons from Clawdis to Clawdbot
...
Replace app icons with new Clawdbot branding (lobster-in-phone-booth design) across iOS, Android, and macOS.
Changes:
- iOS: Updated all 14 icon sizes in AppIcon.appiconset (20px to 1024px)
- Android: Updated launcher icons for all density buckets (mdpi to xxxhdpi)
- macOS: Updated Icon.icon bundle and regenerated Clawdbot.icns
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-01-08 21:15:02 +01:00
Peter Steinberger
0c74ef25d6
refactor: normalize skills UI status keys
2026-01-08 20:13:24 +00:00
Peter Steinberger
5a2242ee92
docs(changelog): follow-up #516 (thanks @YuriNachos)
2026-01-08 21:08:34 +01:00
Peter Steinberger
31fb5867e8
refactor(outbound): centralize telegram account defaults
2026-01-08 21:05:01 +01:00
Peter Steinberger
e90c00768f
Merge pull request #445 from pkrmf/ui-skill-install-feedback
...
UI: improve skill install feedback
2026-01-08 20:04:32 +00:00
Peter Steinberger
dc4c174f4e
docs: add changelog for skill install feedback (PR #445 , thanks @pkrmf)
2026-01-08 20:04:13 +00:00
Peter Steinberger
7905a27416
style: format gateway-cli log lines
2026-01-08 20:04:10 +00:00
Marc Terns
965615a46c
UI: improve skill install feedback
2026-01-08 20:01:38 +00:00
Peter Steinberger
04e0e10411
fix: restore hidden gateway-daemon alias
2026-01-08 19:54:23 +00:00
Peter Steinberger
28e3e51335
Merge pull request #516 from YuriNachos/fix/heartbeat-telegram-account-id
...
fix(heartbeat): pass accountId for Telegram delivery
2026-01-08 19:48:44 +00:00
Peter Steinberger
5372c1ab54
Merge branch 'main' into fix/heartbeat-telegram-account-id
2026-01-08 20:48:29 +01:00
Peter Steinberger
871c9e5286
fix(heartbeat): telegram accountId + cron jobId compat ( #516 , thanks @YuriNachos)
2026-01-08 20:47:22 +01:00
Yurii Chukhlib
9d42972b8a
fix(heartbeat): pass accountId for Telegram delivery
...
Heartbeat Telegram delivery was failing when the bot token was
configured only via telegram.botToken in config (without TELEGRAM_BOT_TOKEN
environment variable).
Root cause: deliverOutboundPayloads was called without accountId parameter,
so sendMessageTelegram couldn't determine which account to use and couldn't
find the token from config.
Fix: Resolve default Telegram accountId when provider is "telegram" and pass
it to deliverOutboundPayloads. This follows the same pattern used elsewhere in
the codebase (e.g., cron uses resolveTelegramToken).
Changes:
- Added import for resolveDefaultTelegramAccountId
- Added accountId resolution for telegram provider
- Updated deliverOutboundPayloads call to include accountId
Fixes #318
Co-Authored-By: Claude <noreply@anthropic.com >
2026-01-08 20:47:22 +01:00
Yurii Chukhlib
4dac298ae2
fix(cron): use jobId parameter instead of id for AI tool schema
...
Fixes parameter mismatch between AI tool schema and internal validation.
The TypeBox schema now uses `jobId` for update/remove/run/runs actions,
matching what users expect based on the returned job objects.
Changes:
- Changed parameter from `id` to `jobId` in TypeBox schema for update/remove/run/runs
- Updated execute function to read `jobId` parameter
- Updated tests to use `jobId` in input parameters
The gateway protocol still uses `id` internally - the tool now maps
`jobId` from the AI to `id` for the gateway call.
Fixes #185
Co-Authored-By: Claude <noreply@anthropic.com >
2026-01-08 20:47:22 +01:00
Yurii Chukhlib
2f9306b98a
fix(heartbeat): pass accountId for Telegram delivery
...
Heartbeat Telegram delivery was failing when the bot token was
configured only via telegram.botToken in config (without TELEGRAM_BOT_TOKEN
environment variable).
Root cause: deliverOutboundPayloads was called without accountId parameter,
so sendMessageTelegram couldn't determine which account to use and couldn't
find the token from config.
Fix: Resolve default Telegram accountId when provider is "telegram" and pass
it to deliverOutboundPayloads. This follows the same pattern used elsewhere in
the codebase (e.g., cron uses resolveTelegramToken).
Changes:
- Added import for resolveDefaultTelegramAccountId
- Added accountId resolution for telegram provider
- Updated deliverOutboundPayloads call to include accountId
Fixes #318
Co-Authored-By: Claude <noreply@anthropic.com >
2026-01-08 20:40:00 +01:00
Peter Steinberger
28a0864de8
Merge pull request #499 from philipp-spiess/fix/paren-chunking
...
Avoid splitting outbound chunks inside parentheses
2026-01-08 19:39:52 +00:00
Peter Steinberger
4a918ccf47
fix: avoid splitting outbound chunks inside parentheses ( #499 ) — thanks @philipp-spiess
2026-01-08 20:39:28 +01:00
Philipp Spiess
4082b90aa4
Chunking: avoid splits inside parentheses
2026-01-08 20:38:00 +01:00
Peter Steinberger
491f928a2e
Merge pull request #473 from gupsammy/fix/macos-app-crash-bundle-resources
...
fix(macos): prevent crash from missing ClawdbotKit resources and Swift 6.2 library
2026-01-08 19:28:12 +00:00
Yurii Chukhlib
265ef6d0c6
fix(cron): use jobId parameter instead of id for AI tool schema
...
Fixes parameter mismatch between AI tool schema and internal validation.
The TypeBox schema now uses `jobId` for update/remove/run/runs actions,
matching what users expect based on the returned job objects.
Changes:
- Changed parameter from `id` to `jobId` in TypeBox schema for update/remove/run/runs
- Updated execute function to read `jobId` parameter
- Updated tests to use `jobId` in input parameters
The gateway protocol still uses `id` internally - the tool now maps
`jobId` from the AI to `id` for the gateway call.
Fixes #185
Co-Authored-By: Claude <noreply@anthropic.com >
2026-01-08 20:28:03 +01:00
Peter Steinberger
9052160af3
Merge pull request #512 from YuriNachos/fix/telegram-fetch-type-errors
...
fix(telegram): resolve fetch type errors with grammY Bot constructor
2026-01-08 19:27:20 +00:00
Peter Steinberger
f1bc178141
fix: land macos resource bundle guard ( #473 ) — thanks @gupsammy
2026-01-08 19:24:20 +00:00
gupsammy
29e9a574b0
fix(macos): prevent crash from missing ClawdbotKit resources and Swift library
...
The macOS app was crashing in two scenarios:
1. Bundle.module crash (fixes #213 ): When the first tool event arrived,
ToolDisplayRegistry tried to load config via ClawdbotKitResources.bundle,
which used Bundle.module directly. In packaged apps, Bundle.module
couldn't find the resource bundle at the expected path, causing a
fatal assertion failure after ~40-80 minutes of runtime.
2. dyld crash (fixes #417 ): Swift 6.2 requires libswiftCompatibilitySpan.dylib
but SwiftPM doesn't bundle it automatically, causing immediate crash on
launch with "Library not loaded" error.
Changes:
- ClawdbotKitResources.swift: Replace direct Bundle.module access with a
safe locator that checks multiple paths and falls back gracefully
- package-mac-app.sh: Copy ClawdbotKit_ClawdbotKit.bundle to Resources
- package-mac-app.sh: Copy libswiftCompatibilitySpan.dylib from Xcode
toolchain to Frameworks
Tested on macOS 26.2 with Swift 6.2 - app launches and runs without crashes.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-08 19:24:20 +00:00
Peter Steinberger
ba19173b96
test: cover status model provider prefix
2026-01-08 20:23:38 +01:00
Peter Steinberger
393c414e90
refactor: split discord gateway helpers
2026-01-08 20:23:06 +01:00
Peter Steinberger
bf67b29a0e
fix(telegram): resolve grammY fetch type mismatch ( #512 )
...
Co-authored-by: Yuri Chukhlib <yuri.v.chu@gmail.com >
2026-01-08 20:18:17 +01:00
Peter Steinberger
43e0462405
docs: add changelog for #506
2026-01-08 20:13:45 +01:00
Keith the Silly Goose
7866203c5c
fix(status): include provider prefix in model display
...
The /status command was showing 'anthropic/claude-sonnet-4-5' even when
using 'google-antigravity/claude-sonnet-4-5' because buildStatusMessage
received only the model name without the provider prefix.
When resolveConfiguredModelRef parsed a model string without a slash,
it fell back to DEFAULT_PROVIDER ('anthropic'), causing the misleading
display.
Fix: Pass the full 'provider/model' string to buildStatusMessage so
the provider is correctly extracted and displayed.
🪿 Investigated and submitted by Keith the Silly Goose
2026-01-08 20:11:37 +01:00
Yuri Chukhlib
d1ccdeb5f5
Merge branch 'main' into fix/telegram-fetch-type-errors
2026-01-08 20:09:00 +01:00
Peter Steinberger
c54f2a122a
fix: update changelog + prompt test
2026-01-08 20:08:27 +01:00
Josh Palmer
b7c900739e
🤖 codex: handle discord gateway error events ( #504 )
2026-01-08 20:06:02 +01:00
Yurii Chukhlib
d05de07fdd
fix(telegram): resolve fetch type errors with grammY Bot constructor
...
Add proper type assertion for ApiClientOptions["fetch"] to resolve
TypeScript compilation errors when passing fetch implementation to
grammY's Bot constructor. This follows the same pattern already used
in bot.ts.
Fixes #465
2026-01-08 19:31:06 +01:00
Josh Palmer
cc94db458c
🤖 codex: fix block reply ordering ( #503 )
...
What: serialize block reply sends, make typing non-blocking, add timeout fallback + abort-aware routing, and add regression tests.
Why: prevent out-of-order streamed blocks while keeping final fallback on timeouts.
Tests: ./node_modules/.bin/vitest run src/auto-reply/reply.block-streaming.test.ts src/auto-reply/reply/route-reply.test.ts
Tests: corepack pnpm lint && corepack pnpm build (pass). corepack pnpm test (ran locally; failure observed during run).
Co-authored-by: Josh Palmer <joshp123@users.noreply.github.com >
2026-01-08 19:30:24 +01:00
Gregor's Bot
7450aed663
fix: rename ClaudeBot to Clawdbot in system prompt ( #502 )
2026-01-08 11:24:00 -06:00
Philipp Spiess
5fe39307cd
Chunking: avoid splits inside parentheses
2026-01-08 16:52:50 +01:00
Luke K (pr-0f3t)
713eb898f6
Removed compact command changes from elsewhere
2026-01-08 10:41:09 -05:00
Luke
8445c9a5e8
Removing stray commits
2026-01-08 10:33:11 -05:00
LK
559e175b38
feat(commands): add /commands slash list
2026-01-08 16:23:36 +01:00
Tobias Bischoff
3149d6d331
Telegram: cast fetch to grammy client type
2026-01-08 15:16:53 +01:00
Tobias Bischoff
ecd4c9c4f5
Onboarding: add MiniMax hosted API key option
2026-01-08 15:10:18 +01:00
Peter Steinberger
c20a12aa7b
fix: format onboarding hint
2026-01-08 12:25:39 +01:00
Azade
1f7dbb6a48
fix(daemon): align systemd unit with documentation
...
Align generated systemd service file with docs:
https://docs.clawd.bot/gateway#supervision-systemd-user-unit
Adds:
- After=network-online.target
- Wants=network-online.target
- RestartSec=5
2026-01-08 11:24:47 +00:00
Peter Steinberger
4c5440ccab
chore: bump version to 2026.1.8-2
2026-01-08 12:23:01 +01:00
Peter Steinberger
a564558a67
chore: drop bun from daemon runtime options
2026-01-08 12:20:45 +01:00
Peter Steinberger
51c2d29693
feat: auto-install gateway in quickstart
2026-01-08 12:19:45 +01:00
Peter Steinberger
8ed412db22
feat: streamline quickstart provider selection
2026-01-08 12:19:16 +01:00
Peter Steinberger
e210069dbd
fix: soften codex oauth expiry hint
2026-01-08 12:16:09 +01:00
Peter Steinberger
4dde870121
docs: split onboarding mode hints
2026-01-08 12:14:36 +01:00
Peter Steinberger
959a19d8ae
fix: clean lint issues
2026-01-08 11:07:11 +00:00
Peter Steinberger
63bad210c9
docs: tighten onboarding quickstart hint
2026-01-08 12:06:45 +01:00
Peter Steinberger
4c09acb2a9
feat: add telegram topic delivery for cron
2026-01-08 11:05:28 +00:00
Peter Steinberger
874c7465a5
fix: surface control ui config in daemon status
2026-01-08 11:05:28 +00:00
Peter Steinberger
e7b3cc3d3d
fix: add provider account metadata
2026-01-08 11:05:28 +00:00
Peter Steinberger
fd04bdb9cf
chore: tighten self-update guidance
2026-01-08 12:04:29 +01:00
Peter Steinberger
63ff5819b1
fix: retry telegram poll conflicts
2026-01-08 12:04:21 +01:00
Peter Steinberger
03605bfa6a
chore: refine control ui links and composer
2026-01-08 12:04:11 +01:00
Peter Steinberger
d42444928b
chore: add provider logs command
2026-01-08 12:01:06 +01:00
Peter Steinberger
a483e58860
feat: add quickstart onboarding defaults
2026-01-08 11:54:40 +01:00
Peter Steinberger
f24a4626e3
fix(config): reject shared agentDir
2026-01-08 11:54:26 +01:00
Peter Steinberger
aa34d7d5f2
chore: sync pnpm lockfile
2026-01-08 10:46:12 +00:00
Peter Steinberger
af20abf78d
fix(ui): start logs at bottom
2026-01-08 11:42:28 +01:00
Peter Steinberger
390b102563
chore: show dm policy + allowlist preview
2026-01-08 11:25:17 +01:00
gupsammy
908fb94f0b
fix(macos): prevent crash from missing ClawdbotKit resources and Swift library
...
The macOS app was crashing in two scenarios:
1. Bundle.module crash (fixes #213 ): When the first tool event arrived,
ToolDisplayRegistry tried to load config via ClawdbotKitResources.bundle,
which used Bundle.module directly. In packaged apps, Bundle.module
couldn't find the resource bundle at the expected path, causing a
fatal assertion failure after ~40-80 minutes of runtime.
2. dyld crash (fixes #417 ): Swift 6.2 requires libswiftCompatibilitySpan.dylib
but SwiftPM doesn't bundle it automatically, causing immediate crash on
launch with "Library not loaded" error.
Changes:
- ClawdbotKitResources.swift: Replace direct Bundle.module access with a
safe locator that checks multiple paths and falls back gracefully
- package-mac-app.sh: Copy ClawdbotKit_ClawdbotKit.bundle to Resources
- package-mac-app.sh: Copy libswiftCompatibilitySpan.dylib from Xcode
toolchain to Frameworks
Tested on macOS 26.2 with Swift 6.2 - app launches and runs without crashes.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-08 15:51:07 +05:30
Peter Steinberger
8803787e48
chore: fallback providers status when gateway down
2026-01-08 11:05:03 +01:00
Peter Steinberger
a851444a1d
chore: expand provider details in status
2026-01-08 11:02:13 +01:00
Peter Steinberger
e8698fb9ef
chore: show dashboard url in status
2026-01-08 10:51:55 +01:00
Peter Steinberger
840c64084e
docs: refresh daemon troubleshooting guidance
2026-01-08 10:42:23 +01:00
Peter Steinberger
af2accf5e3
test: force bun fetch path in telegram send
2026-01-08 10:37:29 +01:00
Peter Steinberger
fa501e7730
fix: import path in doctor
2026-01-08 10:36:20 +01:00
Peter Steinberger
dab3b3442f
chore: bump version to 2026.1.8-1
2026-01-08 10:35:35 +01:00
Peter Steinberger
c410e2fa47
docs: expand Telegram setup notes
2026-01-08 09:34:05 +00:00
Peter Steinberger
2567281846
docs: document hook model overrides
2026-01-08 09:34:05 +00:00
Peter Steinberger
73988506fe
feat: allow hook model overrides
2026-01-08 09:33:42 +00:00
Peter Steinberger
e6f8e1e531
fix(telegram): restrict native fetch to bun
2026-01-08 10:31:16 +01:00
Peter Steinberger
4019fafc2c
chore: add spacing to status output
2026-01-08 10:30:57 +01:00
Peter Steinberger
21ef1761c6
chore: prompt to install or start gateway
2026-01-08 10:29:48 +01:00
Peter Steinberger
f6b1dc452a
chore: surface daemon status help
2026-01-08 10:29:44 +01:00
Peter Steinberger
a54442866a
chore: refine daemon runtime hint
2026-01-08 10:29:40 +01:00
Peter Steinberger
b80b3a38bf
chore: clarify telegram docs links
2026-01-08 10:29:36 +01:00
Peter Steinberger
1232eb6f5e
docs: prefer npm for global install
2026-01-08 10:07:13 +01:00
Peter Steinberger
712cfa94aa
docs: recommend global install and daemon onboarding
2026-01-08 09:59:10 +01:00
Peter Steinberger
bfd3eb46c7
docs: drop legacy telegram pairing mention
2026-01-08 09:57:03 +01:00
Peter Steinberger
bce3cc992f
fix: group /model list output
2026-01-08 09:44:59 +01:00
Peter Steinberger
6c9dd731a9
docs: add makeup alias
2026-01-08 09:39:20 +01:00
Peter Steinberger
0b611fc354
docs: add OAuth deep dive
2026-01-08 09:29:29 +01:00
Peter Steinberger
615991a5da
chore: include runtime markdown dependency
2026-01-08 09:25:11 +01:00
Peter Steinberger
e24b915820
docs: consolidate 2026.1.8 changelog
2026-01-08 09:11:28 +01:00
Peter Steinberger
908a7e4fcb
chore: sync ci tasks and relax telegram test timeouts
2026-01-08 09:09:33 +01:00
Peter Steinberger
2450af26ec
test: fix telegram fetch expectation
2026-01-08 07:51:58 +00:00
Peter Steinberger
34eb60e64e
docs(changelog): note docker cli init ( #463 )
2026-01-08 07:51:04 +00:00
Peter Steinberger
ae6a476ffc
docs: refresh model notes and stacks
2026-01-08 08:50:09 +01:00
Peter Steinberger
44441dd5d8
fix: clarify daemon status probe target
2026-01-08 08:50:09 +01:00
Pratham Dubey
742850adae
Docker: add init: true to clawdbot-cli service ( fixes #462 )
2026-01-08 07:50:06 +00:00
Peter Steinberger
f26b72514f
fix: update docker setup provider hints
2026-01-08 07:50:06 +00:00
Peter Steinberger
8930ec32cb
feat: add slack multi-account routing
2026-01-08 08:49:16 +01:00
Peter Steinberger
00c1403f5c
fix: unblock ci
2026-01-08 07:41:39 +00:00
Peter Steinberger
b341c9af6c
docs: expand gateway troubleshooting and faq
2026-01-08 08:40:05 +01:00
Peter Steinberger
1b2957d050
style: lint cleanup
2026-01-08 08:40:02 +01:00
Peter Steinberger
9a11325cc9
fix: daemon status guidance and telegram fetch
2026-01-08 08:39:55 +01:00
Peter Steinberger
5b397c0f15
style: tidy cli formatting
2026-01-08 08:26:40 +01:00
Peter Steinberger
c7cade5232
style: tidy gateway auth imports
2026-01-08 08:26:40 +01:00
Peter Steinberger
a676e16fbb
feat: expand daemon status diagnostics
2026-01-08 08:26:40 +01:00
Peter Steinberger
15dd6b65b6
docs: refine troubleshooting and faq guidance
2026-01-08 08:26:40 +01:00
Peter Steinberger
97cb469faf
chore(telegram): fix bun comment
2026-01-08 08:26:40 +01:00
Peter Steinberger
c241cb25bd
fix(telegram): gate native fetch to bun
2026-01-08 08:26:40 +01:00
Peter Steinberger
c1e97fab80
feat(cli): clarify agents list output
2026-01-08 08:26:40 +01:00
Peter Steinberger
16682531d1
docs: improve faq triage
2026-01-08 08:26:40 +01:00
Peter Steinberger
b367ed75bf
fix: wire gateway auth diagnostics into doctor
2026-01-08 08:26:40 +01:00
Peter Steinberger
629eec11cc
feat: improve agents cli automation
2026-01-08 08:26:40 +01:00
Peter Steinberger
5565dcd447
fix: tighten gateway bind auth diagnostics
2026-01-08 08:26:40 +01:00
Peter Steinberger
debfce5a77
test: add agent allowlist coverage
2026-01-08 07:14:08 +00:00
Peter Steinberger
2b29b86ab5
feat: add agents_list tool
2026-01-08 07:06:36 +00:00
Peter Steinberger
0ba72477de
feat: allow sessions_spawn cross-agent
2026-01-08 06:56:34 +00:00
Peter Steinberger
d1ceb3aa60
feat: add logs cli and restart hints
2026-01-08 06:56:34 +00:00
Peter Steinberger
c9e07616c7
refactor: centralize WhatsApp config merging
2026-01-08 06:56:34 +00:00
Peter Steinberger
e09d44e63a
test(cli): cover provider login/logout
2026-01-08 07:41:17 +01:00
Peter Steinberger
e83c6ac088
feat(cli): move provider login/logout
2026-01-08 07:40:08 +01:00
Peter Steinberger
903f5af59c
feat: add skills CLI
2026-01-08 07:23:05 +01:00
Peter Steinberger
d14e05ac45
refactor: centralize provider helpers
2026-01-08 07:20:10 +01:00
Peter Steinberger
6a81652ebf
fix(typing): keep tool-start ttl mode-safe ( #452 , thanks @thesash)
2026-01-08 06:18:35 +00:00
Sash Catanzarite
29c5ed54b2
feat(typing): trigger indicator on tool start events
...
Add signalToolStart to TypingSignaler and call it from onAgentEvent
when tools begin executing. This keeps the typing indicator visible
during long-running tool operations.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2026-01-08 06:18:35 +00:00
Peter Steinberger
19595a8f99
refactor: simplify cli commands
2026-01-08 07:16:12 +01:00
Peter Steinberger
79ac0af719
docs: clarify tailscale serve/funnel prerequisites
2026-01-08 07:16:12 +01:00
Peter Steinberger
09119690f5
docs: note WhatsApp onboarding config merge (thanks @RandyVentures, #451 )
2026-01-08 06:07:00 +00:00
Randy Torres
3c2e848a8e
Docker: fix WhatsApp config typing in onboarding + add tests
2026-01-08 06:05:56 +00:00
Peter Steinberger
8b7b86ada8
docs: keep steipete first
2026-01-08 07:02:17 +01:00
Peter Steinberger
257204f0cd
fix: remove swift/android build warnings
2026-01-08 05:57:27 +00:00
Peter Steinberger
367ee8ea7b
fix: stabilize telegram media group tests
2026-01-08 05:48:25 +00:00
Peter Steinberger
9b152ecb12
refactor: split providers commands
2026-01-08 06:46:40 +01:00
Peter Steinberger
da9bc80bf2
docs: refresh faq
2026-01-08 06:40:42 +01:00
Peter Steinberger
f818d03ebf
style: format taglines
2026-01-08 06:37:03 +01:00
Peter Steinberger
8a7862452e
feat: add CLI taglines
2026-01-08 06:37:03 +01:00
Peter Steinberger
5a1c418a7e
docs(changelog): note Antigravity 429 fix ( #454 , thanks @mukhtharcm)
2026-01-08 05:33:50 +00:00
mukhtharcm
80ca04af01
fix(antigravity): add CLIProxyAPI v6.6.89 compatibility to fix 429 errors
...
Port Antigravity payload enhancements from CLIProxyAPI v6.6.89:
- Add ANTIGRAVITY_SYSTEM_INSTRUCTION with agent identity/guidelines
- Inject systemInstruction with role 'user' for Antigravity requests
- Add requestType: 'agent' to wrapped request body
- Update userAgent to 'antigravity' for Antigravity requests
This fixes RESOURCE_EXHAUSTED (429) errors when using Antigravity.
Adapted from: https://github.com/NoeFabris/opencode-antigravity-auth/pull/137
Reference: https://github.com/router-for-me/CLIProxyAPI/commit/67985d8
2026-01-08 05:33:50 +00:00
Peter Steinberger
9eb71b1f88
docs: trim clawtributors overrides
2026-01-08 06:30:08 +01:00
Peter Steinberger
41f972c307
docs: infer logins from email local
2026-01-08 06:26:50 +01:00
Peter Steinberger
b50ea3ec59
feat: refine providers onboarding and cli
2026-01-08 06:25:21 +01:00
Peter Steinberger
f2557d5390
docs: refresh README links
2026-01-08 06:25:04 +01:00
Peter Steinberger
b0f4e0cfdc
docs: prioritize steipete in clawtributors
2026-01-08 06:22:34 +01:00
Peter Steinberger
6850e7b477
fix: align tailscale formatting
2026-01-08 05:21:20 +00:00
Peter Steinberger
7d492cb0ab
chore: sync app versions
2026-01-08 05:21:20 +00:00
Peter Steinberger
689875dfbb
docs: dedupe clawtributors names
2026-01-08 06:20:47 +01:00
Peter Steinberger
fe17743696
docs: keep full clawtributors list
2026-01-08 06:16:52 +01:00
Peter Steinberger
4b9e8b580a
fix: stabilize bridge loopback + discord client
2026-01-08 05:15:51 +00:00
Peter Steinberger
9fd2fd9362
chore: bump version to 2026.1.8
2026-01-08 05:15:51 +00:00
Peter Steinberger
b8a186fbd3
refactor: polish CLI theme + progress helpers
2026-01-08 06:02:36 +01:00
Peter Steinberger
e758cccd46
fix(discord): remove eventQueue client option
2026-01-08 06:00:20 +01:00
Peter Steinberger
5d21e8c891
chore(deps): update dependencies
2026-01-08 04:55:14 +00:00
Peter Steinberger
69ac4e072e
docs: refresh configuration examples
2026-01-08 05:53:28 +01:00
Dave Onkels
18c67ca831
docs: add comprehensive configuration examples guide
2026-01-08 05:53:28 +01:00
Peter Steinberger
3c20e72e33
docs: refresh clawtributors list
2026-01-08 05:48:29 +01:00
Peter Steinberger
b24c31e9f4
docs: add PR #448 to changelog
2026-01-08 05:45:46 +01:00
Sash Catanzarite
a6a550032a
fix(typing): refresh TTL on every startTypingLoop call
...
Previously, startTypingLoop would return early if the typing timer was
already running, which meant the TTL would never get refreshed during
long tool executions. This caused the typing indicator to stop after
2 minutes even if tools were still running.
Now we refresh the TTL at the start of startTypingLoop, before the
early-return checks. This keeps typing alive during long operations.
2026-01-08 05:45:46 +01:00
Peter Steinberger
dc3e3f27d4
style: apply lint fixes
2026-01-08 04:44:15 +00:00
Peter Steinberger
c2a6e04e06
docs: drop unknown clawtributors
2026-01-08 05:42:08 +01:00
Peter Steinberger
5b45a143a1
fix: stabilize media paths and logs
2026-01-08 04:41:01 +00:00
Peter Steinberger
9c9d191d6f
feat: improve cli setup flow
2026-01-08 05:33:54 +01:00
Peter Steinberger
6a684fdf6c
perf(ui): window chat + lazy tool output
2026-01-08 04:33:09 +00:00
Peter Steinberger
55c8b8182c
docs: add CLI color palette
2026-01-08 05:30:04 +01:00
Peter Steinberger
4ef2fd328d
test: cover multi-media prompt note
2026-01-08 05:30:04 +01:00
Peter Steinberger
b4f85968c9
fix(ui): cap tool output + sync config form
2026-01-08 04:24:58 +00:00
Peter Steinberger
b86a5c94ae
docs: fix clawtributors mapping
2026-01-08 05:23:01 +01:00
Peter Steinberger
3301f6902b
docs: add status deep tip
2026-01-08 05:20:39 +01:00
Peter Steinberger
3f11927cd9
chore: update ClawdBot CLI branding
2026-01-08 05:20:39 +01:00
Peter Steinberger
ab8db941d0
feat: expand inbound media notes
2026-01-08 05:20:39 +01:00
Peter Steinberger
2287d32263
feat: add model scan progress callbacks
2026-01-08 05:20:39 +01:00
Peter Steinberger
28cd2e4c24
feat: refresh CLI output styling and progress
2026-01-08 05:20:39 +01:00
Peter Steinberger
ab98ffe9fe
fix: force telegram native fetch under bun
2026-01-08 05:20:38 +01:00
Peter Steinberger
3178a3014d
feat(models): improve OpenRouter free scan
2026-01-08 05:20:19 +01:00
Peter Steinberger
6feeb651ee
fix(ci): normalize windows log whitespace
2026-01-08 03:59:52 +00:00
Peter Steinberger
d6863f8792
docs: fix clawtributors avatars
2026-01-08 04:59:37 +01:00
Peter Steinberger
609df06cb7
fix(ci): stabilize windows tests
2026-01-08 03:54:35 +00:00
Peter Steinberger
0bcf3f40f4
fix(ci): sync logs tail protocol artifacts
2026-01-08 03:49:19 +00:00
Peter Steinberger
64fc3c068d
feat: add gateway logs tab
2026-01-08 03:44:08 +00:00
Peter Steinberger
ad6095c807
fix(ci): normalize windows test output
2026-01-08 03:44:08 +00:00
Peter Steinberger
88a8767fa8
docs: refresh clawtributors grid
2026-01-08 04:41:05 +01:00
Peter Steinberger
60a59ed7eb
Merge PR #371
2026-01-08 04:37:44 +01:00
Peter Steinberger
0af3af34a1
fix(ci): stabilize windows bash tests
2026-01-08 03:29:05 +00:00
Marc Terns
871e888283
UI: improve skill install feedback
2026-01-07 21:21:32 -06:00
Peter Steinberger
35759e409a
fix(ci): harden windows tests
2026-01-08 03:19:43 +00:00
Peter Steinberger
15379dedf0
fix(telegram): voice-note tag defaults ( #188 , thanks @manmal)
2026-01-08 03:15:08 +00:00
Manuel Maly
2972fce02c
fix: flip audio default to file (backward compat)
...
- Default: sendAudio (file with metadata) - preserves old behavior
- Opt-in: [[audio_as_voice]] tag for voice bubble
This is non-breaking - existing integrations keep working.
2026-01-08 03:15:08 +00:00
Manuel Maly
262f8a8d45
feat(telegram): add [[audio_as_file]] tag support
...
Allow agents to specify audio mode via inline tag:
- Default: voice bubble (sendVoice)
- [[audio_as_file]]: audio file with metadata (sendAudio)
The tag is stripped from the final message text.
Example agent response:
Here's a podcast episode! [[audio_as_file]]
MEDIA:https://example.com/episode.mp3
2026-01-08 03:15:08 +00:00
Manuel Maly
5e1b91b32c
feat(telegram): wire audioAsVoice through bot.ts
...
- Add audioAsVoice option to ReplyPayload type
- Update bot.ts to use sendVoice by default for audio (voice bubble)
- When audioAsVoice is false, use sendAudio (file with metadata)
This allows agents to control voice vs file mode via ReplyPayload.
2026-01-08 03:15:08 +00:00
Manuel Maly
20fd9f7f67
feat(telegram): use sendVoice for audio with opt-out
...
Use Telegram's sendVoice API for audio files by default, displaying them
as round playable voice bubbles instead of file attachments.
Changes:
- Add asVoice option to TelegramSendOpts (defaults to true)
- When asVoice is true (default): use api.sendVoice() for voice bubbles
- When asVoice is false: use api.sendAudio() for traditional audio files
This gives callers control: voice messages for TTS/quick responses,
audio files for music/podcasts with metadata display.
2026-01-08 03:15:08 +00:00
Peter Steinberger
857a14b097
docs: document model params thinking
2026-01-08 04:13:34 +01:00
mneves75
f7b32195cb
feat(agent): auto-enable GLM-4.7 thinking mode
...
Add automatic thinking mode support for Z.AI GLM-4.x models:
- GLM-4.7: Preserved thinking (clear_thinking: false)
- GLM-4.5/4.6: Interleaved thinking (clear_thinking: true)
Uses Z.AI Cloud API format: thinking: { type: "enabled", clear_thinking: boolean }
Includes patches for pi-ai, pi-agent-core, and pi-coding-agent to pass
extraParams through the stream pipeline. User can override via config
or disable via --thinking off.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-08 04:10:56 +01:00
Peter Steinberger
3f93781b4b
refactor: polish providers cli status
2026-01-08 04:07:09 +01:00
Peter Steinberger
bf2daeb3ae
fix(discord): cap lines per message
2026-01-08 04:06:25 +01:00
Peter Steinberger
6e4174b5dc
fix(ci): stabilize windows paths
2026-01-08 03:03:03 +00:00
Peter Steinberger
7bddaa41ea
docs: update changelog for PR #442
2026-01-08 04:01:11 +01:00
DB Hurley
f6c6e79c86
docs(showcase): add Couch Potato Dev Mode by @davekiss
...
Website rebuild via Telegram while watching Netflix - Notion to Astro migration.
Source: https://x.com/davekiss/status/2008994096736817624
2026-01-08 03:59:41 +01:00
Peter Steinberger
e7dc1cc657
docs: link Anthropic and OpenAI
2026-01-08 03:57:50 +01:00
Peter Steinberger
4c2fdad67a
docs: clean up README links
2026-01-08 03:55:46 +01:00
Peter Steinberger
f9ba307f7f
docs: update changelog for #440
2026-01-08 03:51:16 +01:00
Peter Steinberger
ebff849722
chore(test): add ui test script
2026-01-08 03:50:11 +01:00
Peter Steinberger
8aa3efb9e8
refactor: tidy directive parsing + queue status
2026-01-08 03:47:52 +01:00
Peter Steinberger
e657e59b46
fix(ui): move focus toggle to top bar
2026-01-08 03:47:32 +01:00
Peter Steinberger
fbeb9e6775
fix(ci): stabilize windows tests
2026-01-08 02:44:19 +00:00
DB Hurley
f3f5e49d94
docs: redesign showcase page with card layout
...
- Convert flat bullet list to Mintlify CardGroup/Card components
- Add icons and visual hierarchy
- Include author attribution and tags
- Add 'Submit Your Project' section with Steps component
- Organize by category with emoji headers
Makes the showcase more visually appealing and easier to scan.
2026-01-08 02:41:45 +00:00
Peter Steinberger
780385e31f
fix(auto-reply): handle /think no-arg
2026-01-08 03:39:05 +01:00
Peter Steinberger
1e1293cc0a
style: swiftformat sweep
2026-01-08 02:36:29 +00:00
Peter Steinberger
7f0f82e869
ci: enforce lf line endings
2026-01-08 02:29:20 +00:00
Peter Steinberger
ad5c87c193
fix: relax slash command parsing
2026-01-08 03:24:18 +01:00
Lutro
36b443f4f3
Telegram: fix /think command to show current level when no arg
2026-01-08 03:24:18 +01:00
Peter Steinberger
0d34f330b8
refactor(browser): share chrome resolution helpers
2026-01-08 02:18:43 +00:00
Peter Steinberger
697f78e06b
docs: add changelog for PR #364
2026-01-08 03:09:31 +01:00
SirCrumpet
2381c19925
fix(macos): fix node bridge tunnel port override
2026-01-08 03:09:31 +01:00
Peter Steinberger
1e826862c3
fix(browser): support Windows Chrome detection (PR #439 , thanks @mrdbstn)
2026-01-08 02:08:59 +00:00
Mourad Boustani
7294ba037d
browser: add Windows Chrome executable detection
2026-01-08 02:06:59 +00:00
Peter Steinberger
92a62bc300
style: format providers docs output
2026-01-08 02:01:43 +00:00
Peter Steinberger
313925b357
fix: restore gateway connection details helper
2026-01-08 02:00:27 +00:00
Peter Steinberger
6f82ec7b83
style: colorize providers list
2026-01-08 02:59:15 +01:00
Peter Steinberger
440a5b82cf
fix(gateway): honor local auth password for CLI (PR #301 , thanks @jeffersonwarrior)
2026-01-08 02:59:06 +01:00
Peter Steinberger
cda050d050
chore: tweak providers docs link
2026-01-08 02:56:47 +01:00
Peter Steinberger
03cf7da2bd
feat: default providers list to usage
2026-01-08 02:56:47 +01:00
Peter Steinberger
8ce6f783f0
feat: add usage to providers list
2026-01-08 02:56:47 +01:00
Peter Steinberger
2f707ad4ad
style: format gateway call helpers
2026-01-08 01:53:28 +00:00
Peter Steinberger
6aa6c837e7
fix: add gateway connection debug output
2026-01-08 02:51:39 +01:00
Peter Steinberger
1ebde4dc24
style: align voice wake text utils format
2026-01-08 01:49:29 +00:00
Peter Steinberger
d9482719fb
refactor: share voice wake text utils
2026-01-08 01:46:25 +00:00
Peter Steinberger
c15a87e75f
ci: add windows checks
2026-01-08 01:46:25 +00:00
Peter Steinberger
3d0156890c
refactor: split port diagnostics helpers
2026-01-08 02:42:43 +01:00
Peter Steinberger
2fe3b483b1
fix: add gateway close context
2026-01-08 02:42:32 +01:00
Peter Steinberger
45deb50e1a
fix: voice wake logging privacy (PR #438 @xadenryan)
2026-01-08 01:37:42 +00:00
Xaden Ryan
a15943c809
Mac: format voice wake files
2026-01-08 01:36:16 +00:00
Xaden Ryan
da972b119d
Voice Wake: trigger on wake-word pause
2026-01-08 01:36:15 +00:00
Xaden Ryan
804177b1f5
Voice Wake: preserve mic selection across disconnects
...
- Keep the chosen mic label visible when it disconnects and show a disconnected hint while falling back to system default.
- Avoid clearing the preferred mic on device changes so it auto-restores when available.
- Add audio input change and default-input logs in voice wake runtime/tester/meter to debug routing.
2026-01-08 01:36:15 +00:00
Xaden Ryan
830613d9fa
Mac: keep voice wake tester local-only
...
Why: Start Test is a local verification tool, but it was forwarding transcripts to the gateway/chat, which confused users and made tests look like real commands.
What: stop forwarding from VoiceWakeTester and clarify in docs that the tester does not send to the gateway.
2026-01-08 01:36:15 +00:00
Xaden Ryan
0f1a262ae1
Mac: stabilize voice wake test flow
...
Why: voice wake tests often delivered partial/final transcripts without reliable word timings, so trigger matching failed, timeouts overwrote detections, and test runs/mic capture kept running after UI changes.
What: add text-only/prefix fallback and silence-based detection in the test flow, stop/clean up any prior test, cancel timeout on detection/stop, and tear down meter/test when the Voice Wake tab is inactive. Runtime detection now falls back on final text-only matches when timing is missing. UI state now reflects finalizing and prevents hanging tests.
2026-01-08 01:36:15 +00:00
Peter Steinberger
2140caaf67
fix: telegram html formatting ( #435 , thanks @RandyVentures)
2026-01-08 02:34:32 +01:00
Peter Steinberger
61f5ed8bb7
fix: improve gateway diagnostics
2026-01-08 02:29:32 +01:00
Peter Steinberger
02ad9eccad
fix: resolve CI asset/protocol drift
2026-01-08 01:25:17 +00:00
Peter Steinberger
cad853b547
refactor: rebuild agent system prompt
2026-01-08 02:20:30 +01:00
Peter Steinberger
e9346e6cf0
fix(ui): add Overview connect button ( #385 , thanks @wizaj)
2026-01-08 01:12:56 +00:00
Peter Steinberger
a450390f7c
refactor: share reply payload threading/dedupe
2026-01-08 01:09:23 +00:00
Peter Steinberger
5e01e64cf3
test: split live tests into separate config
2026-01-08 02:00:11 +01:00
Peter Steinberger
28e725215d
docs: refresh imessage cliPath note
2026-01-08 01:55:59 +01:00
Peter Steinberger
3f1807b6cb
fix: restore doctor sandbox warnings
2026-01-08 01:55:59 +01:00
Peter Steinberger
05b8679c8b
feat: add providers CLI and multi-account onboarding
2026-01-08 01:55:59 +01:00
Peter Steinberger
6b3ed40d0f
feat: format cron list output
2026-01-08 01:52:33 +01:00
Peter Steinberger
bbf45a0264
feat: add cron cli aliases
2026-01-08 01:52:33 +01:00
Peter Steinberger
2ca936ee98
refactor: split doctor into modules
2026-01-08 01:52:33 +01:00
Peter Steinberger
8b9f0c4e2a
refactor: extract doctor state integrity
2026-01-08 01:52:33 +01:00
Peter Steinberger
ee28b20419
fix: harden doctor state integrity checks
2026-01-08 01:52:33 +01:00
Peter Steinberger
17d052bcda
fix: polish reply threading + tool dedupe (thanks @mneves75) ( #326 )
2026-01-08 00:50:47 +00:00
mneves75
33e2d53be3
feat(telegram): wire replyToMode config, add forum topic support, fix messaging tool duplicates
...
Changes:
- Default replyToMode from "off" to "first" for better threading UX
- Add messageThreadId and replyToMessageId params for forum topic support
- Add messaging tool duplicate detection to suppress redundant block replies
- Add sendMessage action to telegram tool schema
- Add @grammyjs/types devDependency for proper TypeScript typing
- Remove @ts-nocheck and fix all type errors in send.ts
- Add comprehensive docs/telegram.md documentation
- Add PR-326-REVIEW.md with John Carmack-level code review
Test coverage:
- normalizeTextForComparison: 5 cases
- isMessagingToolDuplicate: 7 cases
- sendMessageTelegram thread params: 5 cases
- handleTelegramAction sendMessage: 4 cases
- Forum topic isolation: 4 cases
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-08 00:50:47 +00:00
Peter Steinberger
6cd32ec7f6
test: stabilize cron auto-run test
2026-01-08 01:38:48 +01:00
Peter Steinberger
56310bad44
docs: add gateway self-update prompt guidance
2026-01-08 01:37:02 +01:00
Peter Steinberger
1bc4e1ae88
fix: satisfy lint for slow listener logs
2026-01-08 01:32:52 +01:00
Peter Steinberger
71c31266a1
feat: add gateway config/update restart flow
2026-01-08 01:30:02 +01:00
Peter Steinberger
3398fc3820
fix: format slow listener logs
2026-01-08 01:28:21 +01:00
Peter Steinberger
67213e0fc6
refactor(nodes): share run parsing helpers
2026-01-08 00:24:11 +00:00
Peter Steinberger
e35845dd49
fix(nodes-tool): add run invoke timeout (PR #433 , thanks @sircrumpet)
2026-01-08 00:18:06 +00:00
SirCrumpet
b34fc0aaed
fix(nodes-tool): add missing 'run' action to execute commands on paired nodes with optional parameters as defined in CLI
2026-01-08 00:18:06 +00:00
Peter Steinberger
145fe1cec7
refactor(sandbox): unify scope + per-agent overrides
2026-01-08 01:17:55 +01:00
Peter Steinberger
ad8b7c739b
docs: tighten onboarding pairing + UI fallback
2026-01-08 00:13:10 +00:00
Peter Steinberger
5c38d17c4b
refactor: dedupe embedded prompt append
2026-01-08 00:08:27 +00:00
Peter Steinberger
4f58e6aa7c
feat(sandbox): per-agent docker overrides
2026-01-08 01:06:14 +01:00
Peter Steinberger
badc1602c8
fix: avoid duplicate prompt context
2026-01-08 00:01:40 +00:00
Peter Steinberger
8b4bcc6b7a
refactor: centralize message provider normalization
2026-01-07 23:53:38 +00:00
Peter Steinberger
b03a1ad814
feat(sandbox): per-agent docker setupCommand
2026-01-08 00:52:22 +01:00
Peter Steinberger
6143ad13be
docs: clarify hook delivery routing
2026-01-07 23:40:29 +00:00
Peter Steinberger
da5481e878
fix: route agent messageProvider from resolved provider ( #389 , thanks @imfing)
2026-01-07 23:34:43 +00:00
Peter Steinberger
11006d1245
refactor: share backoff helpers
2026-01-07 23:22:12 +00:00
Peter Steinberger
c96f669f2f
fix: reconnect signal sse monitor
2026-01-07 23:15:55 +00:00
Quentin
80f31cd75e
fix: Signal SSE monitor reconnects on connection drop
...
- Wrap streamSignalEvents in reconnection loop
- Exponential backoff: 1s → 30s max
- Log reconnection attempts
- Respect abortSignal for clean shutdown
Fixes #425
2026-01-07 23:15:55 +00:00
Peter Steinberger
c21ba9e876
Merge pull request #380 from pasogott/feature/per-agent-sandbox-tools
...
feat: add per-agent sandbox and tool configuration
2026-01-07 23:13:15 +00:00
Peter Steinberger
abf43f6db1
Merge remote-tracking branch 'origin/main' into feature/per-agent-sandbox-tools
2026-01-08 00:13:03 +01:00
Peter Steinberger
b2de667b11
fix: persist topic session files
2026-01-07 22:56:50 +00:00
Peter Steinberger
67d1f61872
fix: harden session caching and topic transcripts
2026-01-07 22:51:26 +00:00
hsrvc
8da4f259dd
Implement Phase 2: Topic-level message history isolation for multi-topic Telegram support
...
Add topic-specific session file isolation to fix root cause of Gemini turn validation errors.
Each Telegram topic now maintains its own conversation history file, eliminating race
conditions and message corruption during concurrent topic processing.
Changes:
1. Enhanced resolveSessionTranscriptPath() to support optional topicId parameter
- Topic ID (Telegram messageThreadId) now incorporated into session filename
- Format: sessionId.jsonl (direct chats) vs sessionId-topic-{topicId}.jsonl (topics)
- Backward compatible: topicId is optional
2. Updated reply.ts to pass MessageThreadId to session file resolution
- ctx.MessageThreadId now flows through to resolveSessionTranscriptPath()
- Automatically provides topic context for each incoming message
3. Automatic propagation through entire system
- sessionFile parameter automatically carries topic-specific path through:
- FollowupRun object (queued runs)
- runEmbeddedPiAgent() calls
- compactEmbeddedPiSession() calls
- SessionManager lifecycle (load, read, write operations)
Benefits:
✓ Complete elimination of shared .jsonl race conditions
✓ Each topic's conversation history independently cached
✓ SessionManager instances operate on isolated files
✓ No concurrent mutations of the same message history
✓ Maintains full Phase 1 turn validation as safety layer
Testing:
✓ Build succeeds with no TypeScript errors
✓ Backward compatible with non-topic sessions (direct messages)
✓ Topic ID properly extracted from Telegram messageThreadId
Expected impact:
- Gemini "function call turn" errors eliminated (root cause fixed)
- Message history corruption prevented across all topics
- Improved stability in multi-topic scenarios
- Each topic maintains independent conversation state
This completes the two-phase fix:
- Phase 1 (previous): Turn validation to suppress errors
- Phase 2 (current): Topic isolation to fix root cause
🤖 Generated with Claude Code
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com >
2026-01-07 22:51:26 +00:00
hsrvc
79d8384d26
Fix Gemini API function call turn ordering errors in multi-topic conversations
...
Add conversation turn validation to prevent "400 function call turn comes immediately
after a user turn or after a function response turn" errors when using Gemini models
in multi-topic/multi-channel Telegram conversations.
Changes:
1. Added validateGeminiTurns() function to detect and fix turn sequence violations
- Merges consecutive assistant messages into single message
- Preserves metadata (usage, stopReason, errorMessage) from later message
- Handles edge cases: empty arrays, single messages, tool results
2. Applied validation at two critical message points in pi-embedded-runner.ts:
- Compaction flow (lines 674-678): Before compact() call
- Normal agent run (lines 989-993): Before replaceMessages() call
3. Comprehensive test coverage with 8 test cases:
- Empty arrays and single messages
- Alternating user/assistant sequences (no change needed)
- Consecutive assistant message merging with metadata preservation
- Tool result message handling
- Real-world corrupted sequences with mixed content types
Testing:
✓ All 7 test cases pass (pi-embedded-helpers.test.ts)
✓ Full build succeeds with no TypeScript errors
✓ No breaking changes to existing functionality
This is Phase 1 of a two-phase fix:
- Phase 1 (completed): Turn validation to suppress Gemini errors
- Phase 2 (pending): Root cause analysis of why history gets corrupted with topic switching
🤖 Generated with Claude Code
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com >
2026-01-07 22:51:26 +00:00
hsrvc
5400766b3c
Optimize multi-topic performance with TTL-based session caching
...
Add in-memory TTL-based caching to reduce file I/O bottlenecks in message processing:
1. Session Store Cache (45s TTL)
- Cache entire sessions.json in memory between reads
- Invalidate on writes to ensure consistency
- Reduces disk I/O by ~70-80% for active conversations
- Controlled via CLAWDBOT_SESSION_CACHE_TTL_MS env var
2. SessionManager Pre-warming
- Pre-warm .jsonl conversation history files into OS page cache
- Brings SessionManager.open() from 10-50ms to 1-5ms
- Tracks recently accessed sessions to avoid redundant warming
3. Configuration Support
- Add SessionCacheConfig type with cache control options
- Enable/disable caching and set custom TTL values
4. Testing
- Comprehensive unit tests for cache functionality
- Test cache hits, TTL expiration, write invalidation
- Verify environment variable overrides
This fixes the slowness reported with multiple Telegram topics/channels.
Expected performance gains:
- Session store loads: 99% faster (1-5ms → 0.01ms)
- Overall message latency: 60-80% reduction for multi-topic workloads
- Memory overhead: < 1MB for typical deployments
- Disk I/O: 70-80% reduction in file reads
Rollback: Set CLAWDBOT_SESSION_CACHE_TTL_MS=0 to disable caching
🤖 Generated with Claude Code
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com >
2026-01-07 22:51:26 +00:00
Peter Steinberger
5b97feaaa5
fix: scope process sessions per agent
2026-01-07 23:35:04 +01:00
Peter Steinberger
48a333d9d5
fix: initialize bash warnings before use
2026-01-07 23:26:26 +01:00
Peter Steinberger
fd87290f6f
docs: add pasogott to clawtributors
2026-01-07 23:24:40 +01:00
Peter Steinberger
090390cd77
fix: override agent tools + sync bash without process
2026-01-07 23:24:12 +01:00
Peter Steinberger
434c25331e
refactor: centralize typing mode signals
2026-01-07 22:18:11 +00:00
Peter Steinberger
bac1608933
feat: add typing mode controls
2026-01-07 21:58:54 +00:00
Peter Steinberger
430662f6ef
docs: update changelog
2026-01-07 22:35:25 +01:00
Peter Steinberger
52e3d28ef4
feat: scan extra gateways in doctor
2026-01-07 22:31:08 +01:00
Peter Steinberger
e70ff671f5
chore(cli): polish provider onboarding notes
2026-01-07 22:22:21 +01:00
Peter Steinberger
322c5dd936
refactor(telegram): extract runner config and key helper
2026-01-07 22:22:21 +01:00
Peter Steinberger
98d4e8034d
refactor(agent): centralize google turn-order fixup
2026-01-07 22:08:22 +01:00
Peter Steinberger
068b1872fa
fix(telegram): sequence runner updates and cap concurrency
2026-01-07 22:08:20 +01:00
Peter Steinberger
315b0938e3
fix(types): avoid typebox schema mismatch in embedded runner
2026-01-07 22:08:20 +01:00
Muhammed Mukhthar CM
ee99311130
test(telegram): mock grammyjs/runner for fast tests
2026-01-07 22:08:20 +01:00
Muhammed Mukhthar CM
1a41fecf67
feat(telegram): use grammyjs/runner for concurrent update processing
...
Previously, grammY's default bot.start() processed updates sequentially,
blocking all Telegram messages while one was being handled. This made
maxConcurrent settings ineffective for Telegram.
Now uses @grammyjs/runner which processes updates concurrently, matching
the behavior of Discord (Promise.all) and WhatsApp (fire-and-forget).
Benefits:
- Ack reactions (👀 ) appear immediately, not after queue clears
- Multiple chats can be processed in parallel
- maxConcurrent setting now works correctly for Telegram
- Long-running tool calls no longer block other conversations
2026-01-07 22:08:20 +01:00
Josh Palmer
febd2010af
Docs: add showcase projects changelog
2026-01-07 21:04:23 +00:00
Josh Palmer
4026f3c95f
Docs: drop showcase changelog notes
2026-01-07 21:04:23 +00:00
Josh Palmer
c0cfa8e737
Docs: fix nix-clawdbot link
2026-01-07 21:04:23 +00:00
Josh Palmer
4d7258a9ca
Docs: note showcase reorg in changelog
2026-01-07 21:04:23 +00:00
Josh Palmer
664a57b0bc
Docs: fold projects into showcase sections
2026-01-07 21:04:23 +00:00
Peter Steinberger
9bd439892f
refactor: centralize unhandled rejection setup
2026-01-07 20:59:49 +00:00
Peter Steinberger
fd3babc626
fix: keep bonjour rejection handler through shutdown
2026-01-07 20:54:40 +00:00
Emanuel Stadler
9056e0edbb
Bonjour: ignore ciao cancellation rejections
2026-01-07 20:51:54 +00:00
Peter Steinberger
d6608196d4
chore: sort google helper test imports
2026-01-07 21:49:40 +01:00
Jonáš Jančařík
974619d285
fix(google): repair Cloud Code Assist tool-call ordering ( #406 )
2026-01-07 21:49:40 +01:00
Josh Palmer
d4198bbce4
Docs: use real roborock/padel screenshots
2026-01-07 20:43:06 +00:00
Josh Palmer
f3d395f4bf
Docs: note showcase updates in changelog
2026-01-07 20:43:06 +00:00
Josh Palmer
7905d1d92f
Docs: add Clawdhub showcase previews
2026-01-07 20:43:06 +00:00
Peter Steinberger
9859ad3176
style(macos): swiftformat + swiftlint cleanup
2026-01-07 20:41:41 +00:00
Peter Steinberger
7ce1f635cd
fix(commands): harden model alias parsing
2026-01-07 20:41:41 +00:00
Azade
bb29a3ee3f
fix: filter reserved commands from model aliases + add tests
2026-01-07 20:41:41 +00:00
Azade
e41540e4ff
feat(commands): add dynamic /<alias> model switching
2026-01-07 20:41:41 +00:00
Peter Steinberger
391a3d6eaf
feat: add daemon service management
2026-01-07 21:37:13 +01:00
Peter Steinberger
7aeb6d5921
fix(wizard): keep WhatsApp config setters typed
2026-01-07 20:32:15 +00:00
Peter Steinberger
2b6adc9e60
test(macos): make env/defaults helper Swift 6-safe
2026-01-07 20:32:15 +00:00
Peter Steinberger
eb5f0b73a9
refactor(macos): inject main-actor services into node runtime
2026-01-07 20:32:15 +00:00
Peter Steinberger
5a09926126
test(macos): isolate env + defaults
2026-01-07 20:32:15 +00:00
Peter Steinberger
d45fcc44da
refactor(macos): move launchctl + plist snapshot
2026-01-07 20:32:15 +00:00
Peter Steinberger
54960d1380
fix: refine whatsapp personal phone onboarding
2026-01-07 20:49:58 +01:00
Peter Steinberger
ef644b8369
fix: suppress whatsapp pairing in self-phone mode
2026-01-07 20:49:58 +01:00
Peter Steinberger
8c48220a60
docs: require tmux for 1password skill
2026-01-07 20:49:58 +01:00
Peter Steinberger
f10d1fd9ac
fix(macos): stabilize node runtime + menu sessions
2026-01-07 19:42:49 +00:00
Peter Steinberger
8913bfbcd5
refactor(macos): drop duplicate AnyCodable
2026-01-07 19:42:49 +00:00
Peter Steinberger
e4f62c5b0c
fix(macos): make launchd enable idempotent
2026-01-07 19:42:49 +00:00
gupsammy
c572859c86
fix(macos): prevent gateway launchd race condition on startup ( #306 )
2026-01-07 19:42:49 +00:00
Peter Steinberger
0e9837183d
docs: expand per-agent sandbox profiles
2026-01-07 20:31:23 +01:00
Peter Steinberger
9980f20218
fix(ui): scrub auth params
2026-01-07 20:20:32 +01:00
Palash Oswal
765d7771c8
UI: add reconnect + URL password for gateway auth
2026-01-07 20:18:24 +01:00
Peter Steinberger
b253b9c3a0
docs: clarify landing note
2026-01-07 20:16:57 +01:00
Peter Steinberger
797b70e854
Merge remote-tracking branch 'origin/main'
2026-01-07 20:11:32 +01:00
Peter Steinberger
d81cb886ce
fix: polish thread session routing
2026-01-07 20:09:57 +01:00
Peter Steinberger
3842a6ae6e
docs: credit PR #395 contributor
2026-01-07 19:08:13 +00:00
Peter Steinberger
43c7f5036a
fix(tools): keep tool errors concise
2026-01-07 19:08:13 +00:00
alejandro maza
579828b2d5
Handle 413 context overflow errors gracefully
...
When the conversation context exceeds the model's limit, instead of
throwing an opaque error or returning raw JSON, we now:
1. Detect context overflow errors (413, request_too_large, etc.)
2. Return a user-friendly message explaining the issue
3. Suggest using /new or /reset to start fresh
This prevents the assistant from becoming completely unresponsive
when context grows too large (e.g., from many screenshots or long
tool outputs).
Addresses issue #394
2026-01-07 19:08:13 +00:00
Shadow
d4bba937a0
Threads: add Slack/Discord thread sessions
2026-01-07 20:05:58 +01:00
Peter Steinberger
cb9f8146c4
refactor: centralize thread helpers
2026-01-07 20:01:19 +01:00
Peter Steinberger
42b637bbc8
test: cover thread session routing
2026-01-07 19:50:17 +01:00
Peter Steinberger
8584bcd2f6
Merge remote-tracking branch 'origin/main'
2026-01-07 19:44:26 +01:00
Peter Steinberger
0d021391a9
fix: scope thread sessions and discord starter fetch
2026-01-07 19:42:50 +01:00
Peter Steinberger
0603aaaf7a
docs(changelog): note status model override
2026-01-07 18:38:58 +00:00
Peter Steinberger
aba4695cd1
test(status): cover model override display
2026-01-07 18:38:55 +00:00
Azade
2b09cb3d9f
fix(status): show configured model instead of last-run model
2026-01-07 18:37:42 +00:00
Peter Steinberger
9be7e1b332
fix(ClawdbotKit): bundle tool-display.json
2026-01-07 18:30:45 +00:00
Shadow
7e5cef29a0
Threads: add Slack/Discord thread sessions
2026-01-07 19:30:30 +01:00
Peter Steinberger
422477499c
fix: clamp cron timer delay
2026-01-07 19:25:18 +01:00
Emanuel Stadler
7f4248e5e0
Cron: clamp timer to avoid TimeoutOverflowWarning
2026-01-07 19:25:18 +01:00
Peter Steinberger
187f3ed480
docs: tidy contributors section
2026-01-07 18:24:09 +00:00
Peter Steinberger
a882beb35e
docs: credit @carlulsoe
...
Co-authored-by: Carl Ulsøe Christensen <carlulsoe@users.noreply.github.com >
2026-01-07 18:21:25 +00:00
Peter Steinberger
31f478aed3
docs: add changelog entry for PR #403
2026-01-07 19:20:22 +01:00
François Catuhe
04ae9bdbef
fix(android): rotate camera photos by EXIF orientation
2026-01-07 19:19:07 +01:00
Peter Steinberger
e0a30c4abc
docs: note bootstrap pruning guard (PR #381 )
2026-01-07 18:18:18 +00:00
Max Sumrall
5ddf9b2c65
fix(agent): protect bootstrap prefix from pruning
2026-01-07 18:17:18 +00:00
Peter Steinberger
bf00b733c9
docs(changelog): thank @Syhids for #410
2026-01-07 18:10:08 +00:00
Manuel Jiménez Torres
6de2a1d958
fix(android): fix build error
2026-01-07 18:09:31 +00:00
Peter Steinberger
ec0ae6fb85
fix(android): drop broken apk output renaming
2026-01-07 18:04:37 +00:00
Peter Steinberger
d0e60d402b
ci(android): avoid interactive license prompt
2026-01-07 17:57:32 +00:00
Peter Steinberger
c3b3f571e9
fix(tools): finalize Vertex schema flattening ( #409 )
2026-01-07 17:54:19 +00:00
Kit
a2b3f2c18a
fix(tools): flatten nested anyOf schemas for Vertex AI compatibility
...
Claude API on Vertex AI (Cloud Code Assist) rejects nested anyOf schemas
as invalid JSON Schema draft 2020-12. This change:
- Add tryFlattenLiteralAnyOf() to convert Type.Union([Type.Literal(...)])
patterns from anyOf with const values to flat enum arrays
- Update stringEnum helper in bash-tools to use Type.Unsafe with flat enum
- Flatten BrowserActSchema from discriminated union to single object
- Simplify TelegramToolSchema to use Type.String() for IDs
Fixes 400 errors when sending messages through WhatsApp/Telegram providers.
2026-01-07 17:51:16 +00:00
Peter Steinberger
de55f4e111
fix: add provider retry policy
2026-01-07 17:48:19 +00:00
Peter Steinberger
8db522d6a6
docs: describe models cli output
2026-01-07 18:23:07 +01:00
Peter Steinberger
0074b8e4f8
docs: explain clawdbot model selection
2026-01-07 18:20:02 +01:00
Peter Steinberger
62f3fded3d
docs: add compaction concept
2026-01-07 18:12:17 +01:00
Peter Steinberger
09357b70ac
docs: add session pruning docs
2026-01-07 18:03:35 +01:00
Max Sumrall
f9118bd21c
test(agent): cover context pruning
2026-01-07 18:00:14 +01:00
Max Sumrall
eeaa6ea46f
feat(agent): opt-in tool-result context pruning
2026-01-07 18:00:14 +01:00
Peter Steinberger
937e0265a3
fix: preserve sessionKey for agent runs
2026-01-07 17:53:59 +01:00
Peter Steinberger
9eb5d01367
docs: document streaming + chunking
2026-01-07 17:31:40 +01:00
Peter Steinberger
c1036cace7
docs: explain why Twilio is unsupported
2026-01-07 17:31:40 +01:00
Peter Steinberger
573fe74a9c
fix: per-agent sandbox overrides
2026-01-07 17:31:40 +01:00
sheeek
e13225c9d1
docs: add comprehensive guide for multi-agent sandbox and tools
...
Add docs/multi-agent-sandbox-tools.md covering:
- Configuration examples (personal + restricted, work agents)
- Different sandbox modes per agent
- Tool restriction patterns (read-only, safe execution, communication-only)
- Configuration precedence rules
- Migration guide from single-agent setups
- Troubleshooting tips
Add PR_SUMMARY.md for upstream submission with:
- Feature overview and use cases
- Implementation details (49 LoC across 5 files)
- Test coverage (18 new tests, all existing tests pass)
- Backward compatibility confirmation
- Migration examples
---
Kudos to Eula, the beautiful and selfless family owl 🦉
This feature was developed to enable safe, restricted access
for family group chats while maintaining full access for
the personal assistant. Schuhu!
2026-01-07 17:31:40 +01:00
sheeek
bf9c0c0b5c
docs(multi-agent): add section on per-agent sandbox and tools
...
Add new section explaining:
- How to configure per-agent sandbox settings
- How to configure per-agent tool restrictions
- Benefits (security isolation, resource control, flexible policies)
- Link to detailed guide
Include example config showing personal assistant (no sandbox)
vs family bot (sandboxed with read-only tools).
2026-01-07 17:31:40 +01:00
sheeek
16ebdd7544
docs(config): document routing.agents sandbox and tools fields
...
Update routing.agents section:
- Add sandbox field documentation (mode, scope, workspaceRoot)
- Add tools field documentation (allow, deny)
- Note that agent-specific settings override global config
2026-01-07 17:31:40 +01:00
sheeek
22db83a04c
test(tools): add tests for agent-specific tool filtering
...
Add 5 tests for agent-specific tool restrictions:
- Apply global tool policy when no agent-specific policy exists
- Apply agent-specific tool policy
- Allow different tool policies for different agents
- Combine global and agent-specific deny lists
- Work with sandbox tools filtering
All tests pass.
2026-01-07 17:31:40 +01:00
sheeek
1178c65226
test(sandbox): add tests for agent-specific sandbox override
...
Add 6 tests for agent-specific sandbox configuration:
- Use global sandbox config when no agent-specific config exists
- Override with agent-specific sandbox mode 'off'
- Use agent-specific sandbox mode 'all'
- Use agent-specific scope
- Use agent-specific workspaceRoot
- Prefer agent config over global for multiple agents
All tests pass.
2026-01-07 17:31:40 +01:00
sheeek
5a51a9b0d6
test(agent-scope): add tests for sandbox and tools config resolution
...
Add 7 tests for resolveAgentConfig():
- Return undefined when no agents config exists
- Return undefined when agent id does not exist
- Return basic agent config (name, workspace, agentDir, model)
- Return agent-specific sandbox config
- Return agent-specific tools config
- Return both sandbox and tools config
- Normalize agent id
All tests pass.
2026-01-07 17:31:40 +01:00
sheeek
a8c153ec78
feat(tools): add agent-specific tool filtering
...
Add tool filtering layer for per-agent restrictions:
- Extract agentId from sessionKey
- Load routing.agents[agentId].tools via resolveAgentConfig()
- Apply agent-specific allow/deny before sandbox filtering
Filtering order:
1. Global (agent.tools)
2. Agent-specific (routing.agents[id].tools) ← NEW
3. Sandbox (agent.sandbox.tools)
4. Subagent policy
This enables different tool permissions per agent
(e.g., main: all tools, family: read only).
2026-01-07 17:31:40 +01:00
sheeek
a375a81919
feat(sandbox): support agent-specific sandbox config override
...
Changes to defaultSandboxConfig():
- Add optional agentId parameter
- Load routing.agents[agentId].sandbox if available
- Prefer agent-specific settings over global agent.sandbox
Update callers in resolveSandboxContext() and
ensureSandboxWorkspaceForSession() to extract agentId
from sessionKey and pass it to defaultSandboxConfig().
This enables per-agent sandbox modes (e.g., main: off, family: all).
2026-01-07 17:31:40 +01:00
sheeek
ebd96f2971
feat(agent-scope): extend resolveAgentConfig to return sandbox and tools
...
Return newly added fields from routing.agents config:
- sandbox: agent-specific sandbox configuration
- tools: agent-specific tool restrictions
This makes per-agent sandbox and tool settings accessible
to other parts of the codebase.
2026-01-07 17:31:40 +01:00
sheeek
90cdccee1e
feat(config): add Zod validation for routing.agents sandbox and tools
...
Validate per-agent sandbox config:
- mode: 'off' | 'non-main' | 'all'
- scope: 'session' | 'agent' | 'shared'
- perSession: boolean
- workspaceRoot: string
Validate per-agent tools config:
- allow: string[]
- deny: string[]
2026-01-07 17:31:40 +01:00
sheeek
c115918c97
feat(types): add sandbox and tools fields to routing.agents
...
Add optional per-agent configuration:
- sandbox: { mode, scope, perSession, workspaceRoot }
- tools: { allow, deny }
These will allow agents to override global agent.sandbox and
agent.tools settings.
2026-01-07 17:31:40 +01:00
Peter Steinberger
d81627da72
docs: document streaming + chunking
2026-01-07 17:15:53 +01:00
Peter Steinberger
77024cf776
fix(agents): make sessions_spawn non-blocking
2026-01-07 16:14:25 +00:00
Peter Steinberger
e3e0980b27
docs: explain why Twilio is unsupported
2026-01-07 16:54:37 +01:00
Peter Steinberger
28b8349bd5
docs: add fcatuhe to clawtributors
2026-01-07 15:39:26 +00:00
Peter Steinberger
b83570c5e7
fix(android): restore tool display config
2026-01-07 15:38:10 +00:00
Peter Steinberger
1c548bb25c
Merge pull request #402 from fcatuhe/android/version-and-apk-naming
...
android: set version 2026.1.5, add APK naming convention
2026-01-07 15:37:34 +00:00
Peter Steinberger
491a6e02fb
Merge branch 'main' into pr-402
2026-01-07 15:36:34 +00:00
Peter Steinberger
2c4c5907bb
docs: add 2026.1.7 changelog
2026-01-07 15:30:08 +00:00
Peter Steinberger
8804a80111
chore: bump version 2026.1.7
2026-01-07 15:30:05 +00:00
Peter Steinberger
7f6b98929f
build(android): bump 2026.1.7 + apk naming
2026-01-07 15:30:03 +00:00
François Catuhe
d3ae92aaa8
android: set version 2026.1.5, add APK naming convention, remove duplicate asset
2026-01-07 16:05:26 +01:00
Peter Steinberger
6352f33799
fix: per-agent sandbox overrides
2026-01-07 12:24:12 +01:00
Peter Steinberger
53c037a197
style(telegram): format activation log
2026-01-07 11:21:12 +00:00
Peter Steinberger
4bd7ca305a
fix(telegram): honor session activation overrides
2026-01-07 11:19:09 +00:00
Peter Steinberger
3cbced01fa
test(telegram): cover routed activation
2026-01-07 11:17:12 +00:00
Julian Engel
45dc4ef3cf
fix(telegram): make /activation command work by checking session state
...
The /activation command now properly controls group activation mode:
- Loads session state before filtering messages
- Checks groupActivation field (from /activation command)
- Falls back to config telegram.groups requireMention setting
Previously, the bot only checked config and ignored session state,
making the /activation command appear to work but have no effect.
Changes:
- Add resolveGroupActivation() to check session before config
- Import loadSessionStore to read session state early
- Pass messageThreadId to support forum topics correctly
2026-01-07 11:16:35 +00:00
Julian Engel
1601be5480
docs(telegram): clarify group activation and access control
...
- Add detailed explanation of group activation modes (requireMention)
- Document /activation command (mention vs always)
- Clarify two-level access control: group allowlist + sender policy
- Add troubleshooting section for common issues
- Explain that telegram.groups creates an allowlist
- Add instructions for getting group chat ID
Fixes confusion around group setup where /activation command
updates session state but doesn't persist or take effect.
2026-01-07 11:13:13 +00:00
sheeek
1143b3eff0
docs: add comprehensive guide for multi-agent sandbox and tools
...
Add docs/multi-agent-sandbox-tools.md covering:
- Configuration examples (personal + restricted, work agents)
- Different sandbox modes per agent
- Tool restriction patterns (read-only, safe execution, communication-only)
- Configuration precedence rules
- Migration guide from single-agent setups
- Troubleshooting tips
Add PR_SUMMARY.md for upstream submission with:
- Feature overview and use cases
- Implementation details (49 LoC across 5 files)
- Test coverage (18 new tests, all existing tests pass)
- Backward compatibility confirmation
- Migration examples
---
Kudos to Eula, the beautiful and selfless family owl 🦉
This feature was developed to enable safe, restricted access
for family group chats while maintaining full access for
the personal assistant. Schuhu!
2026-01-07 12:09:12 +01:00
sheeek
dad1a99a20
docs(multi-agent): add section on per-agent sandbox and tools
...
Add new section explaining:
- How to configure per-agent sandbox settings
- How to configure per-agent tool restrictions
- Benefits (security isolation, resource control, flexible policies)
- Link to detailed guide
Include example config showing personal assistant (no sandbox)
vs family bot (sandboxed with read-only tools).
2026-01-07 12:09:12 +01:00
sheeek
bf4b89e873
docs(config): document routing.agents sandbox and tools fields
...
Update routing.agents section:
- Add sandbox field documentation (mode, scope, workspaceRoot)
- Add tools field documentation (allow, deny)
- Note that agent-specific settings override global config
2026-01-07 12:09:12 +01:00
sheeek
04bbe3a594
test(tools): add tests for agent-specific tool filtering
...
Add 5 tests for agent-specific tool restrictions:
- Apply global tool policy when no agent-specific policy exists
- Apply agent-specific tool policy
- Allow different tool policies for different agents
- Combine global and agent-specific deny lists
- Work with sandbox tools filtering
All tests pass.
2026-01-07 12:09:12 +01:00
sheeek
6d241be430
test(sandbox): add tests for agent-specific sandbox override
...
Add 6 tests for agent-specific sandbox configuration:
- Use global sandbox config when no agent-specific config exists
- Override with agent-specific sandbox mode 'off'
- Use agent-specific sandbox mode 'all'
- Use agent-specific scope
- Use agent-specific workspaceRoot
- Prefer agent config over global for multiple agents
All tests pass.
2026-01-07 12:09:12 +01:00
sheeek
23210f5f70
test(agent-scope): add tests for sandbox and tools config resolution
...
Add 7 tests for resolveAgentConfig():
- Return undefined when no agents config exists
- Return undefined when agent id does not exist
- Return basic agent config (name, workspace, agentDir, model)
- Return agent-specific sandbox config
- Return agent-specific tools config
- Return both sandbox and tools config
- Normalize agent id
All tests pass.
2026-01-07 12:09:12 +01:00
sheeek
0fffde00a8
feat(tools): add agent-specific tool filtering
...
Add tool filtering layer for per-agent restrictions:
- Extract agentId from sessionKey
- Load routing.agents[agentId].tools via resolveAgentConfig()
- Apply agent-specific allow/deny before sandbox filtering
Filtering order:
1. Global (agent.tools)
2. Agent-specific (routing.agents[id].tools) ← NEW
3. Sandbox (agent.sandbox.tools)
4. Subagent policy
This enables different tool permissions per agent
(e.g., main: all tools, family: read only).
2026-01-07 12:09:11 +01:00
sheeek
1e3caf07d4
feat(sandbox): support agent-specific sandbox config override
...
Changes to defaultSandboxConfig():
- Add optional agentId parameter
- Load routing.agents[agentId].sandbox if available
- Prefer agent-specific settings over global agent.sandbox
Update callers in resolveSandboxContext() and
ensureSandboxWorkspaceForSession() to extract agentId
from sessionKey and pass it to defaultSandboxConfig().
This enables per-agent sandbox modes (e.g., main: off, family: all).
2026-01-07 12:09:11 +01:00
sheeek
cc9fdfe562
feat(agent-scope): extend resolveAgentConfig to return sandbox and tools
...
Return newly added fields from routing.agents config:
- sandbox: agent-specific sandbox configuration
- tools: agent-specific tool restrictions
This makes per-agent sandbox and tool settings accessible
to other parts of the codebase.
2026-01-07 12:09:11 +01:00
sheeek
304857cf43
feat(config): add Zod validation for routing.agents sandbox and tools
...
Validate per-agent sandbox config:
- mode: 'off' | 'non-main' | 'all'
- scope: 'session' | 'agent' | 'shared'
- perSession: boolean
- workspaceRoot: string
Validate per-agent tools config:
- allow: string[]
- deny: string[]
2026-01-07 12:09:11 +01:00
sheeek
0851682080
feat(types): add sandbox and tools fields to routing.agents
...
Add optional per-agent configuration:
- sandbox: { mode, scope, perSession, workspaceRoot }
- tools: { allow, deny }
These will allow agents to override global agent.sandbox and
agent.tools settings.
2026-01-07 12:09:11 +01:00
Peter Steinberger
1011640a13
refactor: drop autoReply, add topic requireMention
...
Co-authored-by: kitze <kristijan.mkd@gmail.com >
2026-01-07 12:07:15 +01:00
Peter Steinberger
25edac96cf
docs: add note about tricky code comments
2026-01-07 12:04:55 +01:00
Peter Steinberger
85e536f3ff
fix(macos): validate remote ports
2026-01-07 11:00:21 +00:00
Nima Karimi
a5b29623b8
fix(macos): honor discovered gateway ports
2026-01-07 10:51:06 +00:00
Peter Steinberger
eef90b47a3
chore: satisfy lint
2026-01-07 11:49:01 +01:00
Peter Steinberger
c74f89c871
docs: update changelog for PR #286
2026-01-07 11:47:24 +01:00
Peter Steinberger
87e08fc7d5
docs: document channel/topic overrides
2026-01-07 11:44:37 +01:00
Peter Steinberger
43c6bb7595
feat: add channel/topic overrides for skills + auto-reply
2026-01-07 11:44:37 +01:00
Peter Steinberger
61f720b945
feat: add skill filter + group system prompt plumbing
2026-01-07 11:44:37 +01:00
Peter Steinberger
9bf6684366
feat: add provider usage tracking
2026-01-07 11:42:46 +01:00
Josh Palmer
4e14123edd
Merge pull request #378 from timkrase/system-prompt-weekday
...
Agents: add weekday to user time (codex assisted)
2026-01-07 11:27:07 +01:00
Peter Steinberger
a700f9896d
feat: telegram draft streaming
2026-01-07 11:08:32 +01:00
Peter Steinberger
e8420bd047
fix: refine bootstrap injections
2026-01-07 10:04:23 +00:00
Tobias Bischoff
412990a139
Reduce prompt token overhead with leaner context injections
2026-01-07 10:04:23 +00:00
Tim Krase
e58e13708d
Agents: add weekday to user time
2026-01-07 11:02:39 +01:00
Peter Steinberger
7a917602c5
feat(auth): sync OAuth from Claude/Codex CLIs
...
Add source profiles anthropic:claude-cli and openai-codex:codex-cli; surface them in onboarding/configure.
Co-authored-by: pepicrft <pepicrft@users.noreply.github.com >
2026-01-07 10:47:57 +01:00
Peter Steinberger
0914517ee3
feat(sandbox): add workspace access mode
2026-01-07 09:33:38 +00:00
Peter Steinberger
94d3a9742b
fix: clean agents lint warnings
2026-01-07 10:13:03 +01:00
Peter Steinberger
7973fd4caf
feat: add agents command
2026-01-07 10:03:53 +01:00
Shadow
9df8af855b
chore: bump carbon version
...
Closes #349
Closes #354
2026-01-07 02:58:40 -06:00
Peter Steinberger
a50ffa69b0
fix(discord): handle multi-attachment inbound media
2026-01-07 09:01:57 +01:00
Peter Steinberger
7d2dde6ea6
docs: thank contributor for #369
2026-01-07 07:57:19 +00:00
Peter Steinberger
e5dbe1db9d
fix: ensure output for non-streaming models ( #369 )
...
Co-authored-by: mneves75 <mneves75@users.noreply.github.com >
2026-01-07 07:47:18 +00:00
Jonathan D. Rhyne
596fa99f02
discord: chunk outbound messages by chars+lines
...
Prevents Discord client clipping by splitting tall replies; adds discord.maxLinesPerMessage.
2026-01-07 02:22:05 -05:00
Peter Steinberger
34cac1beb0
fix: land PR #350
2026-01-07 07:19:48 +00:00
Peter Steinberger
1b81805d63
fix: align heartbeat session store with default agent
2026-01-07 07:14:24 +00:00
Peter Steinberger
7176b114da
fix(auth): harden legacy auth.json cleanup
2026-01-07 06:51:17 +00:00
Peter Steinberger
0707b1e487
Merge PR #368 : delete legacy auth.json after migration
2026-01-07 06:47:46 +00:00
Peter Steinberger
2937c4861f
fix(auth): doctor-migrate anthropic oauth profiles
2026-01-07 06:31:02 +00:00
Randy Torres
ff79db0a99
fix(auth): use anthropic oauth email profile
...
Use Anthropic OAuth profile email as the profile identifier when available. This fixes cases where Anthropic returns an email-based profile id rather than an explicit id field.
2026-01-07 06:31:02 +00:00
Peter Steinberger
8b1263ce11
fix: split status activation line
2026-01-07 07:26:52 +01:00
Peter Steinberger
dc941b7e57
fix: refresh status output
2026-01-07 07:22:06 +01:00
Matthew Dicembrino
4f10279ac3
fix: delete legacy auth.json after migration to prevent stale token overwrites ( #363 )
2026-01-07 01:15:38 -05:00
Peter Steinberger
86fde78442
chore: sync swift protocol models
2026-01-07 06:14:15 +00:00
Peter Steinberger
50dec39d13
fix: honor sandboxed built-in tools
2026-01-07 06:12:56 +00:00
Peter Steinberger
03928106c7
fix: order reasoning before reply text
2026-01-07 07:05:07 +01:00
Peter Steinberger
75c66acfd8
feat: update subagent announce + archive
2026-01-07 06:53:01 +01:00
Peter Steinberger
1673a221f8
feat: add /reasoning reasoning visibility
2026-01-07 06:17:31 +01:00
Peter Steinberger
cb2a72f8a9
test(routing): add route-reply coverage
2026-01-07 05:07:53 +00:00
Peter Steinberger
3668388912
fix(routing): harden originating reply routing
2026-01-07 05:02:34 +00:00
Josh Lehman
2a2e327cae
style: fix biome formatting
2026-01-07 04:51:33 +00:00
Josh Lehman
5414da9fd4
fix(routing): handle cross-provider messages in collect mode
...
When queued messages come from different providers (Slack + Telegram),
process them individually instead of collecting into a single prompt.
This ensures each reply routes back to its originating provider.
- Add hasCrossProviderItems() to detect multi-provider queues
- Skip collect mode when cross-provider detected
- Preserve originatingChannel/originatingTo when collecting same-provider
2026-01-07 04:51:33 +00:00
Josh Lehman
2d67ec5bfa
fix(routing): only route to originating channel when cross-provider
...
When OriginatingChannel matches Surface (same provider), use normal
dispatcher. Only route via routeReply() when they differ, ensuring
cross-provider messages (e.g., Telegram queued while Slack active)
get routed back to their origin.
2026-01-07 04:51:33 +00:00
Josh Lehman
9d50ebad7d
feat(routing): route replies to originating channel
...
Implement reply routing based on OriginatingChannel/OriginatingTo fields.
This ensures replies go back to the provider where the message originated
instead of using the session's lastChannel.
Changes:
- Add OriginatingChannel/OriginatingTo fields to MsgContext (templating.ts)
- Add originatingChannel/originatingTo fields to FollowupRun (queue.ts)
- Create route-reply.ts with provider-agnostic router
- Update all providers (Telegram, Slack, Discord, Signal, iMessage)
to pass originating channel info
- Update reply.ts to pass originating channel to followupRun
- Update followup-runner.ts to use route-reply for originating channels
This addresses the issue where messages from one provider (e.g., Slack)
would receive replies on a different provider (e.g., Telegram) because
the queue used the last active dispatcher instead of the originating one.
2026-01-07 04:51:33 +00:00
Peter Steinberger
514fcfe77e
fix: harden sub-agent model overrides
2026-01-07 04:48:37 +00:00
Peter Steinberger
12d57da53a
fix: normalize provider aliases in auth order
2026-01-07 05:43:32 +01:00
mneves75
8187baab18
test: format models list alias coverage
2026-01-07 05:31:01 +01:00
mneves75
3550dc294d
fix: normalize z.ai provider ids in auth profiles
2026-01-07 05:31:01 +01:00
mneves75
13c1ce1f05
Docs: update Z.AI configuration
2026-01-07 05:30:46 +01:00
mneves75
8954f7719c
Test: cover z.ai normalization
2026-01-07 05:30:06 +01:00
mneves75
0ddfbf5534
Feat: normalize z.ai provider ids
2026-01-07 05:30:06 +01:00
Peter Steinberger
388796253a
feat(skills): add session-logs skill for searching conversation history
...
Adds jq-based queries for:
- Listing sessions by date/size
- Searching user/assistant messages
- Extracting costs per session and daily totals
- Tool usage breakdowns
- Cross-session keyword search
2026-01-07 04:13:30 +00:00
Peter Steinberger
42ae2341aa
fix: harden pairing flow
2026-01-07 05:06:04 +01:00
Peter Steinberger
6ffece68b0
fix(doctor): add headless flags + auto-migrate sessions
2026-01-07 04:43:24 +01:00
Peter Steinberger
9c9ae5aa54
fix(imessage): harden abort shutdown
2026-01-07 03:41:23 +00:00
Anton Sotkov
08fc0b3809
fix: imsg unhandled promises
2026-01-07 03:41:23 +00:00
Peter Steinberger
8ef0609f8e
refactor: share reaction schemas and notes
2026-01-07 04:24:11 +01:00
Peter Steinberger
654e14df31
Merge PR #353
2026-01-07 04:18:19 +01:00
Peter Steinberger
073b16a3a0
fix: clean up reaction tooling
2026-01-07 04:16:39 +01:00
Peter Steinberger
3afef2d504
feat: unify provider reaction tools
2026-01-07 04:16:39 +01:00
Sash Zats
551a8d5683
Add WhatsApp reactions support
...
Summary:
Test Plan:
2026-01-07 04:16:39 +01:00
Peter Steinberger
aa87d6cee8
refactor(relay): add --smoke entrypoint
2026-01-07 03:12:30 +00:00
Peter Steinberger
59cc15f3cc
fix(relay): guard QR smoke mode
2026-01-07 02:42:55 +00:00
Peter Steinberger
ff102e2afa
Merge PR #358
2026-01-07 02:42:53 +00:00
Peter Steinberger
aa635af6d0
refactor: unify outbound result envelopes
2026-01-07 02:36:05 +00:00
DB Hurley
9d820a628f
fix(relay): implement CLAWDBOT_SMOKE_QR handler for packaging
2026-01-06 21:32:04 -05:00
Peter Steinberger
4bf5f37a44
refactor: streamline outbound payload handling
2026-01-07 02:30:42 +00:00
Peter Steinberger
3fedd0d1d5
fix(outbound): guard optional delivery fields
2026-01-07 02:19:42 +00:00
Peter Steinberger
59502552ae
fix(telegram): import native reply helper
2026-01-07 02:19:42 +00:00
Peter Steinberger
d7bc5b58fc
refactor(telegram): polish topic threading
2026-01-07 02:19:42 +00:00
Peter Steinberger
80112433a5
fix(telegram): support forum topics
...
Co-authored-by: Daniel Griesser <HazAT@users.noreply.github.com >
Co-authored-by: Nacho Iacovino <nachoiacovino@users.noreply.github.com >
Co-authored-by: Randy Ventures <RandyVentures@users.noreply.github.com >
2026-01-07 02:19:42 +00:00
Peter Steinberger
023a124312
test: cover gmail tailscale error formatting
2026-01-07 03:16:52 +01:00
Sash Zats
8a07093624
Add WhatsApp reactions support
...
Summary:
Test Plan:
2026-01-06 21:11:52 -05:00
Peter Steinberger
2986447935
fix: improve gmail tailscale errors
2026-01-07 03:10:35 +01:00
Peter Steinberger
ba317588c0
docs: note community nickname for MiniMax
2026-01-07 03:02:22 +01:00
Peter Steinberger
321db99cc6
docs: add CLI reference and model links
2026-01-07 02:52:41 +01:00
Peter Steinberger
467d4e17fe
feat: add sandbox scope default
2026-01-07 02:52:41 +01:00
Peter Steinberger
4d4e4de915
docs: add changelog for PR #348
2026-01-07 02:52:41 +01:00
Peter Steinberger
15b7560a9b
refactor: reuse gateway output helpers
2026-01-07 01:43:02 +00:00
Peter Steinberger
b88c4e9d20
chore: clean up lint and scratchpad
2026-01-07 01:28:46 +00:00
Peter Steinberger
bc9a3ce32a
refactor: unify outbound delivery formatting
2026-01-07 01:26:09 +00:00
Peter Steinberger
3fbe2963b3
test: align outbound normalization
2026-01-07 01:22:55 +00:00
Peter Steinberger
8ba6473462
style: fix send json indent
2026-01-07 01:21:29 +00:00
Peter Steinberger
dd78c26e6d
style: format direct send json
2026-01-07 01:21:03 +00:00
Peter Steinberger
2ce5df3efc
style: align outbound delivery formatting
2026-01-07 01:20:40 +00:00
Peter Steinberger
aefaed159b
refactor: normalize outbound payload delivery
2026-01-07 01:19:47 +00:00
Peter Steinberger
f171d509bb
refactor: centralize outbound target validation
2026-01-07 01:16:39 +00:00
Peter Steinberger
4fb9293c29
docs: fix internal doc links
2026-01-07 02:15:46 +01:00
buddyh
79fff828e0
Docs: sanitize AGENTS.md guidance
2026-01-07 01:15:37 +00:00
Sash Zats
f1643a5b8d
Heartbeat: resolve main session key for session store
2026-01-06 20:14:30 -05:00
Peter Steinberger
f5938f8114
refactor: unify outbound delivery
2026-01-07 01:13:04 +00:00
Peter Steinberger
1ae5e9a26b
feat: add docs search command
2026-01-07 02:03:06 +01:00
Sash Zats
eb8d7a19af
Cron: enqueue system events in main session
2026-01-06 19:55:03 -05:00
Peter Steinberger
e816991dc5
docs: update changelog and clawtributor list for PR #341
2026-01-07 01:46:37 +01:00
Erik
cd4e2023ab
fix(agent): capture compaction retry AbortError for model fallback
...
Wrap waitForCompactionRetry() in try/catch to capture AbortError
that was escaping and bypassing the model fallback mechanism.
When a timeout fires, session.abort() causes both session.prompt()
and waitForCompactionRetry() to throw AbortError. Previously only
the prompt error was captured, allowing the compaction error to
escape to model-fallback.ts where it was immediately re-thrown
(line 199: isAbortError check), bypassing fallback model attempts.
Fixes #313
2026-01-07 01:44:37 +01:00
Peter Steinberger
5da8258614
fix: gateway:watch args
2026-01-07 00:37:32 +00:00
Peter Steinberger
0116184b1c
docs: recommend WSL2 for Windows installs
2026-01-07 01:21:36 +01:00
Peter Steinberger
62112d9978
feat: add onboarding doc links
2026-01-07 01:19:31 +01:00
Peter Steinberger
19c95d0ff7
fix(auth): serialize profile stats updates
2026-01-07 01:06:51 +01:00
Peter Steinberger
96d72ff91e
fix(auth): lock auth profile updates
2026-01-07 01:00:47 +01:00
Muhammed Mukhthar CM
eb5f758f6b
fix(auth): improve multi-account round-robin rotation and 429 handling
...
This commit fixes several issues with multi-account OAuth rotation that
were causing slow responses and inefficient account cycling.
## Changes
### 1. Fix usageStats race condition (auth-profiles.ts)
The `markAuthProfileUsed`, `markAuthProfileCooldown`, `markAuthProfileGood`,
and `clearAuthProfileCooldown` functions were using a stale in-memory store
passed as a parameter. Long-running sessions would overwrite usageStats
updates from concurrent sessions when saving.
**Fix:** Re-read the store from disk before each update to get fresh
usageStats from other sessions, then merge the update.
### 2. Capture AbortError from waitForCompactionRetry (pi-embedded-runner.ts)
When a request timed out, `session.abort()` was called which throws an
`AbortError`. The code structure was:
```javascript
try {
await session.prompt(params.prompt);
} catch (err) {
promptError = err; // Catches AbortError here
}
await waitForCompactionRetry(); // But THIS also throws AbortError!
```
The second `AbortError` from `waitForCompactionRetry()` escaped and
bypassed the rotation/fallback logic entirely.
**Fix:** Wrap `waitForCompactionRetry()` in its own try/catch to capture
the error as `promptError`, enabling proper timeout handling.
Root cause analysis and fix proposed by @erikpr1994 in #313 .
Fixes #313
### 3. Fail fast on 429 rate limits (pi-ai patch)
The pi-ai library was retrying 429 errors up to 3 times with exponential
backoff before throwing. This meant a rate-limited account would waste
30+ seconds retrying before our rotation code could try the next account.
**Fix:** Patch google-gemini-cli.js to:
- Throw immediately on first 429 (no retries)
- Not catch and retry 429 errors in the network error handler
This allows the caller to rotate to the next account instantly on rate limit.
Note: We submitted this fix upstream (https://github.com/badlogic/pi-mono/pull/504 )
but it was closed without merging. Keeping as a local patch for now.
## Testing
With 6 Antigravity accounts configured:
- Accounts rotate properly based on lastUsed (round-robin)
- 429s trigger immediate rotation to next account
- usageStats persist correctly across concurrent sessions
- Cooldown tracking works as expected
## Before/After
**Before:** Multiple 429 retries on same account, 30-90s delays
**After:** Instant rotation on 429, responses in seconds
2026-01-07 00:56:32 +01:00
Peter Steinberger
2871657ebe
chore: make bun optional for source builds
2026-01-06 23:48:24 +00:00
Peter Steinberger
db4d0b8e75
docs: reorganize documentation structure
2026-01-07 00:45:46 +01:00
Peter Steinberger
b8db8502aa
docs: note discord voice message fix
2026-01-06 23:36:09 +00:00
VAC
ff200e3993
fix(discord): handle voice messages with empty content
...
Discord voice messages have empty `content` with the audio in attachments.
The nullish coalescing operator (`??`) doesn't fall through on empty strings,
so voice messages were being dropped as 'empty content'.
Changed to logical OR (`||`) so empty string falls through to media placeholder.
2026-01-06 23:35:30 +00:00
Peter Steinberger
44a954b36d
docs: add Mintlify link rules
2026-01-06 23:32:18 +00:00
Peter Steinberger
3c1a2ff451
docs: normalize Mintlify links
2026-01-06 23:32:12 +00:00
Peter Steinberger
e62c8fb55c
docs: clarify gmail pubsub tailscale requirement
2026-01-06 23:28:49 +00:00
Peter Steinberger
d09a5100b6
docs: rewrite provider docs
2026-01-07 00:25:16 +01:00
Peter Steinberger
7214cf39ec
fix: prefer home linuxbrew paths
2026-01-07 00:18:07 +01:00
Peter Steinberger
b57d36f49c
fix(sessions_spawn): hard-fail invalid model overrides
2026-01-06 23:17:35 +00:00
Azade
0429a4b63b
test(sessions_spawn): add test for model parameter
2026-01-06 23:17:35 +00:00
Azade
274f408e6f
feat(sessions_spawn): add model parameter for sub-agent model override
2026-01-06 23:17:35 +00:00
Peter Steinberger
02c9cf0ff4
chore: remove duplicate daemon runtime imports
2026-01-07 00:14:08 +01:00
Peter Steinberger
198515397c
docs(commands): mention /stop
2026-01-06 23:11:57 +00:00
Peter Steinberger
dd0d23cd96
test(commands): add /stop native regression
2026-01-06 23:11:57 +00:00
Peter Steinberger
e0efcda77f
fix(commands): wire /stop across chat commands
2026-01-06 23:11:57 +00:00
Nacho Iacovino
0df7c3addf
feat(telegram): add /stop command to abort running agent
...
Adds a /stop command that:
- Can interrupt a running agent session mid-execution
- Works in both DMs and group chats (including forum topics)
- Uses grammy's bot.command() to run before the main message handler
- Returns status: stopped, stop requested, or nothing running
Also fixes session key lookup in pi-embedded-runner to use sessionKey
instead of sessionId, ensuring /stop finds the correct active run.
2026-01-06 23:11:57 +00:00
Peter Steinberger
5bc3f13b46
feat: colorize models auth key labels
2026-01-07 00:10:01 +01:00
Peter Steinberger
b357746e1c
feat: add richer color to models output
2026-01-07 00:07:50 +01:00
Peter Steinberger
79f813e18e
style: format lint offenders
2026-01-07 00:04:44 +01:00
Peter Steinberger
fb321afa1d
docs: fix himalaya query usage
2026-01-07 00:04:18 +01:00
Peter Steinberger
d99fc89790
docs: add agent workspace guide
2026-01-07 00:04:03 +01:00
Peter Steinberger
0ad74ee941
test: mock select prompt in doctor tests
2026-01-07 00:01:50 +01:00
Peter Steinberger
d6eae275b1
fix: remove duplicate runtime note
2026-01-06 23:55:39 +01:00
Peter Steinberger
86b87682df
docs: refine model recommendation wording
2026-01-06 23:53:53 +01:00
Peter Steinberger
658ca205a9
docs: add model redirect and clarify guidance
2026-01-06 23:52:51 +01:00
Peter Steinberger
6d4cc28c4c
docs: link AgentSkills + ClawdHub guide
2026-01-06 23:51:01 +01:00
Peter Steinberger
55278c1c71
feat: add daemon runtime prompts
2026-01-06 23:51:00 +01:00
Peter Steinberger
edfc71a47e
docs: update model guidance
2026-01-06 23:48:25 +01:00
Peter Steinberger
c920ee1166
Merge branch 'pr-335-merge'
2026-01-06 23:45:35 +01:00
Peter Steinberger
ea216994a1
docs: polish himalaya skill docs
2026-01-06 23:44:06 +01:00
Dante Lex
16243b7edc
fix: simplify install to brew-only
...
Remove cargo install option to avoid confusing the model with
multiple installation methods.
2026-01-06 23:41:46 +01:00
Dante Lex
e6d6c822c5
feat: add himalaya email CLI skill
...
Add skill for Himalaya (https://github.com/pimalaya/himalaya ), a CLI
email client supporting IMAP, SMTP, Notmuch, and Sendmail backends.
Includes:
- SKILL.md with common operations (list, read, reply, forward, send)
- Configuration reference for Gmail, iCloud, and generic IMAP/SMTP
- MML (MIME Meta Language) composition guide for attachments
Tested with iCloud IMAP account - verified folder listing, email
reading, and sending work correctly.
2026-01-06 23:41:46 +01:00
Peter Steinberger
5939363eed
fix: include telegram group sender in envelope headers
2026-01-06 22:34:02 +00:00
Peter Steinberger
825a692390
docs: add cron redirect
2026-01-06 22:32:01 +00:00
Peter Steinberger
8d50d08936
style: format daemon runtime changes
2026-01-06 23:29:38 +01:00
Peter Steinberger
8911a79d7f
docs: rewrite cron jobs guide and heartbeat notes
2026-01-06 22:28:42 +00:00
Peter Steinberger
4e6fcd1678
docs: link bun websocket issue
2026-01-06 23:28:42 +01:00
Peter Steinberger
707f7918bc
feat: add gateway daemon runtime selector
2026-01-06 23:27:58 +01:00
Peter Steinberger
18c43fe462
fix: bootstrap linuxbrew for skills
2026-01-06 23:27:38 +01:00
Peter Steinberger
585a455690
docs: link ClawdHub in hubs
2026-01-06 23:26:59 +01:00
Peter Steinberger
0e35aae4d5
docs: add ClawdHub guide
2026-01-06 23:24:29 +01:00
Peter Steinberger
e05a29395e
docs: clarify perSession isolation
2026-01-06 23:23:47 +01:00
Peter Steinberger
39d2ba78b7
fix(cli): harden pairing provider parse
2026-01-06 22:17:18 +00:00
Peter Steinberger
0931a65ab2
fix: auto-recover from Gemini session corruption
...
Auto-merge after checks.
2026-01-06 22:12:05 +00:00
Peter Steinberger
fec7f37271
merge upstream/main
2026-01-06 23:09:01 +01:00
Peter Steinberger
86b56b2308
fix: harden gemini session reset
2026-01-06 23:06:01 +01:00
Peter Steinberger
2771001720
fix(state): auto-migrate legacy agent dir
2026-01-06 22:04:23 +00:00
Peter Steinberger
7aa7fa79d0
feat: update heartbeat defaults
2026-01-06 21:54:42 +00:00
Peter Steinberger
dba09058f5
fix(agents): default agent dir to multi-agent path
2026-01-06 21:54:42 +00:00
Peter Steinberger
7360abad8e
docs: update multi-agent guide
2026-01-06 22:44:07 +01:00
Peter Steinberger
22f835a5f2
Merge branch 'integrate/pr-331'
2026-01-06 22:43:51 +01:00
Peter Steinberger
96164b5955
fix: improve socket error handling
2026-01-06 22:43:29 +01:00
Peter Steinberger
4198fcd7db
docs: correct paths and setup guidance
2026-01-06 21:29:45 +00:00
Peter Steinberger
a1f5cfcd08
docs: refresh clawtributors
2026-01-06 22:26:42 +01:00
Emanuel Stadler
fb17a32283
feat: enhance error handling for socket connection errors
...
- Added `isError` property to `EmbeddedPiRunResult` and reply items to indicate error states.
- Updated error handling in `runReplyAgent` to provide more informative messages for specific socket connection errors.
2026-01-06 22:19:37 +01:00
Peter Steinberger
de454fc385
docs: add macOS build toolchain troubleshooting
2026-01-06 22:18:08 +01:00
Peter Steinberger
6f4cd7485f
docs: update FAQ auth paths + add clawtributor
2026-01-06 20:56:23 +00:00
Peter Steinberger
ff5d6d15ba
Merge pull request #324 from jamesgroat/fix/browser-profile-flag
...
fix(browser): add profile support to CLI flag and browser-tool, tabs routes
2026-01-06 20:55:35 +00:00
Peter Steinberger
e99536d3d9
docs: add changelog entry for browser profile fix
2026-01-06 21:54:46 +01:00
Peter Steinberger
b0bd7b946e
fix(macos): fix swiftformat lint in A2UI handler
2026-01-06 21:54:46 +01:00
James Groat
9b6e2478f5
fix(browser): add profile param to tabs routes and browser-tool
...
- tabs.ts now uses getProfileContext like other routes
- browser-tool threads profile param through all actions
- add tests for profile query param on /tabs endpoints
- update docs with browser tool profile parameter
2026-01-06 21:54:46 +01:00
James Groat
40758b16a9
fix(browser-cli): rename --profile to --browser-profile to avoid conflict with global --profile flag
2026-01-06 21:54:46 +01:00
minghinmatthewlam
2dd6b3aeb2
fix: write auth profiles to multi-agent path during onboarding
...
- Onboarding now writes auth profiles under ~/.clawdbot/agents/main/agent so the gateway sees credentials on first start.
- Hardened onboarding test to ignore legacy env vars.
Thanks @minghinmatthewlam!
2026-01-06 20:53:18 +00:00
Peter Steinberger
c7ffa28980
docs: update provider command refs
2026-01-06 20:45:54 +00:00
Peter Steinberger
39487998a3
docs: add slash commands guide
2026-01-06 20:45:54 +00:00
Peter Steinberger
84c8209158
fix(slack): clear assistant thread status after replies
2026-01-06 21:41:30 +01:00
Shadow
8ebc789d25
Slack: send assistant thread status while typing
2026-01-06 21:34:52 +01:00
Peter Steinberger
792ae99ffc
docs: enforce PR merge expectations
2026-01-06 21:31:50 +01:00
Peter Steinberger
4845c615cb
docs: link source references to GitHub
2026-01-06 20:25:08 +00:00
Shadow
9b22e1f6e9
feat(commands): unify chat commands ( #275 )
...
* Chat commands: registry, access groups, Carbon
* Chat commands: clear native commands on disable
* fix(commands): align command surface typing
* docs(changelog): note commands registry (PR #275 )
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-01-06 20:17:56 +00:00
Peter Steinberger
1bf44bf30c
feat(models): show auth overview
2026-01-06 20:07:04 +00:00
Peter Steinberger
ea7836afad
docs: add Start Here and getting started
2026-01-06 19:56:22 +00:00
Peter Steinberger
118c1e1042
fix: keep oauth profile stable
2026-01-06 19:43:28 +00:00
Peter Steinberger
1bc3461800
docs: refine PR merge strategy
2026-01-06 20:31:43 +01:00
Peter Steinberger
4cf02cc705
docs: prefer rebase + run gate before commits
2026-01-06 19:27:09 +00:00
Peter Steinberger
1a5c515ca8
docs: formalize PR review/landing workflow
2026-01-06 19:27:09 +00:00
Peter Steinberger
fab37be7a0
fix(browser): sync lockfile for Playwright Bun patch (PR #307 )
2026-01-06 19:27:09 +00:00
Azade
16ce78233f
fix(browser): patch playwright-core for Bun WebSocket compatibility
...
Bun's WebSocket implementation doesn't fully support Playwright's CDP
connection because Playwright bundles its own 'ws' module. This causes
connectOverCDP to timeout.
The patch makes Playwright use the native 'ws' module when running
under Bun, which works with Bun's WebSocket shim.
Fixes browser snapshot/act timeouts after PR #278 (tsx → bun migration).
Ref: https://github.com/oven-sh/bun/issues/9911
2026-01-06 19:27:09 +00:00
Peter Steinberger
b4e28c74b9
docs: update PR workflow and changelog for PR #310
2026-01-06 20:26:12 +01:00
Peter Steinberger
250debcc00
Merge PR #310
2026-01-06 20:25:47 +01:00
Peter Steinberger
67bda21811
fix: preserve markdown fences when chunking
2026-01-06 20:23:41 +01:00
Peter Steinberger
afc42c7547
fix(ui): tighten focus mode spacing
2026-01-06 19:10:06 +00:00
Peter Steinberger
31dbc62bdd
fix(telegram): prevent stuck typing after tool runs
2026-01-06 18:56:43 +00:00
Peter Steinberger
72ab9f3f42
docs(changelog): note Telegram typing fix ( #322 )
2026-01-06 18:56:43 +00:00
Peter Steinberger
369af5fc58
style(agents): format usage helper
2026-01-06 19:54:50 +01:00
Peter Steinberger
d07e78855c
fix(workspace): align clawd + bootstrap
2026-01-06 19:54:50 +01:00
Abhi
bdf597eb95
fix(telegram): stop typing after tool results ( #322 )
...
Thanks @AbhisekBasu1.
2026-01-06 18:54:08 +00:00
Peter Steinberger
2f24ea492b
fix: restore Anthropic token accounting
2026-01-06 18:52:01 +00:00
Peter Steinberger
672762bdd0
docs(security): explain allowFrom + group allowlists
2026-01-06 19:44:23 +01:00
Peter Steinberger
91f67f5bd7
build(protocol): regenerate protocol artifacts
2026-01-06 18:37:20 +00:00
Peter Steinberger
a38bd4d3a2
docs(security): explain allowlists terminology
2026-01-06 19:35:40 +01:00
Peter Steinberger
9fb37cbf93
style: format whatsapp inbound allowlist
2026-01-06 18:33:37 +00:00
Peter Steinberger
730cc72388
docs: document multi-agent mode
2026-01-06 18:33:37 +00:00
Peter Steinberger
dbfa316d19
feat: multi-agent routing + multi-account providers
2026-01-06 18:33:37 +00:00
Peter Steinberger
50d4b17417
docs: add pairing overview
2026-01-06 19:30:30 +01:00
Peter Steinberger
1bde6cffec
docs: add updating guide
2026-01-06 19:24:33 +01:00
Peter Steinberger
e6864346b8
docs(readme): make build step optional
2026-01-06 19:18:47 +01:00
Peter Steinberger
3260fde9cd
docs(security): clarify DM policy coverage
2026-01-06 19:13:31 +01:00
Peter Steinberger
9a5cfa863e
docs: remove deprecated control API
2026-01-06 19:04:47 +01:00
James Groat
cdd0cb6089
fix(browser): add profile param to tabs routes and browser-tool
...
- tabs.ts now uses getProfileContext like other routes
- browser-tool threads profile param through all actions
- add tests for profile query param on /tabs endpoints
- update docs with browser tool profile parameter
2026-01-06 11:04:33 -07:00
Peter Steinberger
7d122b828e
docs(security): add security@clawd.bot
2026-01-06 19:03:34 +01:00
Peter Steinberger
67240252f8
docs: make internal links clickable
2026-01-06 19:02:33 +01:00
DBH
d79e34040f
docs: remove .md extension from internal links ( #319 )
2026-01-06 11:58:39 -06:00
James Groat
6cebd26529
fix(browser-cli): rename --profile to --browser-profile to avoid conflict with global --profile flag
2026-01-06 10:47:25 -07:00
Peter Steinberger
30ea1e37f2
docs(readme): link docs site + security guide
2026-01-06 18:41:00 +01:00
Shadow
b5f7431428
Changelog: note skipBootstrap
2026-01-06 11:25:27 -06:00
Peter Steinberger
ee085ffd65
docs(docker): align sandbox allowlist
2026-01-06 18:25:00 +01:00
Peter Steinberger
8d9b2208d5
docs(security): explain sandboxing options
2026-01-06 18:23:53 +01:00
Peter Steinberger
94e300fde5
docs(security): document pairing + prompt injection
2026-01-06 18:13:12 +01:00
Peter Steinberger
c47aff5244
fix(onboard): clarify DM policy keys
2026-01-06 18:09:21 +01:00
Peter Steinberger
6ea25b0354
docs(security): explain DM pairing
2026-01-06 18:09:21 +01:00
Peter Steinberger
4933905366
fix(onboard): configure DM policies
2026-01-06 18:09:21 +01:00
Onur
6cf3570c5b
feat(agent): add skipBootstrap config to skip bootstrap file creation ( #292 )
2026-01-06 11:02:51 -06:00
Shadow
38aaa8563b
Changelog: note README ui install
2026-01-06 10:59:26 -06:00
Hugo Baraúna
42af37aea9
docs: add missing ui:install step to README setup ( #300 )
2026-01-06 10:58:48 -06:00
Peter Steinberger
b081f45b17
fix(onboard): explain DM pairing defaults
2026-01-06 17:58:06 +01:00
Muhammed Mukhthar CM
4bb53e19f9
fix(build): import tool-display.json instead of fs.readFileSync ( #312 )
2026-01-06 10:55:02 -06:00
Peter Steinberger
967cef80bc
fix(security): lock down inbound DMs by default
2026-01-06 17:51:56 +01:00
Shadow
327ad3c9c7
Changelog: credit favicon PR
2026-01-06 10:49:45 -06:00
Jefferson Nunn
848f36b670
feat(ui): add favicon.ico from Mac app icon ( #305 )
2026-01-06 10:41:19 -06:00
Nimrod Gutman
62e590323a
fix(macOS): keep gateway config sync local
2026-01-06 18:05:28 +02:00
Peter Steinberger
11b6fddcbf
Merge pull request #283 from Oncomatic/jarvis/telegram-media-error-notify
...
fix(telegram): notify user when media exceeds size limit
2026-01-06 15:18:52 +00:00
Peter Steinberger
2a50eadcc1
fix(ui): self-heal ui builds
2026-01-06 16:03:04 +01:00
Peter Steinberger
3f10655e3f
test: make test:coverage pass
2026-01-06 15:43:24 +01:00
Peter Steinberger
3ff17b70ea
chore: changelog for #293
2026-01-06 15:32:06 +01:00
Palash Oswal
b91012b697
fix(cli): don't force localhost gateway url in remote mode
...
Fixes remote gateway setup (remote mode) by not overriding url; adds regression tests. Thanks @oswalpalash.
2026-01-06 14:30:45 +00:00
Simon Kelly
5aa1ed2c96
fix(slack): use named import for @slack/bolt App class ( #299 )
...
* fix(slack): use named import for @slack/bolt App class
The default import `import bolt from '@slack/bolt'` followed by
`const { App } = bolt` doesn't work correctly in Bun due to ESM/CJS
interop issues. The default export comes through as a function rather
than the module object.
Switching to a named import `import { App } from '@slack/bolt'`
resolves the issue and allows the Slack provider to start successfully.
* fix(slack): align Bolt mock with named App export
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-01-06 14:22:14 +00:00
Lukáš Loukota
c16510c6ea
fix: install Bun in Dockerfile ( #284 )
...
Install Bun in Dockerfile so `pnpm build` can run Bun scripts inside Docker.
Thanks @loukotal.
2026-01-06 14:05:19 +00:00
VAC
eadb923000
fix: auto-recover from Gemini session corruption
...
Detect the Gemini API error 'function call turn comes immediately after
a user turn or after a function response turn' which indicates corrupted
session history.
When detected:
- Delete the corrupted transcript file
- Remove the session entry from the store
- Return a user-friendly message asking them to retry
This prevents the error loop where every subsequent message fails with
the same error until manual intervention.
Fixes #296
2026-01-06 07:25:15 -05:00
Peter Steinberger
dbac51e60f
chore(protocol): regenerate GatewayModels.swift
2026-01-06 09:55:58 +01:00
Manuel Hettich
aae5926db9
fix(telegram): notify user when media exceeds size limit
...
When a file exceeds mediaMaxMb, send a friendly error message
instead of silently dropping the upload.
---
🤖 Authored by Jarvis (AI assistant)
2026-01-06 08:45:07 +00:00
Peter Steinberger
ddba2c6912
docs: point docs links to GitHub while docs down
2026-01-06 09:45:03 +01:00
Peter Steinberger
3693449d7e
feat: sandbox session tool visibility
2026-01-06 08:40:30 +00:00
Peter Steinberger
ef58399fcd
docs(changelog): note auth rotation + configure order
2026-01-06 09:25:42 +01:00
Peter Steinberger
5926a98c52
fix(configure): don’t write auth.order by default
2026-01-06 09:25:36 +01:00
Peter Steinberger
f2d353459f
test(auth): stop prioritizing lastGood
2026-01-06 09:25:33 +01:00
Peter Steinberger
ed2075ce69
test(gateway): deflake cron finished event wait
2026-01-06 09:25:31 +01:00
Muhammed Mukhthar CM
9e49c762e0
fix(auth): prioritize round-robin over lastGood for multi-account rotation ( #281 )
...
* fix(auth): prioritize round-robin over lastGood for multi-account rotation
When multiple OAuth accounts are configured, the round-robin rotation was
not working because lastGood was always prioritized, defeating the sort by
lastUsed.
Changes:
- Remove lastGood prioritization in resolveAuthProfileOrder
- Always apply orderProfilesByMode (sorts by lastUsed, oldest first)
- Only respect configuredOrder when explicitly set in config
- preferredProfile still takes priority for explicit user choice
Tested with 2 Google Antigravity accounts - verified alternating usage.
Follow-up to PR #269 .
* style: fix formatting
2026-01-06 08:16:35 +00:00
Peter Steinberger
cf1a1d107e
fix: add OpenAI Codex OAuth to configure
2026-01-06 09:13:51 +01:00
Peter Steinberger
30b6c417c7
docs(changelog): note bun UI build
2026-01-06 09:13:51 +01:00
Muhammed Mukhthar CM
42d1c2448e
fix(cron-tool): use generic object schema for job/patch to fix Claude via Antigravity ( #280 )
2026-01-06 02:13:09 -06:00
Peter Steinberger
c27dd75135
build(control-ui): prefer bun for UI build
2026-01-06 09:08:25 +01:00
Peter Steinberger
5774b4f300
fix(control-ui): pad chat composer in focus mode
2026-01-06 08:59:05 +01:00
Peter Steinberger
df6d545050
docs: update docs domain + link labels
2026-01-06 08:57:58 +01:00
Peter Steinberger
a279bcfeb1
feat: add sessions_spawn sub-agent tool
2026-01-06 08:41:45 +01:00
Peter Steinberger
952657d55c
feat(tui): add /elev alias
2026-01-06 08:41:04 +01:00
Peter Steinberger
882048d90b
feat(control-ui): add chat focus mode
2026-01-06 08:16:21 +01:00
Peter Steinberger
173e9f103e
docs: add changelog entry for bun migration ( #278 )
2026-01-06 08:15:20 +01:00
Peter Steinberger
e03a5628e3
docs: prefer bun-first TypeScript execution
2026-01-06 08:15:03 +01:00
Ayaan Zaidi
7a48b908e4
refactor: replace tsx with bun for TypeScript execution ( #278 )
2026-01-06 07:14:08 +00:00
Peter Steinberger
b472143882
chore: update terminal css
2026-01-06 07:58:09 +01:00
Peter Steinberger
d14505ff78
Merge pull request #274 from kiranjd/fix/chat-scroll-to-bottom
...
fix(ui): scroll chat to bottom on initial load
2026-01-06 06:49:29 +00:00
Peter Steinberger
5b183b4fe3
fix(ui): scroll chat to bottom on initial load
2026-01-06 07:49:12 +01:00
Peter Steinberger
dbb51006cd
feat: unify group policy allowlists
2026-01-06 06:40:42 +00:00
Peter Steinberger
51e8bbd2a8
style: normalize type definitions
2026-01-06 07:21:10 +01:00
Peter Steinberger
aa16b679ad
fix: improve auth profile failover
2026-01-06 07:18:06 +01:00
Peter Steinberger
a7b5753dc4
Merge pull request #269 from mukhtharcm/feat/multi-account-roundrobin
...
feat: Multi-account OAuth with round-robin rotation
2026-01-06 06:13:19 +00:00
Peter Steinberger
b5c604b7b7
fix: require slash for control commands
2026-01-06 07:05:17 +01:00
Peter Steinberger
7d896b5f67
fix: doctor memory hint
2026-01-06 06:01:24 +00:00
Kiran Jd
b584770055
Merge branch 'main' into fix/chat-scroll-to-bottom
2026-01-06 11:27:57 +05:30
Shadow
f29efb9862
docs: add issue templates
2026-01-05 23:55:51 -06:00
kiranjd
511632f47c
fix(ui): scroll chat to bottom on initial load
...
The chat view was starting at the top showing oldest messages instead of
scrolling to the bottom to show the latest messages (like WhatsApp).
Root causes:
1. scheduleChatScroll() was called without force flag in refreshActiveTab()
2. The scroll was targeting .chat-thread element which has overflow:visible
and doesn't actually scroll - the window scrolls instead
Fixes:
- Pass force flag (!chatHasAutoScrolled) when loading chat tab
- Wait for Lit updateComplete before scrolling to ensure DOM is ready
- Scroll the window instead of the .chat-thread container
- Use behavior: 'instant' for immediate scroll without animation
2026-01-06 11:23:27 +05:30
Shadow
91cb2c02a7
fix: allow optional reply body
2026-01-05 23:47:33 -06:00
Shadow
4be6ec39dd
docs: add recent contributors
2026-01-05 23:44:48 -06:00
Shadow
0204f45352
docs: add PR 272 changelog entry
2026-01-05 23:37:37 -06:00
Shadow
69f285c5ca
chore: fixed CI
2026-01-05 23:36:48 -06:00
Ayaan Zaidi
a79c100594
fix: targetDir symlink handling in postinstall script ( #272 )
2026-01-05 23:36:11 -06:00
Peter Steinberger
b759cb6f37
feat(providers): normalize location parsing
2026-01-06 06:31:09 +01:00
Nacho Iacovino
255e77f530
feat(telegram): parse location and venue messages
...
- Add TelegramLocation, TelegramVenue, and TelegramMessageWithLocation types
- Add formatLocationMessage() to convert location/venue shares to text
- Add extractLocationData() for structured location access in ctxPayload
- Handle both raw location pins and venue shares (places with names)
- Include location in reply-to context for quoted messages
Location messages now appear as:
- [Location: lat, lon ±accuracy] for raw pins
- [Venue: Name - Address (lat, lon)] for places
ctxPayload includes LocationLat, LocationLon, LocationAccuracy,
VenueName, and VenueAddress fields for programmatic access.
2026-01-06 06:31:09 +01:00
Peter Steinberger
9ffea23f31
templates: Add memory maintenance during heartbeats
...
New section explaining how to periodically review daily memory files
and update MEMORY.md with distilled learnings. Like a human reviewing
their journal and updating their mental model.
2026-01-06 05:21:09 +00:00
Muhammed Mukhthar CM
18c7795ee0
feat: treat timeout as rate limit for profile rotation
...
Antigravity rate limits cause requests to hang indefinitely rather than
returning 429 errors. This change detects timeouts and treats them as
potential rate limits:
- Added timedOut flag to track timeout-triggered aborts
- Timeout now triggers profile cooldown + rotation
- Logs: "Profile X timed out (possible rate limit). Trying next account..."
This ensures automatic failover when Antigravity hangs due to rate limiting.
2026-01-06 05:20:01 +00:00
Iamadig
29a89ff9fa
nano-banana: emit MEDIA token for generated images ( #271 )
2026-01-05 23:19:50 -06:00
Peter Steinberger
7d1fee70e7
templates: Add MEMORY.md long-term memory concept
...
- Updated session start to include MEMORY.md loading for main sessions
- Added 🧠 MEMORY.md section explaining:
- Only load in main sessions (direct with human), not shared contexts
- Security boundary: personal context shouldn't leak to strangers
- Can freely read/edit/update in main sessions
- Write significant events, thoughts, decisions, opinions
- Curated memory vs raw daily logs
This gives new agents proper long-term memory that's secure and personal.
2026-01-06 05:19:24 +00:00
Muhammed Mukhthar CM
ce6c7737c1
feat: add round-robin rotation and cooldown for auth profiles
...
Adds usage tracking to auth profiles for automatic rotation:
- ProfileUsageStats type with lastUsed, cooldownUntil, errorCount
- markAuthProfileUsed(): tracks successful usage, resets errors
- markAuthProfileCooldown(): applies exponential backoff (1/5/25/60min)
- isProfileInCooldown(): checks if profile should be skipped
- orderProfilesByMode(): now sorts by lastUsed (oldest first)
On auth/rate-limit failures, profiles are marked for cooldown before
rotation. On success, usage is recorded for round-robin ordering.
This enables automatic load distribution across multiple accounts
(e.g., Antigravity 5-hour rate limit windows).
2026-01-06 05:17:59 +00:00
Muhammed Mukhthar CM
06df6a955a
feat: use email-based profile IDs for OAuth providers
...
Changes writeOAuthCredentials and applyAuthProfileConfig calls to use
the email from OAuth response as part of the profile ID instead of
hardcoded ":default".
This enables multiple accounts per provider - each login creates a
separate profile (e.g., google-antigravity:user@gmail.com ) instead
of overwriting the same :default profile.
Affected files:
- src/commands/onboard-auth.ts (generic writeOAuthCredentials)
- src/commands/configure.ts (Antigravity flow)
- src/wizard/onboarding.ts (Antigravity flow)
2026-01-06 05:17:59 +00:00
Shadow
88cb13dc82
Auto-reply: fix typing stop race ( #270 )
2026-01-05 22:57:04 -06:00
Peter Steinberger
35a2140e48
fix: clean up poll merge
2026-01-06 04:51:05 +00:00
Peter Steinberger
0b27964693
feat: unify poll support
...
Co-authored-by: DBH <5251425+dbhurley@users.noreply.github.com >
2026-01-06 04:51:05 +00:00
Sreekaran Srinath
1f4d9e83ff
fix(ui): add anyOf/oneOf support in config form ( #268 )
...
* fix(ui): add anyOf/oneOf support in config form
- Handle literal unions as dropdowns with type preservation
- Handle primitive unions (string|number, boolean|string) as text inputs
- Unwrap single-variant optional types
- Fix enum handler to preserve types via index-based values
- Update normalizeUnion to support primitive unions in schema analysis
- Exclude allOf from union normalization (stays unsupported)
Fields like Thinking Default, Allow From, Memory now render properly
instead of showing 'unsupported schema node' errors.
* UI: fix enum placeholder collision
* Docs: update changelog for PR #268
---------
Co-authored-by: Shadow <hi@shadowing.dev >
2026-01-05 22:50:07 -06:00
Asleep
8880128ebf
Format messages so they work with Gemini API ( #266 )
...
* fix: Gemini stops working after one message in a session
* fix: small issue in test file
* test: cover google role-merge behavior
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-01-06 04:45:40 +00:00
DBH
2737e17c67
feat: Add WhatsApp poll support ( #248 )
...
Implements issue #123 - WhatsApp Poll Support
## Gateway Protocol
- Add `poll` RPC method with params: to, question, options (2-12), selectableCount
## ActiveWebListener
- Add `sendPoll(to, poll)` method to interface
- Implementation uses Baileys poll message type
## CLI Command
- `clawdbot poll --to <jid> -q <question> -o <opt1> -o <opt2> [-s count]`
- Supports --dry-run, --json, --verbose flags
- Validates 2-12 options
## Changes
- src/gateway/protocol/schema.ts: Add PollParamsSchema
- src/gateway/protocol/index.ts: Export validator and types
- src/web/active-listener.ts: Add sendPoll to interface
- src/web/inbound.ts: Implement sendPoll using Baileys
- src/web/outbound.ts: Add sendPollWhatsApp function
- src/gateway/server-methods/send.ts: Add poll handler
- src/commands/poll.ts: New CLI command
- src/cli/program.ts: Register poll command
Closes #123
2026-01-06 04:44:15 +00:00
Peter Steinberger
ea6ee16461
chore: fix lint warnings
2026-01-06 05:41:24 +01:00
Peter Steinberger
77789cb9a8
fix: improve compaction queueing and oauth flows
2026-01-06 05:41:24 +01:00
Marcus Neves
9ab0b88ac6
feat(whatsapp,telegram): add groupPolicy config option ( #216 )
...
Co-authored-by: Marcus Neves <conhecendo.contato@gmail.com >
Co-authored-by: Shadow <hi@shadowing.dev >
2026-01-05 22:41:19 -06:00
Peter Steinberger
f6d9d3ce67
docs: credit Kevin Kern for mention gating
...
Co-authored-by: Kevin Kern <hello@regenrek.at >
2026-01-06 04:22:02 +00:00
Peter Steinberger
53c9feb597
test: cover slack thread reply routing
2026-01-06 05:11:06 +01:00
Peter Steinberger
e54865bbd2
Merge pull request #251 from scald/fix/slack-thread-replies
...
fix(slack): preserve thread context in auto-replies
2026-01-06 04:10:53 +00:00
Steve Caldwell
7034d4f807
fix(slack): preserve thread context in auto-replies
...
When replying to a message in a Slack thread, the response now stays
in the thread instead of going to the channel root.
Only threads replies when the incoming message was already in a thread
(has thread_ts). Top-level messages get top-level replies.
Fixes #250
2026-01-06 05:09:04 +01:00
Shadow
7b343f995c
Changelog: add entries for PRs 220 and 261
2026-01-05 22:07:29 -06:00
Ayaan Zaidi
bd735182b6
feat(telegram): support media groups (multi-image messages) ( #220 )
2026-01-05 22:04:33 -06:00
VACInc
fb2513e265
fix(discord): Use channel ID for DMs instead of user ID ( #261 )
...
Co-authored-by: VAC <vac@vacs-mac-mini.localdomain >
2026-01-05 22:02:33 -06:00
Peter Steinberger
13eb9c9ee9
refactor: centralize reply dispatch
2026-01-06 04:55:00 +01:00
Peter Steinberger
319dd14e8e
docs: clarify group allowlists in README
2026-01-06 04:47:41 +01:00
Peter Steinberger
e14a0b3746
Merge pull request #265 from clawdbot/chore/pr-241-reopen
...
PR #241 reconciliation
2026-01-06 03:42:47 +00:00
Peter Steinberger
5946f4c341
test: extend typing idle coverage
2026-01-06 03:42:33 +00:00
Peter Steinberger
241a215528
chore: reconcile PR #241
2026-01-06 04:42:18 +01:00
kitze
97afd3a388
chore: credit @kitze for PR #241
2026-01-06 04:31:08 +01:00
Peter Steinberger
1a4f7d3388
feat: add ack reaction defaults
2026-01-06 03:28:47 +00:00
Peter Steinberger
58186aa56e
test: cover typing idle gate
2026-01-06 03:28:47 +00:00
Peter Steinberger
ca8f66f844
refactor: unify group allowlist policy
2026-01-06 04:27:51 +01:00
Ayaan Zaidi
b1bb3ff6a6
feat: add reaction to acknowledge message in createTelegramBot
2026-01-06 03:21:56 +00:00
Peter Steinberger
9d656f4269
style: satisfy lint
2026-01-06 03:11:42 +00:00
Peter Steinberger
d5f088978a
fix: stop typing after dispatcher idle
2026-01-06 03:09:49 +00:00
Josh Palmer
cbc39bd005
use process PATH for bash tool ( #202 )
...
what: default bash PATH to process.env.PATH
why: ensure Nix-provided tools on PATH inside sessions
tests: not run
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-01-06 03:05:21 +00:00
Peter Steinberger
070f7db196
docs: thank @joshp123 for PR #202
2026-01-06 04:04:42 +01:00
Peter Steinberger
20a361a3cf
refactor: centralize agent timeout defaults
2026-01-06 02:48:44 +00:00
Martin Schürrer
d83ca74c18
gateway: honor agent timeout for chat.send ( #229 )
...
Co-authored-by: clawd@msch <clawd@msch>
2026-01-06 02:45:02 +00:00
Peter Steinberger
9b5610aa45
style: format telegram bot test
2026-01-06 03:43:05 +01:00
Peter Steinberger
92ff3311ee
chore: remove unused patch file
2026-01-06 03:41:56 +01:00
Peter Steinberger
3211fee063
docs: note legacy patch file
2026-01-06 03:41:56 +01:00
Peter Steinberger
c1698b6975
docs: add bun install support
2026-01-06 03:41:56 +01:00
Peter Steinberger
9623bd7763
fix: route agent CLI via gateway
2026-01-06 03:41:56 +01:00
Ayaan Zaidi
e5e8ed4aef
chore: credit PR #226 contribution
2026-01-06 02:40:29 +00:00
Peter Steinberger
77ac45b90e
docs: update contributors
2026-01-06 02:33:27 +00:00
Peter Steinberger
0398f684e7
fix: add gateway stop/restart commands
2026-01-06 03:25:32 +01:00
Peter Steinberger
cc0ef4d012
fix(telegram): improve gif handling
2026-01-06 02:22:19 +00:00
Peter Steinberger
45c67a48af
docs: thank mneves75 for cron hardening
2026-01-06 03:10:13 +01:00
Marcus Neves
67e1452f4a
Cron: normalize cron.add inputs + align channels ( #256 )
...
* fix: harden cron add and align channels
* fix: keep cron tool id params
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-01-06 02:09:48 +00:00
Peter Steinberger
00061b2fd3
fix: harden config form
2026-01-06 03:05:56 +01:00
Peter Steinberger
20705d1b37
fix: set codex oauth model default
2026-01-06 02:49:45 +01:00
Peter Steinberger
17db03ad55
test: ignore SIGPIPE in docker e2e
2026-01-06 02:49:45 +01:00
Peter Steinberger
28fad05e96
test: stabilize docker onboarding e2e
2026-01-06 02:49:45 +01:00
Peter Steinberger
b6ac2d860d
fix: resolve embedded api key lookup
2026-01-06 02:49:44 +01:00
Peter Steinberger
b30bae89ed
feat: track compaction count + verbose notice
2026-01-06 02:49:03 +01:00
Peter Steinberger
3c6dea3ef3
style: format gmail watcher test
2026-01-06 01:46:59 +00:00
Peter Steinberger
55b33b4e69
fix: stop gmail watcher restart on bind error
2026-01-06 01:40:15 +00:00
Peter Steinberger
11a5495919
docs: add group chat guidance
2026-01-06 01:40:02 +00:00
Peter Steinberger
87f4efda8d
fix: restore auth fallback ordering
2026-01-06 01:38:15 +00:00
Peter Steinberger
6f541d6304
fix: improve discord permission errors
2026-01-06 01:38:15 +00:00
Echo
162f8e9bb7
fix(discord): convert readMessages timestamps to local time ( #240 )
...
Co-authored-by: Cash Williams <cashwilliams@gmail.com >
2026-01-05 19:37:05 -06:00
Peter Steinberger
b6ae376076
fix: gate reset auth and infer whatsapp sender
2026-01-06 02:23:55 +01:00
Peter Steinberger
b85248bd07
fix: patch qrcode-terminal import for Node 22
2026-01-06 02:23:55 +01:00
Peter Steinberger
b56338171b
feat: gate slash commands and add compact
2026-01-06 02:23:55 +01:00
Peter Steinberger
085c70a87b
fix: prefer env keys unless profiles configured
2026-01-06 01:21:45 +00:00
Peter Steinberger
216a23ed08
fix: auto-migrate legacy config on CLI
2026-01-06 01:10:32 +00:00
Peter Steinberger
e73573eaea
fix: clean model config typing
2026-01-06 01:08:36 +00:00
Peter Steinberger
b04c838c15
feat!: redesign model config + auth profiles
2026-01-06 00:56:58 +00:00
Peter Steinberger
bd2e003171
docs: expand Slack scope notes
2026-01-06 01:54:06 +01:00
Jarvis
6fe250cb46
docs(slack): add missing scopes for DM replies ( #235 )
...
The manifest was missing scopes required for conversations.open API,
which is used to get DM channel IDs for replies.
Added scopes:
- im:write (required for DM replies)
- im:read (list DM conversations)
- mpim:write (reply to multi-person DMs)
- mpim:read (list MPDMs)
- groups:write (private channel interactions)
- groups:read (list private channels)
Without im:write, the example config (dm.enabled: true) cannot
actually reply to DMs - fails with missing_scope error.
Co-authored-by: Manuel Hettich <17690367+ManuelHettich@users.noreply.github.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-01-06 00:53:29 +00:00
Peter Steinberger
f7074ea45f
test: cover logging defaults
2026-01-06 01:39:42 +01:00
Peter Steinberger
d813e14950
chore: update mention gating docs and tests
2026-01-06 01:38:36 +01:00
Peter Steinberger
811ec8b78b
fix: unify mention gating across providers
2026-01-06 01:32:17 +01:00
Peter Steinberger
48d52d13f1
docs: clarify 1password tmux flow
2026-01-06 01:30:48 +01:00
Peter Steinberger
df9005d64c
fix(ui): handle slack config snapshot
2026-01-06 01:16:25 +01:00
Peter Steinberger
5356adba8f
fix: keep Slack thread replies in thread
2026-01-06 01:09:25 +01:00
Peter Steinberger
291c6f3b60
test: cover WhatsApp DM senderE164
2026-01-06 00:55:41 +01:00
Xin
a6a45f4b84
fix(whatsapp): populate senderE164 for direct chats to enable owner commands ( #247 )
2026-01-05 23:54:35 +00:00
Peter Steinberger
a4fdfc2414
chore: fix redaction lint
2026-01-06 00:42:23 +01:00
Peter Steinberger
8be168b180
fix: redact sensitive tokens in tool summaries
2026-01-06 00:41:12 +01:00
Peter Steinberger
2ec9d75ac2
feat: add 1password skill
2026-01-06 00:26:58 +01:00
Peter Steinberger
20e00eb89b
fix: normalize unknown prompt errors
2026-01-05 23:05:57 +00:00
Peter Steinberger
ac3dedaa1b
feat: standardize timestamps to UTC
2026-01-05 23:03:59 +00:00
Peter Steinberger
f790f3f3ba
fix/heartbeat ok delivery filter ( #246 )
...
* cron: skip delivery for HEARTBEAT_OK responses
When an isolated cron job has deliver:true, skip message delivery if the
response is just HEARTBEAT_OK (or contains HEARTBEAT_OK at edges with
short remaining content <= 30 chars). This allows cron jobs to silently
ack when nothing to report but still deliver actual content when there
is something meaningful to say.
Media is still delivered even if text is HEARTBEAT_OK, since the
presence of media indicates there's something to share.
* fix(heartbeat): make ack padding configurable
* chore(deps): update to latest
---------
Co-authored-by: Josh Lehman <josh@martian.engineering >
2026-01-05 22:52:13 +00:00
Josh Lehman
dae7f560a5
cron: skip delivery for HEARTBEAT_OK responses ( #238 )
...
When an isolated cron job has deliver:true, skip message delivery if the
response is just HEARTBEAT_OK (or contains HEARTBEAT_OK at edges with
short remaining content <= 30 chars). This allows cron jobs to silently
ack when nothing to report but still deliver actual content when there
is something meaningful to say.
Media is still delivered even if text is HEARTBEAT_OK, since the
presence of media indicates there's something to share.
2026-01-05 22:16:28 +00:00
Peter Steinberger
4c6302d0f4
docs: refine showcase page
2026-01-05 23:06:14 +01:00
Peter Steinberger
53bf8b7b80
fix: avoid duplicate missing auth label
2026-01-05 23:00:37 +01:00
Peter Steinberger
e5058a4cf9
docs: add showcase page
2026-01-05 22:58:38 +01:00
CI
d9cdf3b8ac
fix(model): treat quota errors as rate limits
2026-01-05 21:34:08 +00:00
CI
c627efce3e
fix(model): retry with supported thinking level
2026-01-05 21:34:08 +00:00
CI
5622dfe86b
fix: retry model fallback on rate limits
2026-01-05 21:34:08 +00:00
Peter Steinberger
7900d33701
docs: add README clarifiers
2026-01-05 22:32:02 +01:00
Peter Steinberger
29748864a4
docs: expand README doc links
2026-01-05 22:30:47 +01:00
Peter Steinberger
d787316e65
docs: prune refactor notes + update README
2026-01-05 22:24:31 +01:00
Peter Steinberger
b5c2c724dd
docs: clarify sessions tools
2026-01-05 22:23:31 +01:00
Peter Steinberger
1b6c8178ae
style: apply biome formatting
2026-01-05 21:21:53 +00:00
Peter Steinberger
dbea8eb69e
docs: clarify lingering onboarding notes
2026-01-05 21:20:05 +00:00
Tobias Bischoff
de153a40d0
Onboard: auto-enable systemd lingering on Linux
2026-01-05 21:20:05 +00:00
Peter Steinberger
949ea38ef5
docs: clarify bun + browser enablement
2026-01-05 22:17:14 +01:00
Peter Steinberger
57abcba08a
docs: add remote gateway and elevated notes
2026-01-05 22:15:26 +01:00
Peter Steinberger
ab27b98f7b
docs: fix front matter + workspace defaults
2026-01-05 22:13:21 +01:00
Peter Steinberger
1e9d7e0d79
docs: fix oauth path references
2026-01-05 21:53:37 +01:00
Peter Steinberger
872f30fee0
docs: clawtributors line
2026-01-05 21:47:56 +01:00
Peter Steinberger
055b497332
docs: add hubs index and clawdibuted
2026-01-05 21:46:52 +01:00
Peter Steinberger
60adfecdfa
docs: sync platform docs + nav
2026-01-05 21:30:19 +01:00
Peter Steinberger
70f38400c0
docs: expand README platform + subsystem links
2026-01-05 21:02:02 +01:00
Peter Steinberger
14d7da6ec2
docs: unify app docs
2026-01-05 20:59:54 +01:00
Peter Steinberger
79e4354e5c
docs: merge contributing into community
2026-01-05 20:38:20 +01:00
Peter Steinberger
6c33574160
docs: add community contributors
2026-01-05 20:34:39 +01:00
Peter Steinberger
2f9d85f4c7
docs: finalize model config decisions
2026-01-05 19:28:06 +00:00
Peter Steinberger
cd12f34eba
docs: refine model config decisions
2026-01-05 19:26:47 +00:00
Peter Steinberger
d88c523ba4
docs: add model config proposal
2026-01-05 19:25:07 +00:00
Peter Steinberger
38e63cbe0e
docs: refresh README + architecture links
2026-01-05 20:10:56 +01:00
Peter Steinberger
c75b2a7067
refactor: unify reply dispatch across providers
2026-01-05 19:43:54 +01:00
Peter Steinberger
bfe7f5f126
docs: add recommended source setup
2026-01-05 19:40:05 +01:00
Peter Steinberger
cc790f2c84
docs(agent): annotate stream invariants
2026-01-05 18:10:03 +00:00
Peter Steinberger
86ad703f53
refactor(agent): extract block chunker + tool adapter
2026-01-05 18:05:40 +00:00
Peter Steinberger
7c89ce93b5
fix(agent): align tools + preserve indentation
2026-01-05 17:55:20 +00:00
Peter Steinberger
196eb86e38
fix(ui): animate reading indicator dots
2026-01-05 17:40:15 +00:00
Peter Steinberger
ad6bec4612
fix: enable systemd lingering for gateway
2026-01-05 18:38:43 +01:00
Peter Steinberger
0fb30db819
test: expand fenced block chunking coverage
2026-01-05 18:38:43 +01:00
Peter Steinberger
22105c8496
fix(agent): finalize block chunking
2026-01-05 17:22:29 +00:00
Peter Steinberger
b7e708c764
fix(chat): stabilize web UI tool runs
2026-01-05 17:22:29 +00:00
Peter Steinberger
86c404c48b
chore: fix reply commands lint
2026-01-05 18:16:39 +01:00
Peter Steinberger
f0abd619be
chore: add model-usage skill
2026-01-05 18:16:29 +01:00
Julian Engel
110e2255c4
fix: pass custom tools via customTools parameter to pi-coding-agent SDK
...
The SDK's tools parameter only accepts built-in tools (read, bash, edit, write).
Custom clawdbot tools (browser, canvas, nodes, cron, etc.) were being filtered
out, causing 'Tool not found' errors at runtime.
Split tools into built-in and custom, passing them via the correct parameters.
2026-01-05 17:00:06 +00:00
Julian Engel
ec26ad81be
docs: add cross-references to Linux browser troubleshooting
2026-01-05 17:00:06 +00:00
Julian Engel
27a77454ae
docs: add Linux browser troubleshooting guide
...
Covers:
- Snap Chromium issues on Ubuntu
- Solution 1: Install Google Chrome (recommended)
- Solution 2: attachOnly mode workaround
- Systemd service for auto-starting browser
- Config reference
2026-01-05 17:00:06 +00:00
Peter Steinberger
55e4e76d43
fix: preserve fenced markdown in block streaming
2026-01-05 17:53:53 +01:00
Peter Steinberger
234059811c
feat(ui): add chat reading indicator
2026-01-05 16:16:34 +00:00
Peter Steinberger
7f3f73af1c
fix: show model auth in status
2026-01-05 15:50:18 +01:00
Peter Steinberger
bf6aad1965
fix(ci): format directive-handling
2026-01-05 14:34:55 +00:00
Django Navarro
977467066d
fix(coding-agent): close PR template code block correctly
...
The outer fence (4 backticks) was closing prematurely after the bash
example, leaving the rest of the template (Feature intent through
Submitted by Razor) rendered as prose instead of inside the code block.
Fixed by moving the closing fence to the end of the full template.
2026-01-05 14:33:21 +00:00
Peter Steinberger
0c37f27a4a
fix: show /model auth source
2026-01-05 14:14:26 +00:00
Peter Steinberger
cffbe79077
fix: add /model list alias
2026-01-05 14:11:33 +00:00
Peter Steinberger
bb959684fe
fix(tui): support pi-tui 0.36 key exports
2026-01-05 13:59:50 +00:00
Peter Steinberger
8e8d07cbf4
fix(ci): satisfy formatter checks
2026-01-05 13:55:53 +00:00
Peter Steinberger
5f4936dce5
fix(wizard): type OAuth provider login
2026-01-05 13:55:46 +00:00
Peter Steinberger
a9bcf88bfa
refactor(tui): use key helper predicates
2026-01-05 13:55:43 +00:00
Peter Steinberger
f24fe4e9cd
fix(whatsapp): reconnect on crypto unhandled rejection
2026-01-05 13:55:37 +00:00
Peter Steinberger
7619534bc0
feat(groups): resolve requireMention for discord/slack
2026-01-05 13:55:32 +00:00
Peter Steinberger
ce68d82dfa
fix: widen /model key masking
2026-01-05 13:50:45 +00:00
Peter Steinberger
5163886694
fix: show auth in /model list
2026-01-05 13:49:25 +00:00
Peter Steinberger
d9103b387a
fix: sync gateway mode via gateway config
2026-01-05 06:39:37 +00:00
Peter Steinberger
724354b9f0
fix: make tool list dynamic in system prompt
2026-01-05 06:36:24 +00:00
Peter Steinberger
79561d07a0
fix: allow openai-codex in onboarding types
2026-01-05 07:33:33 +01:00
Peter Steinberger
30038f7d37
fix: custom connections sidebar
2026-01-05 07:25:13 +01:00
Peter Steinberger
5431a9c692
fix: clean status + help + mid alias
2026-01-05 07:24:51 +01:00
Peter Steinberger
5aebc07369
chore: remove stale a2ui bundle hash
2026-01-05 06:17:06 +00:00
Peter Steinberger
7c51efe8f8
fix: prefer gateway config in local mode
2026-01-05 06:16:48 +00:00
Peter Steinberger
1119f2003e
fix: preserve JSON5 config parsing
2026-01-05 06:16:48 +00:00
Peter Steinberger
9be1a14a08
fix: resolve agent dir in onboarding
2026-01-05 07:12:13 +01:00
Peter Steinberger
17ef7b3b0e
fix: status runtime + help
2026-01-05 07:07:17 +01:00
Peter Steinberger
0d0da2e297
fix: remove sidebar toggle toolbar item safely
2026-01-05 06:49:57 +01:00
Peter Steinberger
82c16a8bed
fix: remove settings sidebar toggle
2026-01-05 06:48:49 +01:00
Peter Steinberger
2c0f3a2887
docs: update auth docs
2026-01-05 06:46:20 +01:00
Peter Steinberger
bc74e7cd9b
docs: default mac build arch to host
2026-01-05 06:45:23 +01:00
Peter Steinberger
1545ac0003
chore: update a2ui bundle hash
2026-01-05 06:39:08 +01:00
Peter Steinberger
160fd1d8b6
docs: clarify a2ui bundle hash handling
2026-01-05 06:39:03 +01:00
Peter Steinberger
4305472787
docs: document sandbox media staging
2026-01-05 06:37:12 +01:00
Peter Steinberger
545f52d7d5
fix: hide settings toolbar row
2026-01-05 06:36:34 +01:00
Peter Steinberger
a40fd5219c
docs: clarify unrecognized file handling
2026-01-05 06:36:30 +01:00
Peter Steinberger
48322f7174
docs: highlight oauth and any-os support
2026-01-05 06:35:43 +01:00
Peter Steinberger
f3cb41511d
feat: add openai codex oauth
2026-01-05 06:31:45 +01:00
Peter Steinberger
bce62f8c0f
chore: update pi dependencies
2026-01-05 06:19:35 +01:00
Peter Steinberger
995f5959af
fix: stage sandbox media for inbound attachments
2026-01-05 06:18:11 +01:00
Peter Steinberger
a7d33c06f9
refactor: align agent lifecycle
2026-01-05 05:55:02 +01:00
Peter Steinberger
ce5fd84432
docs: note settings sidebar layout
2026-01-05 05:54:37 +01:00
Peter Steinberger
a89204362e
fix: use sidebar settings layout
2026-01-05 05:54:21 +01:00
Peter Steinberger
bcdaba1d48
chore: format custom editor
2026-01-05 05:32:30 +01:00
Peter Steinberger
95d9160e27
fix: avoid settings toolbar overflow
2026-01-05 05:32:14 +01:00
Peter Steinberger
8a31a868c0
fix: honor tailnet bind for macOS gateway endpoint
2026-01-05 05:30:40 +01:00
Peter Steinberger
870473be85
chore: update deps
2026-01-05 05:27:58 +01:00
Peter Steinberger
b593ccb122
chore: update appcast for 2026.1.5-3
2026-01-05 05:14:07 +01:00
Peter Steinberger
35a32b31bd
docs: note notarize env vars
2026-01-05 04:26:05 +01:00
Peter Steinberger
5dbbad0452
chore: default mac packaging to notarize
2026-01-05 04:22:58 +01:00
Peter Steinberger
19affcac90
chore: update appcast for 2026.1.5-3
2026-01-05 04:00:08 +01:00
Peter Steinberger
92f95abdcf
docs: link to hosted docs
2026-01-05 03:59:58 +01:00
Peter Steinberger
477fa49a30
fix: include missing dist dirs in npm pack
2026-01-05 03:56:57 +01:00
Peter Steinberger
36b96c2b28
chore: update appcast for 2026.1.5-2
2026-01-05 03:53:09 +01:00
Peter Steinberger
2eb78b8da7
fix: resolve qrcode ESM import for Node 25
2026-01-05 03:47:57 +01:00
Peter Steinberger
3110e37db4
chore: update appcast for 2026.1.5-1
2026-01-05 03:32:53 +01:00
Peter Steinberger
93bb0257f0
fix: include sessions in npm pack and update qrcode import
2026-01-05 03:28:25 +01:00
Peter Steinberger
197b8f7c3b
chore: update appcast for 2026.1.5
2026-01-05 03:13:14 +01:00
Peter Steinberger
deba1b6739
style: format daemon program args test
2026-01-05 02:54:08 +01:00
Peter Steinberger
aab98a6d18
test: fix daemon program args fs mocks
2026-01-05 02:51:56 +01:00
Peter Steinberger
849a008f34
test: avoid max port in browser server tests
2026-01-05 02:50:48 +01:00
Peter Steinberger
8791e46cf3
fix: resolve npx gateway daemon install
2026-01-05 02:48:25 +01:00
Peter Steinberger
b779029517
fix: hide duplicate doc titles
2026-01-05 02:45:14 +01:00
Peter Steinberger
9c039e8356
docs: consolidate 2026.1.5 changelog
2026-01-05 02:39:42 +01:00
Peter Steinberger
4aeba76741
docs: add ClawdHub mention
2026-01-05 02:34:02 +01:00
Peter Steinberger
d92a9e351e
style: fix linting order and formatting
2026-01-05 02:33:59 +01:00
Peter Steinberger
a1acd7dae8
chore: add qrcode-terminal vendor module stubs
2026-01-05 02:33:55 +01:00
Peter Steinberger
67420e9a81
fix: allow group activation for allowFrom senders
2026-01-05 02:33:51 +01:00
Peter Steinberger
e4335ea094
fix: bundle qr renderer in relay
2026-01-05 02:19:49 +01:00
Peter Steinberger
0c632f4855
fix: prefer tailnet IP for local gateway calls
2026-01-05 02:19:26 +01:00
Peter Steinberger
a322075764
fix: use id for cron tool params
2026-01-05 02:15:11 +01:00
Peter Steinberger
359cb66e68
fix: allow wildcard control commands
2026-01-05 02:06:18 +01:00
Peter Steinberger
00370139a5
docs: clarify derived port mapping
2026-01-05 02:03:29 +01:00
Peter Steinberger
17422608b2
fix: gate /activation to owners in groups
2026-01-05 02:03:29 +01:00
Peter Steinberger
f871563f37
chore: sync generated protocol swift
2026-01-05 00:54:54 +00:00
Peter Steinberger
85549ac3b6
fix: gate group activation by owner
2026-01-05 00:48:16 +00:00
Peter Steinberger
1bad96aa2b
style: tidy auto-reply imports and formatting
2026-01-05 01:46:16 +01:00
Peter Steinberger
b0dcdc4982
fix: avoid mixing ?? and || in discord monitor
2026-01-05 01:46:16 +01:00
Shadow
13d39b8fb1
Fix discord/slack monitor compile errors
2026-01-04 18:44:19 -06:00
Peter Steinberger
50d26d827e
fix: avoid duplicate senderName in slack monitor
2026-01-05 00:43:31 +00:00
Peter Steinberger
3fc9acc105
Merge remote-tracking branch 'mcinteerj/fix/whatsapp-offline-read-receipts'
2026-01-05 01:38:24 +01:00
Peter Steinberger
d58828ebd7
test: relax timeouts for slow runs
2026-01-05 01:36:30 +01:00
Peter Steinberger
f90eea5195
docs: add changelog entry for WhatsApp offline read receipts
2026-01-05 01:36:30 +01:00
Jake
3f40f4ab54
style: fix lint issues
2026-01-05 01:36:30 +01:00
Jake
65a55b97e0
WhatsApp: mark offline/history messages as read
2026-01-05 01:36:29 +01:00
Peter Steinberger
852f947b44
fix: unify control command handling
2026-01-05 01:31:36 +01:00
Peter Steinberger
54ad1ead80
docs: document --dev/--profile
2026-01-05 01:27:13 +01:00
Peter Steinberger
c6de1b1f7d
feat: add --dev/--profile CLI profiles
2026-01-05 01:27:13 +01:00
Peter Steinberger
f601dac30d
style: tidy tool schema normalization
2026-01-05 01:27:13 +01:00
Peter Steinberger
2bbf2698cb
fix(ui): render markdown in tool result cards
2026-01-05 01:27:13 +01:00
Peter Steinberger
f6097bc6e3
fix(ui): avoid overlapping guild action buttons
2026-01-05 01:27:13 +01:00
Peter Steinberger
39e482414a
chore: apply upstream autostash
2026-01-05 00:26:52 +00:00
Peter Steinberger
d6933b074a
fix: make control ui chat scroll page
2026-01-05 00:18:18 +00:00
Peter Steinberger
bcdfe461d4
fix(ci): resolve lint and docs build failures
2026-01-05 00:17:14 +00:00
Peter Steinberger
16ce76307e
docs(faq): align model ids with shorthands
2026-01-05 01:11:29 +01:00
Peter Steinberger
c37b4c18e0
docs: document env loading + shell fallback
2026-01-05 01:11:29 +01:00
Peter Steinberger
2899a986a8
feat(config): add default model shorthands
2026-01-05 01:11:29 +01:00
Peter Steinberger
7a63b4995b
feat: opt-in login shell env fallback
2026-01-05 01:11:29 +01:00
Peter Steinberger
7a36e6fcd9
fix(discord): avoid duplicate block replies
2026-01-05 01:11:29 +01:00
Peter Steinberger
77b19643e2
fix: load global .env fallback
2026-01-05 01:11:29 +01:00
Josh Palmer
aa45f512f4
fix sessions dir from state env
...
what: use CLAWDBOT_STATE_DIR/CLAWDIS_STATE_DIR for session transcripts
why: isolate multi-instance gateways
tests: not run
2026-01-05 00:51:11 +01:00
Peter Steinberger
59dfe0337d
docs(changelog): note OpenAI duplicate reply fix
2026-01-05 00:39:34 +01:00
Peter Steinberger
4963432777
fix(discord): avoid duplicate replies on repeated message_end
2026-01-05 00:35:42 +01:00
Josh Palmer
a737bfaab4
docs: make nix-clawdbot link more prominent
...
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-05 00:24:33 +01:00
Josh Palmer
67c89e00c5
docs: add Nix installation guide and navigation
...
- Expand docs/nix.md from runtime-only to full installation guide
- Reference nix-clawdbot as the recommended Nix setup path
- Add "Installation" section to docs.json navigation (wizard, nix, docker, setup)
- Add Nix link to README quick links
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-05 00:22:15 +01:00
Peter Steinberger
8f572ab361
docs: add WhatsApp Business tip for same-phone setup
2026-01-04 23:17:26 +00:00
Peter Steinberger
435edaf997
fix: OpenAI tool schema compatibility
2026-01-05 00:15:55 +01:00
Peter Steinberger
c3c9dee65e
docs(tools): document agent tool allow/deny
2026-01-05 00:05:35 +01:00
Jake
946b32c842
fix(whatsapp): suppress typing during heartbeats
...
- Prevent typing indicator during heartbeat runs
- Add regression tests
Co-authored-by: Jake <mcinteerj@gmail.com >
2026-01-04 23:03:36 +00:00
Peter Steinberger
4dd515b65f
fix(tools): honor agent tool denylist without sandbox
2026-01-05 00:02:14 +01:00
Andranik Sahakyan
d9a9f6db7d
fix(mac): add Sendable conformance to generated Swift protocol structs ( #195 )
...
* fix(mac): add Sendable conformance to generated Swift protocol structs
* fix(mac): make generated protocol types Sendable
* chore(mac): drop redundant Sendable extensions
* docs(changelog): thank @andranik-sahakyan for Sendable fix
* chore(swiftformat): exclude generated protocol models
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-01-04 22:39:21 +00:00
Jake
a6f7ab499f
style: fix lint issues
2026-01-05 11:25:14 +13:00
Jake
3c7c819e9b
WhatsApp: mark offline/history messages as read
2026-01-05 10:23:22 +13:00
Jake
58dd2e9514
fix: also suppress typing indicators in agent-runner during heartbeats
2026-01-05 10:23:22 +13:00
Jake
424b7fe493
fix: prevent typing indicator during heartbeat background tasks
2026-01-05 10:23:22 +13:00
Peter Steinberger
1657c5e3d2
fix: route system events per session
2026-01-04 22:11:04 +01:00
Peter Steinberger
2ceceb8c25
style(ts): normalize type-only imports
2026-01-04 21:56:16 +01:00
Peter Steinberger
39be40cd23
chore(release): bump to 2026.1.5
2026-01-04 21:54:04 +01:00
Peter Steinberger
0faa200924
fix(onboarding): auto-build Control UI assets
2026-01-04 21:53:23 +01:00
Peter Steinberger
ff605194ef
fix(ui): render markdown in chat
2026-01-04 21:51:26 +01:00
Peter Steinberger
78998dba9e
feat: add image model config + tool
2026-01-04 19:35:49 +01:00
Peter Steinberger
0716a624a8
chore(lint): apply biome fixes
2026-01-04 19:08:22 +01:00
Peter Steinberger
e005dcb8e7
fix(oauth): derive oauth.json from state dir
2026-01-04 19:08:13 +01:00
Peter Steinberger
3300fba57c
docs(discord): add bot creation guide
2026-01-04 19:01:04 +01:00
Nachx639
fa3a768a3a
fix(macos): remove authorizedWhenInUse references (iOS-only API) ( #165 )
...
CLAuthorizationStatus.authorizedWhenInUse only exists on iOS. On macOS,
location services only support .authorizedAlways. This was causing
compilation warnings and potentially incorrect behavior.
Fixes:
- GeneralSettings.swift: Remove authorizedWhenInUse check
- PermissionManager.swift: Update ensureLocation and status methods
- MacNodeRuntime.swift: Update location permission check
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-04 17:58:01 +00:00
Peter Steinberger
da4f3211b8
chore: refresh version references
2026-01-04 18:49:36 +01:00
Peter Steinberger
d85f91d247
feat: guide control ui access without gui
2026-01-04 18:49:36 +01:00
Peter Steinberger
5dcf43d6ad
test: cover macos location permission status
2026-01-04 18:49:36 +01:00
Shadow
50cecd8210
Discord: remove duplicate message ids
2026-01-04 11:36:18 -06:00
Onur Solmaz
7dc8ea815e
docs: add macOS launchd instructions for stopping gateway
...
Unify the "Processes keep restarting" FAQ section to cover both macOS
(launchd) and Linux (systemd). Previously only covered Linux.
Also update the "Clean uninstall" section with macOS commands.
2026-01-04 17:29:39 +00:00
Peter Steinberger
2110cac5d6
fix(cli): add config alias and reduce probe noise
2026-01-04 17:23:34 +00:00
Peter Steinberger
9eee832282
chore: update protocol swift models
2026-01-04 18:16:36 +01:00
Peter Steinberger
5d17b84e8a
test(gateway): allow webchat chat.send without node
2026-01-04 17:12:49 +00:00
Peter Steinberger
3fed0ac2e8
fix(ui): show chat send errors
2026-01-04 17:12:49 +00:00
Peter Steinberger
2694e59ba6
fix(gateway): allow Control UI chat without node
2026-01-04 17:12:49 +00:00
Peter Steinberger
266fd748d0
fix(ui): allow Control UI chat without node
2026-01-04 17:12:49 +00:00
Peter Steinberger
564cc9359d
style: swiftformat gateway models
2026-01-04 18:12:33 +01:00
Peter Steinberger
ff46f8ce58
chore: format models CLI
2026-01-04 18:11:41 +01:00
Peter Steinberger
8e5153ba10
docs(changelog): add android notification tap fix
2026-01-04 18:05:26 +01:00
Peter Steinberger
e2c6a96cd3
test(android): cover notification tap intent
2026-01-04 18:05:26 +01:00
Manuel Jiménez Torres
7200dabfb2
feat(android): open app when tapping foreground service notification
...
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-04 18:05:26 +01:00
Peter Steinberger
d923dc56ec
fix: update ClawdBot Swift references
2026-01-04 17:57:53 +01:00
Peter Steinberger
5eb6b779f5
fix: macOS Swift cleanup
2026-01-04 17:57:53 +01:00
Peter Steinberger
0928e3c866
docs: update changelog for models CLI
2026-01-04 17:57:53 +01:00
Peter Steinberger
734bb6b4fd
feat: add models scan and fallbacks
2026-01-04 17:57:52 +01:00
Peter Steinberger
a2ba7ddf90
docs: add models cli plan
2026-01-04 17:57:35 +01:00
Cash Williams
64e656af82
fix: default elevated level to 'off' when not allowed
...
When elevatedAllowed is false (e.g., for heartbeat surface which isn't
in any allowFrom list), the elevated level was incorrectly defaulting
to 'on', causing bash commands to fail with 'elevated is not available'.
Now defaults to 'off' when elevated isn't allowed, so bash works
normally without trying to use elevated mode.
Fixes: https://github.com/clawdbot/clawdbot/issues/181
2026-01-04 17:36:14 +01:00
Peter Steinberger
a2d7632cf3
docs: add changelog entry for cron tool fix
2026-01-04 17:18:29 +01:00
Clawd
17665d1732
fix(cron): pass 'id' instead of 'jobId' to gateway
...
The cron tool was passing { jobId } to the gateway for update/remove/run/runs
actions, but the gateway protocol schema expects { id }. This caused validation
errors when trying to update or remove cron jobs via the tool.
Fixes the parameter name while keeping the external tool API unchanged (still
accepts 'jobId' from callers).
2026-01-04 17:18:29 +01:00
Peter Steinberger
4e072d59c1
chore(protocol): regenerate GatewayModels
2026-01-04 16:05:47 +00:00
Peter Steinberger
94da41dc52
docs: document sandbox image recovery
2026-01-04 16:02:28 +00:00
Peter Steinberger
718299b25a
feat(doctor): repair sandbox images
2026-01-04 16:02:24 +00:00
Peter Steinberger
e80bd1882f
chore: bump Peekaboo submodule
2026-01-04 16:02:16 +00:00
Peter Steinberger
ca09078934
docs: add Discord writing style guide to skill
2026-01-04 15:42:32 +00:00
Peter Steinberger
c54fcd1e74
docs: document legacy doctor migrations
2026-01-04 15:41:25 +00:00
Peter Steinberger
5f09d801d0
feat(doctor): migrate legacy Clawdis config
2026-01-04 15:40:06 +00:00
Peter Steinberger
65ad956ab4
feat(daemon): add legacy Clawdis service cleanup
2026-01-04 15:40:06 +00:00
Peter Steinberger
20e41c5a10
docs: update changelog and README
2026-01-04 16:36:40 +01:00
Peter Steinberger
5d29985c4f
fix: avoid sendable issue in mac location timeout
2026-01-04 16:27:17 +01:00
Peter Steinberger
026a25d164
chore: lint and format cleanup
2026-01-04 16:24:17 +01:00
Peter Steinberger
fd95ededaa
refactor: streamline node invoke handling
2026-01-04 16:24:17 +01:00
Peter Steinberger
c0b248f291
refactor: split connections settings/store
2026-01-04 16:24:17 +01:00
Peter Steinberger
e8de7d083d
feat: update onboard ASCII art to seafood shack lobster theme
2026-01-04 16:24:17 +01:00
Peter Steinberger
21826cdfb9
chore: update Peekaboo submodule
2026-01-04 16:24:17 +01:00
Peter Steinberger
8f53e9093d
test: align google-shared expectations
2026-01-04 15:02:42 +00:00
Peter Steinberger
30d5511058
test: add config for gateway sigterm
2026-01-04 14:59:49 +00:00
Peter Steinberger
c6b8235862
style: format tests and helpers
2026-01-04 14:57:57 +00:00
Peter Steinberger
557aa74ee8
test: update google-shared expectations
2026-01-04 14:57:57 +00:00
Peter Steinberger
7ff318d3f2
docs: note canvasHost reload requires restart
2026-01-04 15:45:42 +01:00
Peter Steinberger
8ff802a072
chore: bump Peekaboo submodule
2026-01-04 14:42:12 +00:00
Peter Steinberger
b79fdd2be8
chore: ignore module cache
2026-01-04 14:41:25 +00:00
Peter Steinberger
246adaa119
chore: rename project to clawdbot
2026-01-04 14:38:51 +00:00
Peter Steinberger
d48dc71fa4
feat: add canvasHost liveReload option
2026-01-04 15:22:47 +01:00
Peter Steinberger
1e555e693a
fix: dedupe canvas host watcher
2026-01-04 15:15:46 +01:00
Peter Steinberger
ec09b06636
fix: wire slack deps and stabilize sigterm test
2026-01-04 15:13:23 +01:00
George Tsifrikas
378e4c9b6b
Fix duplicate sendMessageSlack imports
...
Remove duplicate import statements for sendMessageSlack that were
causing TypeScript compilation errors in deps.ts and heartbeat-runner.ts
Co-Authored-By: Warp <agent@warp.dev >
2026-01-04 14:47:17 +01:00
Peter Steinberger
5ce1eb791e
chore: align rebase with main
2026-01-04 14:41:52 +01:00
Peter Steinberger
529cf91ac3
fix: keep node presence fresh
2026-01-04 14:41:52 +01:00
Mariano Belinky
672700f2b3
docs: add PR template + node presence beacon
2026-01-04 14:41:52 +01:00
Peter Steinberger
476bbd2915
fix: update lockfile and lint
2026-01-04 14:12:00 +01:00
Peter Steinberger
9616add9b1
docs: note android sms capability
2026-01-04 13:59:05 +01:00
Peter Steinberger
71fdf46f18
fix(android): refresh hello on sms permission grant
2026-01-04 13:59:05 +01:00
Peter Steinberger
0d56a73118
fix(android): add sms permission flow and tests
2026-01-04 13:59:05 +01:00
Vasanth Rao Naik Sabavat
1318276105
feat(android): add SMS sending capability to Android node
...
Add sms.send command to allow sending text messages via the paired Android device.
Changes:
- Add SmsManager class to handle SMS sending via Android SmsManager API
- Add ClawdisSmsCommand enum and Sms capability to protocol constants
- Wire sms.send command into NodeRuntime invoke handler
- Add SEND_SMS permission to AndroidManifest.xml
- Advertise sms capability when SEND_SMS permission is granted
The SMS capability is only advertised when the user has granted SEND_SMS
permission. Messages longer than 160 chars are automatically split into
multipart messages.
2026-01-04 13:58:05 +01:00
Peter Steinberger
7aab2ae182
docs: update changelog
2026-01-04 11:44:41 +00:00
Peter Steinberger
ec6980cda0
fix: wire slack into delivery routing
2026-01-04 11:44:41 +00:00
Peter Steinberger
b234d82bf3
fix: add slack deps and send helpers
2026-01-04 11:44:41 +00:00
Muhammed Mukhthar CM
9958283ced
fix: Antigravity API compatibility and Gemini thinking tag leakage ( #167 )
...
* fix: ensure type:object in sanitized tool schemas for Antigravity API
The sanitizeSchemaForGoogle function strips unsupported JSON Schema
keywords like anyOf, but this can leave schemas with 'properties' and
'required' fields without a 'type' field. Both Google's Gemini API and
Anthropic via Antigravity require 'type: object' when these fields exist.
This fix adds a post-sanitization check that ensures type is set to
'object' when properties or required fields are present.
Fixes errors like:
- Gemini: 'parameters.properties: only allowed for OBJECT type'
- Anthropic: 'tools.6.custom.input_schema.type: Field required'
* fix: regenerate pi-ai patch with proper pnpm format
The patch now correctly applies via pnpm patch-commit, fixing:
- Thinking blocks: skip for Gemini, send with signature for Claude
- Schema sanitization: ensure type:object after removing anyOf
- Remove strict:null for LM Studio/Antigravity compatibility
Tested with all Antigravity models (Gemini and Claude).
* fix: strip thinking tags from block streaming output to prevent Gemini tag leakage
2026-01-04 12:44:19 +01:00
Peter Steinberger
d6f8b6ac51
fix: update pi-ai patch and tests
2026-01-04 12:24:01 +01:00
Shadow
8c38a7fee8
Slack: add some fixes and connect it all up
2026-01-04 01:53:26 -06:00
jeffersonwarrior
02d7e286ea
docs: add remote gateway SSH tunnel setup guide
...
- Add SSH config setup for remote gateway access
- Document step-by-step setup process
- Include auto-start LaunchAgent configuration
- Add troubleshooting section
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2026-01-04 07:48:20 +01:00
Peter Steinberger
3910b9b39e
docs(skills): update mcporter
2026-01-04 07:26:59 +01:00
Peter Steinberger
607de4a403
fix: add slack chunk limits
2026-01-04 07:23:39 +01:00
Shadow
7701d395e9
Slack: update docs and tool display
2026-01-04 07:22:05 +01:00
Shadow
0085b2e0a9
Slack: refine scopes and onboarding
2026-01-04 07:22:02 +01:00
Shadow
bf3d120f8c
Slack: add new slack connection
2026-01-04 07:18:20 +01:00
Peter Steinberger
4b3ca29404
build: add homebrew to sandbox image
2026-01-04 06:12:06 +00:00
Peter Steinberger
259b14d66a
chore: refresh protocol models
2026-01-04 07:07:21 +01:00
Peter Steinberger
c9504a6f20
refactor: split config module
2026-01-04 07:05:17 +01:00
Peter Steinberger
5e36e2c3f3
fix: allow elevated via discord username
2026-01-04 05:47:28 +00:00
Peter Steinberger
d2da305190
feat: fallback elevated allowlist to discord dms
2026-01-04 05:31:00 +00:00
Peter Steinberger
be9fa124df
build: add pkg-config + libasound2-dev to sandbox image
2026-01-04 05:28:08 +00:00
Peter Steinberger
ff88f3c075
style: fix lint ordering
2026-01-04 06:27:54 +01:00
Peter Steinberger
1315fc4caf
docs: split elevated directives
2026-01-04 05:21:12 +00:00
Peter Steinberger
a03895dfa9
fix: default elevated mode to on
2026-01-04 05:19:28 +00:00
Peter Steinberger
40c3898ca1
docs: update changelog for #166
2026-01-04 06:17:07 +01:00
Peter Steinberger
6ea0eb438c
style: fix lint formatting
2026-01-04 06:17:07 +01:00
Peter Steinberger
04cd1bd11a
fix(macos): bridge wizard option values
2026-01-04 06:17:07 +01:00
Peter Steinberger
fe0b3500cc
feat: add elevated bash mode
2026-01-04 05:15:59 +00:00
Tu Nombre Real
b978cc4e91
feat(macos): add Swift 6 strict concurrency compatibility
...
Prepares the macOS app for Swift 6 strict concurrency mode by:
1. Adding Sendable conformance to WizardNextResult, WizardStartResult,
and WizardStatusResult in GatewayModels.swift
2. Adding AnyCodable bridging helpers in OnboardingWizard.swift to
handle type conflicts between ClawdisProtocol and local module
3. Making CLLocationManagerDelegate methods nonisolated in:
- MacNodeLocationService.swift
- PermissionManager.swift (LocationPermissionRequester)
Using Task { @MainActor in } pattern to safely access MainActor
state from nonisolated protocol requirements.
These changes are forward-compatible and don't affect behavior on
current Swift versions.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-04 06:09:52 +01:00
Peter Steinberger
72a9e58777
refactor(auto-reply): split reply flow
2026-01-04 05:47:37 +01:00
Peter Steinberger
fd91da2b7f
fix: log dynamic config reloads
2026-01-04 04:24:50 +00:00
Peter Steinberger
5673f4299a
build: add sandbox common image builder
2026-01-04 04:17:13 +00:00
Peter Steinberger
770daadaf7
chore: bump Peekaboo submodule
2026-01-04 05:15:57 +01:00
Peter Steinberger
13c2f22240
refactor: split agent tools
2026-01-04 05:07:44 +01:00
Peter Steinberger
f2ce455c8c
fix: set writable home for sandbox browser
2026-01-04 03:49:39 +00:00
Peter Steinberger
640ec465d7
chore: bump Peekaboo submodule
2026-01-04 04:46:07 +01:00
Peter Steinberger
70f79bd926
fix: stabilize sandbox browser startup
2026-01-04 03:45:14 +00:00
Peter Steinberger
7d95f43a75
style: fix lint
2026-01-04 03:37:08 +00:00
Peter Steinberger
c2f3b653c2
docs: thank scald for Notion skill
2026-01-04 04:36:28 +01:00
Peter Steinberger
12ba32c724
feat(browser): add remote-capable profiles
...
Co-authored-by: James Groat <james@groat.com >
2026-01-04 03:33:07 +00:00
Peter Steinberger
0e75aa2716
test: add sessions_send loopback test
2026-01-04 04:30:57 +01:00
Steve Caldwell
44990d837f
feat: add Notion API skill
...
Create and manage Notion pages, databases, and blocks via API.
2026-01-04 04:29:44 +01:00
Shadow
3a28e3562c
Discord: tools for uploading emojis and stickers!
2026-01-03 21:20:01 -06:00
Peter Steinberger
24aa3e3311
test: stabilize gateway tests
2026-01-04 04:16:38 +01:00
Peter Steinberger
3c4c2aa98c
refactor: split gateway server methods
2026-01-04 04:05:18 +01:00
Peter Steinberger
3ebee63cb3
feat: add clawdhub skill
2026-01-04 04:05:10 +01:00
Peter Steinberger
6d6038b855
docs: tighten wacli skill guidance
2026-01-04 03:45:49 +01:00
Peter Steinberger
55876f7be0
test(agents): cover ping-pong announce flow
2026-01-04 03:41:58 +01:00
Peter Steinberger
cd3c42d0c0
feat(sessions): add agent-to-agent ping-pong
2026-01-04 03:37:44 +01:00
Peter Steinberger
add1301a51
feat(sessions): add agent-to-agent post step
2026-01-04 03:04:55 +01:00
Peter Steinberger
052cec70ae
fix: render thinking text in italics
2026-01-04 02:44:11 +01:00
Peter Steinberger
534de59f7c
docs: clarify menu bar sessionKey usage
2026-01-04 02:10:22 +01:00
Peter Steinberger
1d06164e18
refactor: use per-send run ids for gateway agent
2026-01-04 02:08:52 +01:00
Peter Steinberger
fe67073b74
fix: avoid sessions_send timeouts
2026-01-04 01:52:01 +01:00
Peter Steinberger
cbf41859aa
test: relax cron default scheduler timeout
2026-01-04 01:45:50 +01:00
Cash Williams
12186e14a9
fix(android): handle unreachable gateway gracefully
...
Previously, if the gateway was unreachable (wrong IP, offline, etc.),
the Android app would crash with an unhandled socket exception.
Changes:
- Wrap socket.connect() in try/catch to handle connection failures
- Return PairResult with error message instead of crashing
- Display actual error message in status text instead of generic 'pairing required'
This gives users useful feedback like 'Connection refused' or
'Network is unreachable' instead of a crash.
2026-01-04 01:44:43 +01:00
Peter Steinberger
fbaa109a3a
fix: stabilize lint and test timeouts
2026-01-04 01:42:08 +01:00
Peter Steinberger
70d68d29d0
fix: warm agent.wait cache
2026-01-04 01:35:02 +01:00
Peter Steinberger
e7615c464a
docs: update apple-reminders skill for remindctl
2026-01-04 01:33:47 +01:00
Peter Steinberger
a1780efb9f
fix: adjust typing TTL
2026-01-04 00:26:31 +00:00
Peter Steinberger
53d954695e
style: format agent.wait imports
2026-01-04 01:22:22 +01:00
Peter Steinberger
44bdd4ca0c
chore: regen Swift protocol models
2026-01-04 01:20:20 +01:00
Peter Steinberger
8724c2aea8
fix: satisfy gate checks
2026-01-04 01:16:53 +01:00
Peter Steinberger
e3c543ec06
fix: wait on agent.wait for sessions_send
2026-01-04 01:15:23 +01:00
Peter Steinberger
412e8b3aee
test: cover gif playback send params
2026-01-03 23:57:43 +00:00
Peter Steinberger
5862f95bd2
fix: lock main session deletion
2026-01-03 23:57:17 +00:00
Peter Steinberger
e17c038d18
fix: add gif playback for WhatsApp sends
2026-01-03 23:56:40 +00:00
Peter Steinberger
e1dd764504
feat: add node location support
2026-01-04 00:54:44 +01:00
Peter Steinberger
52f59e6dc1
fix: drop stale ClawdisCLI build flag
2026-01-04 00:42:22 +01:00
Peter Steinberger
3bc24bf179
fix: wait for final agent response in sessions_send
2026-01-04 00:40:40 +01:00
Peter Steinberger
e07fdd117d
docs: migrate Mintlify config
2026-01-04 00:36:55 +01:00
Peter Steinberger
7c062e0ef2
fix: clarify provider requirements in onboarding
2026-01-03 23:29:38 +00:00
Peter Steinberger
0f1781fc2c
docs: add Mintlify config
2026-01-04 00:25:42 +01:00
Peter Steinberger
0f6e566a20
fix: make sessions_send wait via agent events
2026-01-04 00:12:14 +01:00
Peter Steinberger
03ee77b0e1
docs: add mac config sync note
2026-01-04 00:09:18 +01:00
Peter Steinberger
86038ec165
chore: apply lint fixes
2026-01-04 00:06:02 +01:00
Peter Steinberger
e7c9b9a749
feat: add sessions tools and send policy
2026-01-03 23:44:42 +01:00
Peter Steinberger
919d5d1dbb
fix: restore sandbox PATH default
2026-01-03 22:36:16 +00:00
Peter Steinberger
3f7c69fa7f
docs: note mac app config sync
2026-01-03 23:34:25 +01:00
Shadow
cc07ea82a4
CI: split macOS/android checks
2026-01-03 23:25:51 +01:00
Peter Steinberger
30e22769bb
docs: update changelog for #144
2026-01-03 22:25:30 +00:00
Peter Steinberger
6c406b488d
ci: consolidate check jobs
2026-01-03 22:25:29 +00:00
Peter Steinberger
f13f89e8b9
docs: update changelog for PR 156
2026-01-03 22:59:11 +01:00
Peter Steinberger
8b069e62fc
fix: appease lint after merge
2026-01-03 22:59:11 +01:00
Shadow
e2709a3ebd
CI: split macOS/android checks
2026-01-03 21:55:39 +00:00
Azade
18a89a31af
fix(browser): avoid esbuild __name helper in evaluateViaPlaywright
...
When tsx/esbuild compiles arrow functions, it adds a __name helper
for debugging. This helper doesn't exist in the browser context,
causing 'ReferenceError: __name is not defined' when using
page.evaluate() with inline functions.
The fix uses new Function() constructed at runtime, which esbuild
doesn't transform, avoiding the __name injection.
2026-01-03 22:37:21 +01:00
Peter Steinberger
934f891932
fix: include embedded agent error cause in reply
2026-01-03 21:30:43 +00:00
Peter Steinberger
5493772910
fix: tolerate missing sandbox config in embedded runner
2026-01-03 21:30:40 +00:00
Peter Steinberger
c533593d8e
fix: add ~/.local/bin to PATH bootstrap for uv-installed tools ( fixes #78 ) ( #150 )
2026-01-03 22:25:52 +01:00
Mariano Belinky
fe1b894676
docs: clarify personal vs private in README ( #125 )
2026-01-03 22:21:55 +01:00
Mariano Belinky
d88581eb7c
fix: add ~/.local/bin to PATH for uv tool binaries ( #78 )
2026-01-03 22:21:16 +01:00
Peter Steinberger
3d39e2ad75
feat(macos): sync gateway config
2026-01-03 22:17:04 +01:00
Peter Steinberger
2dc10ce337
docs: expand peekaboo skill docs
2026-01-03 22:14:21 +01:00
Peter Steinberger
d8a417f7ff
feat: add sandbox browser support
2026-01-03 22:14:18 +01:00
Peter Steinberger
107dc1aa42
style(logging): organize embedded log imports
2026-01-03 21:09:44 +00:00
Peter Steinberger
9d2d0c64c2
test(gateway): cover config reload
2026-01-03 21:01:26 +00:00
Peter Steinberger
3872f32419
fix(logging): quiet embedded run console logs
2026-01-03 20:57:39 +00:00
Peter Steinberger
3b075dff8a
feat: add per-session agent sandbox
2026-01-03 21:41:58 +01:00
Peter Steinberger
7bad9f3fbd
fix: drop embedded sandbox wiring
2026-01-03 20:16:53 +00:00
Peter Steinberger
16e3535ac0
refactor: remove bash pty mode
2026-01-03 20:15:10 +00:00
Peter Steinberger
a15cffb7de
fix: stream tool summaries early and tool output
2026-01-03 21:04:40 +01:00
Peter Steinberger
03c1599544
docs(templates): add platform formatting tips (Discord embeds, tables)
2026-01-03 20:01:17 +00:00
Shadow
6464d93bbb
Discord: add forwarded message handling
2026-01-03 13:56:09 -06:00
Peter Steinberger
424d31af1f
docs(templates): add voice storytelling tip for sag users
2026-01-03 19:55:32 +00:00
Peter Steinberger
e9d7ac8e84
feat(gateway): add config hot reload
2026-01-03 19:52:24 +00:00
Peter Steinberger
fac694fc03
docs(skills): add parallel Codex orchestration learnings
...
- coding-agent: document --yolo flag, git worktree + tmux pattern
- tmux: add section on orchestrating coding agents in parallel
Learnings from running 5 parallel Codex sessions to analyze GitHub issues
2026-01-03 19:45:18 +00:00
Shadow
3e84b9632d
Discord: handle system message types
2026-01-03 13:15:19 -06:00
Peter Steinberger
ce3fd09e14
docs(faq): add alternative providers section (OpenRouter, Z.AI)
...
- Added OpenRouter and Z.AI setup examples
- Emphasized using latest Claude 4.5 models, not deprecated 3.x
🦞
2026-01-03 19:14:05 +00:00
Peter Steinberger
641080a0b6
fix: document macOS permission requirements
2026-01-03 20:05:22 +01:00
Jake
99c3fc1128
Scripts: Make ad-hoc fallback opt-in with stronger TCC warnings
2026-01-03 20:05:22 +01:00
Jake
8c7b2aa2d3
Scripts: Fallback to ad-hoc signing in codesign-mac-app.sh
2026-01-03 20:05:22 +01:00
Peter Steinberger
55a07a0ef0
style: fix lint formatting
2026-01-03 18:51:25 +00:00
Peter Steinberger
9899ba53a3
Docs: add PR number for Discord reactions
2026-01-03 18:48:36 +00:00
Peter Steinberger
52458a5628
Discord: default reaction notifications to own
2026-01-03 18:48:36 +00:00
Shadow
7abd6713c8
Docs: clarify discord reaction notifications
2026-01-03 18:48:36 +00:00
Shadow
451174ca10
Discord: add reaction notification allowlist
2026-01-03 18:48:36 +00:00
Peter Steinberger
cdfbd6e7eb
test(gateway): align config constants in auth test
2026-01-03 19:37:09 +01:00
Peter Steinberger
350e007a5c
test(agents): extend text_end coverage
2026-01-03 19:37:09 +01:00
Peter Steinberger
5e156135a1
test(gateway): avoid hoisted export errors
2026-01-03 19:37:09 +01:00
Peter Steinberger
b7ec9ae475
fix(gateway): format status/code errors
2026-01-03 19:37:09 +01:00
Peter Steinberger
8a18af409d
test(gateway): cover helper registries
2026-01-03 19:37:09 +01:00
Peter Steinberger
6a125b554b
refactor(gateway): split server helpers
2026-01-03 19:37:09 +01:00
Shadow
ce92fac983
chore: formatting
2026-01-03 12:35:16 -06:00
Peter Steinberger
341a224301
docs: credit Hyaxia in changelog and credits
...
Co-authored-by: Maxim Vovshin <36747317+Hyaxia@users.noreply.github.com >
2026-01-03 18:05:46 +00:00
Peter Steinberger
95cd153f33
feat: add blogwatcher skill
2026-01-03 18:00:08 +00:00
Peter Steinberger
0af89022ff
fix: avoid Swift compiler crash in onboarding wizard
2026-01-03 17:59:37 +00:00
Peter Steinberger
27a8f3d061
chore: add inline guidance for block streaming
2026-01-03 18:46:59 +01:00
Peter Steinberger
72b34f7d03
fix: harden block stream dedupe
2026-01-03 18:44:07 +01:00
Peter Steinberger
73fa2e10bc
refactor: split gateway server methods
2026-01-03 18:14:07 +01:00
Peter Steinberger
4a6b33d799
refactor: add gateway server helper modules
2026-01-03 18:00:45 +01:00
Peter Steinberger
145964c85e
feat: add github skill
2026-01-03 17:57:13 +01:00
Peter Steinberger
217b84f2ac
fix: drop final payloads after block streaming
2026-01-03 17:55:31 +01:00
Peter Steinberger
1d6de24ab3
feat: configurable control ui base path
2026-01-03 17:55:31 +01:00
Peter Steinberger
822def84d2
docs(faq): add Tailscale bind conflict + model/thinking compatibility
...
- Added Tailscale serve requires bind: loopback (not lan)
- Added model + thinking mode issues section (Gemini Flash, Opus, local LLMs)
From Discord #help session learnings 🦞
2026-01-03 16:53:56 +00:00
Peter Steinberger
f313af75e9
fix: avoid duplicate block-stream payloads
2026-01-03 16:53:56 +00:00
Peter Steinberger
591773715e
fix: honor whatsapp per-group mention overrides
2026-01-03 17:51:10 +01:00
Peter Steinberger
dd6b9b510b
docs: update changelog for gateway refactor
2026-01-03 17:35:29 +01:00
Peter Steinberger
6ae51ae3de
refactor: split gateway server helpers and tests
2026-01-03 17:34:52 +01:00
Peter Steinberger
00c3e98431
docs: add tmux skill guidance
2026-01-03 17:31:26 +01:00
Peter Steinberger
dd561f58d1
docs: expand coding-agent Pi usage
2026-01-03 17:21:17 +01:00
Peter Steinberger
200dd634fb
fix: preserve block streaming order
2026-01-03 17:14:01 +01:00
Peter Steinberger
3bbdcaf87f
fix: avoid duplicate block streaming
2026-01-03 17:10:47 +01:00
Peter Steinberger
abff5e3b1f
docs: thank @ratulsarna for control UI UUID fallback
2026-01-03 15:56:36 +00:00
Peter Steinberger
40ee0f0672
build: lock x86_64 relay to AVX2
2026-01-03 16:52:06 +01:00
Peter Steinberger
9f8eeceae7
feat: soften block streaming chunking
2026-01-03 16:48:26 +01:00
Peter Steinberger
53baba71fa
feat: unify onboarding + config schema
2026-01-03 16:48:08 +01:00
Peter Steinberger
0f85080d81
Merge pull request #133 from ratulsarna/fix/ui-http-uuid
...
fix(ui): robust UUID generation for HTTP Control UI
2026-01-03 16:16:43 +01:00
Peter Steinberger
72f8148080
fix: clean up embedded lint
2026-01-03 15:09:07 +00:00
Peter Steinberger
be3da5b856
fix: update protocol models and android parsing
2026-01-03 15:04:24 +00:00
Peter Steinberger
9a9b429f74
fix: elevate embedded run logs to info
2026-01-03 15:03:03 +00:00
Peter Steinberger
733e86516e
fix: address runtime warnings in build
2026-01-03 15:01:38 +00:00
Peter Steinberger
1a00175eb7
chore: fix lint formatting
2026-01-03 14:57:49 +00:00
Peter Steinberger
77c76ca52f
test: fix transcription and tool schema assertions
2026-01-03 14:55:05 +00:00
Peter Steinberger
5de3395204
fix: resolve gcloud python path
2026-01-03 14:36:48 +00:00
Peter Steinberger
4e4655f607
docs(faq): use correct codex login --device-auth command
2026-01-03 14:13:18 +00:00
Peter Steinberger
48731f494b
fix: add embedded run logs and typing ttl
2026-01-03 14:09:19 +00:00
Peter Steinberger
4fcd89c3d9
docs(faq): add stop/cancel task + Codex subscription auth sections
...
- Added FAQ for /stop and other abort commands
- Added FAQ explaining Codex CLI browser auth vs API key
- Browser OAuth uses ChatGPT Pro subscription, API key is pay-per-token
Co-authored-by: Clawd <clawdbot@gmail.com >
2026-01-03 14:08:24 +00:00
Peter Steinberger
a4f433a1b1
docs: update onboarding steps
2026-01-03 14:08:24 +00:00
Ratul Sarna
84a7ee491b
fix(ui): robust UUID generation on HTTP
...
Fixes #131
2026-01-03 13:43:20 +00:00
Peter Steinberger
3043dd3a0c
fix: restructure macOS connections settings
2026-01-03 14:25:03 +01:00
Jake
81f4a7cdb7
Agents: Fix Gemini schema compatibility and robust model discovery
2026-01-03 13:57:29 +01:00
Peter Steinberger
c2a74d6d2a
docs(template): add 'Write It Down' rule to AGENTS.md template
...
Mental notes don't survive sessions. Files do. Text > Brain 📝
2026-01-03 12:52:11 +00:00
Peter Steinberger
861e1b33f5
docs(skill): add PR review safety rules for coding-agent
...
- Never checkout branches in live Clawdis repo
- Clone to temp folder or use git worktree for reviews
- Added explicit examples for safe PR review workflow
2026-01-03 12:49:03 +00:00
Peter Steinberger
0647d56555
fix(build): repair tool-meta regex literal
2026-01-03 12:46:33 +00:00
Peter Steinberger
ea6aea8532
docs: warn about gmail watcher port conflict
2026-01-03 12:41:44 +00:00
Peter Steinberger
6eca2edd79
chore(swift): update Swabble package lock
2026-01-03 13:38:18 +01:00
Peter Steinberger
d31dfbc565
chore(canvas): refresh a2ui bundle hash
2026-01-03 13:38:12 +01:00
Peter Steinberger
1e0f776824
test(gateway): add multi-instance e2e suite
2026-01-03 13:37:46 +01:00
Peter Steinberger
db36f0105d
fix(gateway): validate event/response frames
2026-01-03 13:37:40 +01:00
Peter Steinberger
5377e2400a
fix: avoid red gmail-watcher prefix
2026-01-03 12:36:15 +00:00
Peter Steinberger
72c0aa63fb
style: tidy imports and formatting
2026-01-03 12:35:23 +00:00
Peter Steinberger
933bee220f
fix(cron): pass resolved channel to agent tools
2026-01-03 12:35:23 +00:00
Peter Steinberger
bd2dabfa8f
fix(agents): load tool display config from disk
2026-01-03 12:35:23 +00:00
Peter Steinberger
f11b352089
fix(macos): expand onboarding window height
2026-01-03 13:34:30 +01:00
Peter Steinberger
bb54e60179
fix(logging): decouple file logs from console verbose
2026-01-03 12:32:14 +00:00
Peter Steinberger
e52bdaa2a2
fix: repair tool meta regex
2026-01-03 12:30:46 +00:00
Peter Steinberger
b6301c719b
fix: default low thinking for reasoning models
2026-01-03 12:19:06 +00:00
Peter Steinberger
6e16c0699a
feat: centralize tool display metadata
2026-01-03 13:18:27 +01:00
Peter Steinberger
bf4ad295af
docs(faq): add media/vision troubleshooting section
...
- Added FAQ entry for images/media not being understood
- Covers vision-capable models checklist
- Debugging steps for media pipeline
- Link to summarize.sh for exotic files
Co-authored-by: Clawd <clawdbot@gmail.com >
2026-01-03 11:43:40 +00:00
Peter Steinberger
7a80e8fe77
refactor: centralize home path shortening
2026-01-03 12:42:27 +01:00
Peter Steinberger
1ec3512925
refactor!: drop clawdis_ tool prefix
2026-01-03 12:39:52 +01:00
Peter Steinberger
772ada4308
fix: refine tool summaries and scope discord tool
2026-01-03 12:33:42 +01:00
Peter Steinberger
7165c8a7e5
refactor: rename bundle identifiers to com.clawdis
2026-01-03 12:26:22 +01:00
Peter Steinberger
daa1460502
docs(discord): document sendMessage mediaUrl and to format
...
- Add example for sendMessage with media attachment (file:// and https://)
- Clarify that sendMessage uses 'to: channel:<id>' not 'channelId'
- Document replyTo parameter for replying to specific messages
- Add mediaUrl to inputs section
2026-01-03 11:05:09 +00:00
Peter Steinberger
f47c7ac369
feat: support configurable gateway port
2026-01-03 12:00:17 +01:00
Peter Steinberger
7199813969
docs: document gateway port configuration
2026-01-03 11:46:58 +01:00
Peter Steinberger
87d5fa516d
docs(skills): correct bear-notes instructions
...
Co-authored-by: Tyler Wince <tylerwince@users.noreply.github.com >
2026-01-03 11:34:31 +01:00
Claude
10340d2a3f
feat(skills): add bear-notes skill using grizzly CLI
2026-01-03 11:29:14 +01:00
Peter Steinberger
508c4d362f
docs: update changelog for gog skill
2026-01-03 11:20:17 +01:00
Mariano Belinky
f73b008251
docs: add Sheets/Docs examples to gog skill
2026-01-03 11:20:17 +01:00
Peter Steinberger
c583e64bb7
chore: update changelog
2026-01-03 11:17:00 +01:00
Peter Steinberger
9df63b008d
docs: move telegram chunking fix to beta6
2026-01-03 11:15:57 +01:00
Peter Steinberger
3daecc092c
docs: add changelog entry for telegram block replies
2026-01-03 11:12:15 +01:00
Muhammed Mukhthar CM
4d42811ecf
fix(telegram): add textLimit to block reply chunking
...
Block streaming replies were missing the textLimit parameter in
deliverReplies(), causing long messages to fail with 'message is too
long' error instead of being chunked properly.
The final reply path already included textLimit, but the onBlockReply
callback path did not.
2026-01-03 11:12:15 +01:00
Peter Steinberger
1bebcf8033
chore: update appcast and TUI streaming handling
2026-01-03 11:06:49 +01:00
Peter Steinberger
45c555a4bd
fix: use x86_64 bun for relay builds
2026-01-03 11:06:49 +01:00
Peter Steinberger
5986a83e80
fix: skip duplicate arch merge for Sparkle
2026-01-03 11:06:49 +01:00
Peter Steinberger
732de4acf0
fix: make Sparkle builds numeric + universal
2026-01-03 11:06:48 +01:00
Shadow
7400c0946e
Discord: update UIs to use the new config
2026-01-03 01:02:22 -06:00
Peter Steinberger
14ee2b2c11
FAQ: Add common questions from Discord (Jan 3)
...
- Linux/VPS installation without Homebrew
- Minimum system requirements (runs on 1GB RAM!)
- Enterprise OAuth status (not supported yet)
- Discord DM allowlist config
- Model switching with /model
- Message queue modes with /queue
2026-01-03 06:09:51 +00:00
Peter Steinberger
c3e1b8cfd9
chore: update protocol swift models
2026-01-03 06:44:21 +01:00
Peter Steinberger
67a67df35a
fix: avoid unsafe string coercion in tui
2026-01-03 06:44:17 +01:00
Peter Steinberger
0f0578b268
docs: check off tui gate
2026-01-03 06:37:44 +01:00
Peter Steinberger
662208949f
fix: align sessions.patch and tui typing
2026-01-03 06:37:40 +01:00
Peter Steinberger
e41821342b
docs: refresh tui guide
2026-01-03 06:28:36 +01:00
Peter Steinberger
d3458a4fc3
feat: overhaul tui controller
2026-01-03 06:27:38 +01:00
Peter Steinberger
32c91bbb25
feat: add tui ui kit
2026-01-03 06:22:20 +01:00
Peter Steinberger
aee13507f9
feat: expand tui gateway client
2026-01-03 06:17:33 +01:00
Peter Steinberger
61b67f6301
feat: extend gateway session patch
2026-01-03 06:16:49 +01:00
Peter Steinberger
b86619bcd0
docs: fix appcast to only ship beta5
2026-01-03 06:12:01 +01:00
Peter Steinberger
31b5b45581
docs: refresh appcast for notarized beta5
2026-01-03 06:04:20 +01:00
Peter Steinberger
33cdb16b9e
docs: update appcast for 2.0.0-beta5
2026-01-03 05:55:31 +01:00
Peter Steinberger
53fd7a4473
chore: fix lint ordering
2026-01-03 05:38:29 +01:00
Peter Steinberger
10d56d31e9
docs: date 2.0.0-beta5 changelog
2026-01-03 05:37:04 +01:00
Peter Steinberger
3633c829ae
fix: repair discord action typing
2026-01-03 05:33:57 +01:00
Peter Steinberger
6cda84432e
fix: stabilize pi-ai patch + tests
2026-01-03 05:22:09 +01:00
Peter Steinberger
b914eaa6fa
chore: apply biome lint fixes
2026-01-03 05:10:09 +01:00
Peter Steinberger
988b67aa30
test: refresh auto-reply expectations
2026-01-03 05:09:59 +01:00
Peter Steinberger
0ed5b82389
fix: prefer explicit hook mappings
2026-01-03 05:09:54 +01:00
Peter Steinberger
b417fe5727
fix: show rich session names in chat UIs
2026-01-03 05:07:13 +01:00
Peter Steinberger
fabad7aa7a
docs: update changelog for antigravity oauth
2026-01-03 05:01:42 +01:00
Peter Steinberger
3c54da952a
chore: refresh pi-ai patch hash
2026-01-03 05:01:42 +01:00
Peter Steinberger
2ef2646b31
chore: note lossy google schema scrub
2026-01-03 05:01:42 +01:00
mukhtharcm
82ad7e29a6
fix: reject antigravity auth in non-interactive onboarding mode
2026-01-03 05:01:42 +01:00
mukhtharcm
2290a3c8af
feat: add VPS-aware Antigravity OAuth with manual URL paste fallback
...
Detects SSH/VPS/headless environments and prompts user to paste
the OAuth callback URL instead of relying on localhost server.
- Add antigravity-oauth.ts with VPS detection and manual OAuth flow
- Update onboard-interactive.ts to use VPS-aware flow
- Update configure.ts to use VPS-aware flow
2026-01-03 05:01:42 +01:00
mukhtharcm
d216cebff5
fix: use claude-opus-4-5-thinking as default antigravity model
2026-01-03 05:01:42 +01:00
mukhtharcm
05bd345828
feat: add Google Antigravity authentication support
...
- Add 'antigravity' as new auth choice in onboard and configure wizards
- Implement Google Antigravity OAuth flow using loginAntigravity from pi-ai
- Update writeOAuthCredentials to accept any OAuthProvider (not just 'anthropic')
- Add schema sanitization for Google Cloud Code Assist API to fix tool call errors
- Default model set to google-antigravity/claude-opus-4-5 after successful auth
The schema sanitization removes unsupported JSON Schema keywords (patternProperties,
const, anyOf, etc.) that Google's Cloud Code Assist API doesn't understand.
2026-01-03 05:01:42 +01:00
Peter Steinberger
5eff541da8
docs: prefer spogo or spotify_player
2026-01-03 04:47:34 +01:00
Peter Steinberger
598a27cc96
docs: update changelog for tui
2026-01-03 04:47:34 +01:00
Peter Steinberger
08ce608ae7
feat: add gateway TUI
2026-01-03 04:47:34 +01:00
Peter Steinberger
928631309e
docs: note queue tests
2026-01-03 04:47:34 +01:00
Peter Steinberger
971b98c96d
test: cover new queue modes
2026-01-03 04:47:34 +01:00
Peter Steinberger
a72da30c9a
sag skill: add chat voice response guidance
...
When Peter asks for voice replies, generate audio with sag and send via MEDIA:
2026-01-03 03:34:31 +00:00
Peter Steinberger
f7eabcb2d9
docs: note new queue modes
2026-01-03 04:27:22 +01:00
Peter Steinberger
ac36eba822
feat: expand queue modes and followup backlog
2026-01-03 04:26:49 +01:00
Peter Steinberger
6160521f2f
fix: guard bash pty cwd
2026-01-03 03:05:51 +00:00
Jared Verdi
ca9b0dbc88
Gmail watcher: start when gateway (re)starts
2026-01-03 03:49:53 +01:00
Peter Steinberger
11c7e05f43
fix: harden pty spawn path
2026-01-03 02:36:01 +00:00
Peter Steinberger
1781105438
group chat: hint that reactions are welcome while lurking
...
Even when staying silent, emoji reactions show engagement without cluttering chat.
2026-01-03 02:29:32 +00:00
Peter Steinberger
632ca01fbf
style: format linted files
2026-01-03 03:10:17 +01:00
Peter Steinberger
b8fd22bfd8
docs: update changelog for discord actions
2026-01-03 03:07:13 +01:00
Shadow
98a1deb129
UI: add discord action toggles
2026-01-03 03:07:13 +01:00
Shadow
0c38f2df2a
Discord: drop enableReactions config
2026-01-03 03:07:13 +01:00
Shadow
6bab813bb3
Discord: add reactions, stickers, and polls skill
2026-01-03 03:07:13 +01:00
Peter Steinberger
d8201f8436
fix: handle null action in hooks-mapping mergeAction call
2026-01-03 02:05:01 +00:00
Peter Steinberger
b28e4e95c2
docs: note gmail watcher auto-start
2026-01-03 03:04:15 +01:00
Peter Steinberger
a3865f1417
group chat: add lurking guidance to system prompt
...
Be a good group participant: lurk and follow the conversation,
but only chime in when genuinely helpful. Quality over quantity.
2026-01-03 02:02:55 +00:00
Peter Steinberger
fb10bf5f75
feat: add bash pty diagnostics
2026-01-03 01:56:54 +00:00
Peter Steinberger
a9eb31e8fe
fix: satisfy discord and gateway typing
2026-01-03 02:55:43 +01:00
Peter Steinberger
3ec5ce8349
docs: note onboarding scroll gutter
2026-01-03 02:55:43 +01:00
Peter Steinberger
c5d70019bb
fix: respect onboarding scroll indicator preference
2026-01-03 02:55:43 +01:00
Shadow
a35fb3a9b4
macOS: add onboarding scroll gutter
2026-01-03 02:55:43 +01:00
Peter Steinberger
79403f9083
docs: update apple notes/reminders skill setup
2026-01-03 02:41:12 +01:00
Claude
7a44c19362
feat(skills): add Apple Notes and Reminders skills via memo CLI
2026-01-03 02:41:12 +01:00
Peter Steinberger
11fc10ea47
docs: thank contributor for telegram group gating
2026-01-03 02:34:48 +01:00
Peter Steinberger
7e4e9ecdea
templates: add qmd semantic memory recall to AGENTS.md
2026-01-03 01:33:10 +00:00
Peter Steinberger
0c013a237f
fix: default block streaming break to message_end
2026-01-03 01:33:10 +00:00
Peter Steinberger
f85951bc65
docs: add changelog entry for gog calendar fix
2026-01-03 02:32:50 +01:00
Jared Verdi
12e27f9e5e
Gateway: ack skipped hook transforms with 204
2026-01-03 02:32:50 +01:00
Jay Hickey
7e9be3c28c
Update gog Calendar command date format to RFC3339
...
I am seeing instances where Clawdis is not including timezone in the gog calendar range requests. This results in a 400 bad request from the Google API, e.g.
```
gog calendar events primary --from 2026-01-02T00:00:00 --to 2026-01-03T23:59:59 --account <email>
Google API error (400 badRequest): Bad Request
```
While this is a valid ISO 8601 format, Google Calendar API requires a stricter RFC 3339 format like the following:
```
gog calendar events primary --from 2026-01-02T00:00:00Z --to 2026-01-03T23:59:59Z --account <email>
<calendar events listed successfully>
```
2026-01-03 02:30:32 +01:00
Peter Steinberger
3368fcf31e
fix: avoid duplicate replies with block streaming
2026-01-03 02:16:01 +01:00
Peter Steinberger
32877afe55
docs: note self-chat config docs update
2026-01-03 02:05:37 +01:00
rafaelreis-r
efe7eca726
docs: clarify routing.allowFrom and self-chat mode for group mentions
...
- Add new section explaining self-chat mode for group control
- Document routing.allowFrom as the key setting for controlling metadata mentions
- Clarify difference between whatsapp.allowFrom (DM allowlist) and routing.allowFrom (self-chat mode)
- Explain metadata mentions vs text patterns in routing.groupChat
- Add example config for responding only to specific text triggers
When routing.allowFrom contains the bot's own number, WhatsApp native
@-mentions are ignored in groups, and only mentionPatterns trigger responses.
This prevents unwanted responses when users tap-to-mention the bot owner.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-03 02:05:37 +01:00
Peter Steinberger
72d1fa4da5
fix: dedupe repeated block replies
2026-01-03 01:49:27 +01:00
Peter Steinberger
2042013360
test: cover provider textChunkLimit config
2026-01-03 01:49:27 +01:00
Peter Steinberger
f5189cc897
refactor: move text chunk limits to providers
2026-01-03 01:49:27 +01:00
Peter Steinberger
75a9cd83a0
fix(mac): resolve camera type deprecation
2026-01-03 01:49:27 +01:00
Peter Steinberger
5684e2d658
feat: configurable outbound text chunk limits
2026-01-03 01:49:27 +01:00
Peter Steinberger
2d28fa34f5
feat: make block streaming break configurable
2026-01-03 01:49:27 +01:00
Peter Steinberger
ea7d967625
Update Discord invite to vanity URL discord.gg/clawd 🦞
...
Thanks camerondare for the boosts! Level 3 unlocked.
2026-01-03 00:47:22 +00:00
Peter Steinberger
5dfb2b1128
coding-agent: add temp space pattern, never start in ~/clawd
...
Learnings from tonight:
- Codex reads AGENTS.md/SOUL.md and gets ideas about org hierarchy
- Use mktemp -d for scratch/chat sessions
- Never start in ~/clawd or agent home dirs
- Keep agents in their 'little box' 📦 🦞
2026-01-03 00:35:51 +00:00
Peter Steinberger
cbc599a5b8
coding-agent: add batch PR review pattern
...
Tonight's learnings:
- Parallel Codex army for batch PR reviews
- Fetch PR refs: git fetch origin '+refs/pull/*/head:refs/remotes/origin/pr/*'
- Use git diff origin/main...origin/pr/XX (don't checkout)
- Post results with gh pr comment
- Successfully reviewed 13 PRs in parallel! 🦞
2026-01-03 00:24:34 +00:00
Peter Steinberger
1354d0836f
coding-agent: comprehensive update from Jan 2 learnings
...
- workdir 'little box' pattern (don't read unrelated files)
- background mode replaces tmux
- --full-auto for building, vanilla for reviewing
- parallel Codex processes supported
- PR review tips (fetch refs, use git diff, don't checkout)
- patience rules (don't kill slow sessions!)
2026-01-03 00:11:21 +00:00
Peter Steinberger
b313250638
coding-agent: switch to native background mode, drop tmux requirement
...
- Use bash background:true instead of tmux
- Full programmatic control: log/poll/write/kill
- Simpler, no shell escaping issues
- workdir still critical for 'little box' pattern
2026-01-03 00:00:37 +00:00
Peter Steinberger
e37c147ea9
coding-agent: unified workdir+tmux pattern for all tools
2026-01-02 23:58:33 +00:00
Peter Steinberger
feb4f9028d
coding-agent: choose reasoning effort based on task complexity
2026-01-02 23:57:46 +00:00
Peter Steinberger
4804ce5678
coding-agent: simplify to gpt-5.2-codex only, remove old models
2026-01-02 23:57:24 +00:00
Peter Steinberger
001a342f20
coding-agent: workdir pattern + patience rules
...
- Use bash workdir param so Codex wakes up in a 'little box'
- Prevents reading unrelated files (like my soul.md lol)
- Added rule: NEVER offer to build it yourself when user asks for Codex
- gpt-5.2-codex requires medium reasoning effort
2026-01-02 23:56:10 +00:00
Peter Steinberger
fe040b84d9
chore: sync lockfile and bundle hash
2026-01-03 00:40:39 +01:00
Sreekaran Srinath
0ac30afb29
feat: add coding-agent skill and anyBins gating
...
Co-authored-by: Sreekaran Srinath <ss@sreekaran.com >
2026-01-03 00:40:03 +01:00
Peter Steinberger
59601eb99c
fix: preserve newlines in reply tags
2026-01-02 23:36:43 +00:00
Peter Steinberger
9616f4b2b1
feat: stream reply blocks immediately
2026-01-03 00:28:33 +01:00
Peter Steinberger
9dd613edf7
fix(mac): harden remote tunnel recovery
2026-01-03 00:02:27 +01:00
Peter Steinberger
88ed58b3d0
chore: update deps and extend read tool tests
2026-01-02 23:47:28 +01:00
Peter Steinberger
fc54e905c0
chore: upgrade pi-mono deps to 0.31.1
2026-01-02 23:37:08 +01:00
Peter Steinberger
d1b76cb1b2
test: cover replyToMode behavior
2026-01-02 23:20:52 +01:00
Peter Steinberger
2c92ccd66e
feat: add reply tags and replyToMode
2026-01-02 23:18:41 +01:00
Peter Steinberger
a9ff03acaf
feat: unify group mention defaults
2026-01-02 22:50:58 +01:00
Shadow
281dc10b2f
Changelog: mention Discord reply context
2026-01-02 15:41:45 -06:00
Peter Steinberger
fd32fc8d8d
feat: add discord guild wildcard defaults
2026-01-02 22:33:26 +01:00
Peter Steinberger
47f4f59692
chore: remove stray ds_store files
2026-01-02 22:24:26 +01:00
Peter Steinberger
5cf1a9535e
feat: move group mention gating to provider groups
2026-01-02 22:24:26 +01:00
Peter Steinberger
e93102b276
chore: bump peekaboo submodule
2026-01-02 22:24:26 +01:00
Shadow
da57c314ef
Discord: clarify docs and drop legacy guild schema
2026-01-02 15:21:13 -06:00
Shadow
2676636316
Discord: fix reply context formatting
2026-01-02 14:55:07 -06:00
Shadow
f3a973dc9e
Discord: include reply context
2026-01-02 14:49:16 -06:00
Peter Steinberger
f4a1190bdd
docs: add CONTRIBUTING.md with maintainers and guidelines
...
- List maintainers with GitHub/X links
- Link to Discord and GitHub Discussions
- AI/vibe-coded PRs welcome with transparency guidelines
- Link from README
Co-authored-by: Clawd <clawdbot@gmail.com >
2026-01-02 20:31:41 +00:00
Peter Steinberger
118a6d7421
fix: align discord config ui
2026-01-02 21:15:59 +01:00
Peter Steinberger
4541bb2716
Merge pull request #108 from thewilloftheshadow/shadow/ui-connection-update
...
UI: Update connections UIs
2026-01-02 21:04:45 +01:00
Peter Steinberger
505c4262c6
docs: note optional docker setup
2026-01-02 20:59:58 +01:00
Peter Steinberger
3104b088e4
chore(canvas): update a2ui bundle hash
2026-01-02 19:58:46 +00:00
Peter Steinberger
f12f814816
docs(whatsapp): add number guidance
2026-01-02 19:58:44 +00:00
Peter Steinberger
3b0ad719c9
chore(discord): add verbose diagnostics
2026-01-02 19:58:42 +00:00
Peter Steinberger
e368e56246
chore(gateway): quiet provider startup logs
2026-01-02 19:58:40 +00:00
Peter Steinberger
675420013d
fix(macos): resolve gateway launch args
2026-01-02 19:58:38 +00:00
Peter Steinberger
eaa69fb6b2
test: silence docker onboarding noise
2026-01-02 20:46:26 +01:00
Peter Steinberger
e0795cf18c
test: annotate onboarding docker e2e
2026-01-02 20:41:47 +01:00
Peter Steinberger
8ed878e73c
test: stabilize docker onboarding e2e
2026-01-02 20:40:33 +01:00
Peter Steinberger
08b95411df
chore: add goplaces skill
2026-01-02 20:33:06 +01:00
Peter Steinberger
460fafff7f
docs: thank @dan-dr for docker setup
2026-01-02 20:24:44 +01:00
Peter Steinberger
7b4fa9e1a1
test: cover camera list invoke
2026-01-02 20:24:41 +01:00
Peter Steinberger
7e4ebb22a0
Merge pull request #107 from dan-dr/main
...
Add Docker setup script
2026-01-02 20:24:21 +01:00
Peter Steinberger
8b47315845
fix(macos): improve session preview loading
2026-01-02 19:55:19 +01:00
Shadow
96a5e01878
macOS: swiftformat connections settings
2026-01-02 12:30:59 -06:00
Shadow
5e36390a27
macOS: fix swiftlint param count
2026-01-02 12:25:47 -06:00
Shadow
729a545173
Update connections UIs
2026-01-02 12:06:05 -06:00
Dan
488f5e2dac
Merge branch 'steipete:main' into main
2026-01-02 19:53:16 +02:00
Peter Steinberger
49e89cf3f1
fix: satisfy swiftformat for ios build
2026-01-02 18:48:05 +01:00
Peter Steinberger
43f6b9ef32
fix: resolve camera tool handling
2026-01-02 17:44:25 +00:00
Peter Steinberger
8e48cffe3b
fix(macos): decode session preview payload
2026-01-02 18:32:03 +01:00
Peter Steinberger
3ed01adabc
feat(macos): add session previews in menu
2026-01-02 18:29:47 +01:00
Dan
4239de8060
Merge branch 'steipete:main' into main
2026-01-02 19:26:14 +02:00
Peter Steinberger
cba37f99b6
test: cover camera device selection
2026-01-02 18:25:22 +01:00
Peter Steinberger
74db53d939
feat: add camera list and device selection
2026-01-02 18:23:26 +01:00
Peter Steinberger
2b34bf08da
fix: resolve mac camera continuation isolation
2026-01-02 18:02:24 +01:00
Dan
b92f70c52b
Merge branch 'steipete:main' into main
2026-01-02 19:00:21 +02:00
Peter Steinberger
34d2e1e2e8
fix: wait for camera exposure to settle
2026-01-02 17:57:34 +01:00
Peter Steinberger
5f82739e2b
test: cover camera snap mime mapping
2026-01-02 17:49:20 +01:00
Peter Steinberger
d79dc4d742
fix: correct camera snap mime mapping
2026-01-02 17:43:34 +01:00
Peter Steinberger
1d12a844c2
docs: add WhatsApp disconnect workaround to FAQ
...
When using macOS app with WhatsApp issues:
1. Run pnpm gateway:watch (Node instead of bun)
2. Enable 'External gateway' in app debug settings
Verified gateway:watch command exists in package.json
2026-01-02 16:34:27 +00:00
Peter Steinberger
2d16450869
feat: add weather skill (wttr.in + Open-Meteo fallback)
...
No API key required. Two services:
- wttr.in: human-readable, emoji, ASCII art, PNG
- Open-Meteo: JSON API fallback for programmatic use
🌤️ 🦞
2026-01-02 16:33:31 +00:00
Peter Steinberger
2a6248dad6
fix: add camera entitlement to macOS signing
2026-01-02 17:31:59 +01:00
Peter Steinberger
8b27c03472
docs(skills/local-places): add emoji and tagline
...
📍 Find places, Go fast
🦞
2026-01-02 16:22:26 +00:00
Peter Steinberger
baf3bea574
docs(changelog): note macOS config actor fix
2026-01-02 17:16:49 +01:00
Peter Steinberger
868b438e67
test(gateway): fix nix mode mock toggle
2026-01-02 17:15:26 +01:00
Peter Steinberger
8989bd9fd7
fix(auto-reply): default whatsapp self-only on empty config
2026-01-02 17:15:26 +01:00
Peter Steinberger
a4f12babb7
test(macos): cover gateway password whitespace
2026-01-02 17:15:26 +01:00
Peter Steinberger
97e06a8eb4
chore(canvas): regenerate a2ui bundle hash
2026-01-02 17:15:26 +01:00
Peter Steinberger
0de6e38ce9
fix(macos): keep config writes on main actor
2026-01-02 17:15:26 +01:00
Peter Steinberger
314164fb8a
chore: fix lint and add gateway auth tests
2026-01-02 17:15:26 +01:00
Peter Steinberger
8d925226cb
docs: expand FAQ with Docker, OAuth, bun vs Node, debugging
...
- Docker/container setup (volumes, pnpm persistence, startup script)
- OAuth vs API key billing differences
- OAuth callback workarounds for headless/containers
- Terminal onboarding vs macOS app (terminal more stable)
- bun binary vs Node runtime (Node more stable for WhatsApp)
- gateway:watch for debugging
- Tailscale link and setup clarification
Based on community questions from Discord #help
2026-01-02 16:04:02 +00:00
Peter Steinberger
f2eb2004aa
docs: thank @jeffersonwarrior for gateway auth
2026-01-02 16:51:48 +01:00
Peter Steinberger
bf37015c23
Merge pull request #85 from jeffersonwarrior/main
...
feat: add gateway password auth support and fix Swift 6.2 concurrency
2026-01-02 16:50:57 +01:00
Peter Steinberger
f489b6e7a5
chore: merge origin/main
2026-01-02 16:50:29 +01:00
Peter Steinberger
921e5be8e6
fix(skills/local-places): copy files instead of submodule
...
Submodules are pain. Just copy the Python code directly.
🦞
2026-01-02 15:48:24 +00:00
Peter Steinberger
a8bc974a2e
fix: harden gateway password auth
2026-01-02 16:47:52 +01:00
Peter Steinberger
100a022ab7
feat(skills/local-places): add server as submodule
...
- Links to Hyaxia/local_places for easy upstream updates
- Updated SKILL.md with {baseDir}/server path
🦞
2026-01-02 15:47:42 +00:00
Peter Steinberger
6b7484a885
feat(skills): add local-places skill for Google Places search
...
- Wraps Hyaxia/local_places FastAPI server
- Two-step flow: resolve location → search places
- Supports filters: type, rating, price, open_now
🦞
2026-01-02 15:46:08 +00:00
Peter Steinberger
8de40e0c10
feat(macos): add Camera permission to onboarding flow
...
- Add 'camera' case to Capability enum
- Add UI strings (title, subtitle, icon) in PermissionsSettings
- Add ensureCamera() and camera status check in PermissionManager
- Add CameraPermissionHelper for opening System Settings
🦞 Clawd's first code contribution!
2026-01-02 15:27:54 +00:00
Peter Steinberger
9b3aef3567
fix: show skill descriptions in onboarding list
2026-01-02 16:25:28 +01:00
Peter Steinberger
25e52e19dc
fix(macos): return node name
2026-01-02 15:28:34 +01:00
Peter Steinberger
68806902ff
fix(macos): show gateway in devices list
2026-01-02 15:27:21 +01:00
Peter Steinberger
ebf8649940
feat: add songsee skill
2026-01-02 15:22:23 +01:00
Peter Steinberger
c93d02891a
test: cover control ui token url
2026-01-02 15:13:05 +01:00
Peter Steinberger
87be5c737c
fix(macos): suppress cancelled node refresh
2026-01-02 15:12:57 +01:00
Peter Steinberger
ad9d6f616d
fix: improve onboarding auth UX
2026-01-02 15:03:38 +01:00
Peter Steinberger
f57f892409
fix(macos): clarify gateway error state
2026-01-02 13:48:19 +01:00
Peter Steinberger
5ecb65cbbe
fix: persist gateway token for local CLI auth
2026-01-02 13:46:48 +01:00
Peter Steinberger
1e04481aaf
style: format discord slash handler
2026-01-02 13:38:36 +01:00
Peter Steinberger
5f103e32bd
fix: gate discord slash commands
2026-01-02 13:38:35 +01:00
Shadow
fff9efe8a8
Discord: auto-register slash command
2026-01-02 13:38:35 +01:00
Shadow
b135b3efb9
Discord: add slash command handling
2026-01-02 13:38:35 +01:00
Peter Steinberger
17e17f85ae
docs: note gateway auto-migrate
2026-01-02 13:10:09 +01:00
Peter Steinberger
ecef49605b
test: cover gateway legacy auto-migrate
2026-01-02 13:09:41 +01:00
Peter Steinberger
7b72b35cca
chore: update doctor migration hash
2026-01-02 13:07:26 +01:00
Peter Steinberger
16420e5b31
refactor: auto-migrate legacy config in gateway
2026-01-02 13:07:14 +01:00
Peter Steinberger
55665246bb
chore: refresh doctor migration commit
2026-01-02 13:00:44 +01:00
Peter Steinberger
b9b862a380
chore: note doctor migration commit
2026-01-02 13:00:29 +01:00
Peter Steinberger
0766c5e3cb
refactor: move whatsapp allowFrom config
2026-01-02 13:00:29 +01:00
ddyo
8d4c6d41ab
Docker: add root-level setup
2026-01-02 13:53:06 +02:00
Peter Steinberger
58d32d4542
docs: expand FAQ with skills, Tailscale, troubleshooting
...
- How to add/reload skills (/reset)
- Tailscale for multi-machine setups
- Using Codex to debug
- Handling supervised processes on Linux
- Clean uninstall steps
2026-01-02 11:50:09 +00:00
Peter Steinberger
6bad75827a
docs: clarify Signal setup and env-token gating
2026-01-02 11:41:08 +00:00
Peter Steinberger
2b3ddabe90
fix(gateway): gate providers by config presence
2026-01-02 11:41:01 +00:00
Peter Steinberger
e92b480629
fix(signal): surface signal-cli failures as errors
2026-01-02 11:40:55 +00:00
Peter Steinberger
a53cdbf1b4
docs: clarify Windows is untested in FAQ
2026-01-02 11:30:27 +00:00
Peter Steinberger
21a64a9957
docs: link FAQ and add platforms note
2026-01-02 11:24:41 +00:00
Peter Steinberger
d656db4d04
fix: widen discord channel type check
2026-01-02 12:23:35 +01:00
Peter Steinberger
506b66a852
docs: add FAQ with common questions from Discord
...
Covers:
- Installation & setup (data locations, unauthorized errors, fresh start, doctor)
- Migration & deployment (new machine, VPS, Docker)
- Multi-instance & contexts (one Clawd philosophy, groups for separation)
- Context & memory (200k tokens, autocompaction, workspace location)
- Platforms (supported platforms, multi-platform, WhatsApp numbers)
- Troubleshooting (build errors, WhatsApp logout, gateway issues)
- Chat commands reference
Based on community questions from #help channel.
🦞
2026-01-02 11:22:06 +00:00
Peter Steinberger
95f03d63ad
style(ui): refresh dashboard theme
2026-01-02 11:22:06 +00:00
Peter Steinberger
7f8af736dd
chore(canvas): regenerate a2ui bundle hash
2026-01-02 11:22:06 +00:00
Peter Steinberger
eaacebeecc
fix: improve onboarding/imessage errors
2026-01-02 12:20:48 +01:00
Peter Steinberger
fd4cff06ca
test: fix discord/config test lint
2026-01-02 12:20:43 +01:00
Peter Steinberger
b50df6eb1d
style: format linted files
2026-01-02 12:20:38 +01:00
Peter Steinberger
fa16304e4f
docs: note discord ignore-list removal
2026-01-02 11:54:30 +01:00
Peter Steinberger
eda74d3a55
test: cover every schedule anchor boundary
2026-01-02 11:33:49 +01:00
Peter Steinberger
25762c0ac6
docs(discord): note from label includes tag/id
2026-01-02 11:32:59 +01:00
Peter Steinberger
2d7289bcad
docs: update changelog for cron fix
2026-01-02 11:29:35 +01:00
Peter Steinberger
2d1d5d603d
Merge pull request #80 from jamesgroat/fix/cron-every-schedule-infinite-loop
...
fix(cron): prevent every schedule from firing in infinite loop
2026-01-02 11:29:08 +01:00
Peter Steinberger
94206cf10f
Merge pull request #92 from thewilloftheshadow/shadow/discord-id
...
Discord: pass user id to clawd so it can ping users
2026-01-02 11:27:37 +01:00
Peter Steinberger
dc2521a1cf
merge main into shadow/discord-id
2026-01-02 11:27:24 +01:00
Peter Steinberger
30b5955f22
fix(discord): add tag/id to from label
2026-01-02 11:26:09 +01:00
Peter Steinberger
4267a1b87d
test: cover discord config + slug routing
2026-01-02 11:19:10 +01:00
Peter Steinberger
eb44ae76f1
feat: add discord guild map + group dm controls
2026-01-02 11:15:52 +01:00
Peter Steinberger
bd3d18f660
fix: unbreak TypeScript build
2026-01-02 11:02:06 +01:00
Peter Steinberger
8bd5f1b9f2
fix: improve onboarding allowlist + Control UI link
2026-01-02 10:57:04 +01:00
Peter Steinberger
71b0dcc922
Merge pull request #100 from steipete/feat/trello-skill
...
feat(skills): add Trello skill for board/list/card management
2026-01-02 10:47:45 +01:00
Peter Steinberger
1bf7d2f3bd
docs: update trello skill requirements
2026-01-02 10:47:31 +01:00
Peter Steinberger
87127fd133
fix: refine web chat session selector
2026-01-02 10:40:24 +01:00
Peter Steinberger
e85c15d178
docs: note mac app rebuilds need local
2026-01-02 10:38:18 +01:00
Peter Steinberger
0f56dce748
feat: add discord dm/guild allowlists
2026-01-02 10:32:21 +01:00
Peter Steinberger
d2e2077ada
fix: add top padding before first chat message
2026-01-02 10:23:40 +01:00
Peter Steinberger
9adbf47773
refactor: normalize group session keys
2026-01-02 10:14:58 +01:00
Peter Steinberger
e5ee041d4e
feat(skills): add Trello skill for board/list/card management
2026-01-02 08:37:15 +00:00
Shadow
63a46a85f6
feat: pass discord id to clawd so it can ping users
2026-01-01 23:30:03 -06:00
Jefferson Nunn
fe87d6d8be
feat(macOS): add gateway password auth support and fix Swift 6.2 concurrency
...
- Add CLAWDIS_GATEWAY_PASSWORD to launchd plist environment
- Read password from gateway.remote.password config in client
- Fix Swift 6.2 sending parameter violations in config save functions
- Add password parameter to GatewayConnection.Config type
- GatewayChannel now sends password in connect auth params
- GatewayEndpointStore and GatewayLaunchAgentManager read password from config
- CLI gateway client reads password from remote config and env
2026-01-01 21:34:46 -06:00
jeffersonwarrior
9387ecf043
fix(macos): support password auth mode for gateway connections
...
GatewayChannel now sends both 'token' and 'password' fields in the auth
payload to support both authentication modes. Gateway checks the field
matching its auth.mode configuration ('token' or 'password').
Also adds config file password fallback for remote mode, allowing
gateway password to be configured in ~/.clawdis/clawdis.json without
requiring environment variables.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2026-01-01 21:26:37 -06:00
Peter Steinberger
35582cfe8a
docs: fix broken clawd.md link in index
2026-01-02 02:45:01 +00:00
Peter Steinberger
76e24653e9
fix(media): preserve GIF animation, skip JPEG optimization
...
- Skip JPEG optimization for image/gif content type (both local and URL)
- Preserves animation in uploaded GIFs to Discord/other providers
- Added tests for GIF preservation from local files and URLs
- Updated changelog
2026-01-02 00:56:04 +00:00
Peter Steinberger
4c2812b429
fix: refine HEARTBEAT_OK handling
2026-01-02 01:42:27 +01:00
James Groat
7154bc6857
fix(cron): prevent every schedule from firing in infinite loop
...
When anchorMs is not provided (always in production), the schedule
computed nextRunAtMs as nowMs, causing jobs to fire immediately and
repeatedly instead of at the configured interval.
- Change nowMs <= anchor to nowMs < anchor to prevent early return
- Add Math.max(1, ...) to ensure steps is always at least 1
- Add test for anchorMs not provided case
2026-01-01 17:30:05 -07:00
Peter Steinberger
c31070db24
style: apply biome formatting
2026-01-02 01:29:05 +01:00
Peter Steinberger
336048441c
docs: add imessage rpc and groups docs
2026-01-02 01:19:40 +01:00
Peter Steinberger
cbac34347b
feat: add imessage rpc adapter
2026-01-02 01:19:40 +01:00
Peter Steinberger
3ee27a00c7
docs(changelog): note log prefix cleanup
2026-01-02 00:15:03 +00:00
Peter Steinberger
4ec020a86d
fix(logging): trim provider log prefixes
2026-01-02 00:15:01 +00:00
Peter Steinberger
464dabdc16
docs: default discord reactions to on
2026-01-02 01:11:04 +01:00
Peter Steinberger
c0976ec099
fix(gateway): stream chat events for agent runs
2026-01-02 01:04:59 +01:00
Peter Steinberger
7f3113b8d4
feat: add discord reaction tool
2026-01-02 00:29:32 +01:00
Peter Steinberger
9180cbe821
fix: keep chat scrolled to bottom on session switch
2026-01-02 00:21:48 +01:00
Peter Steinberger
c5daa754ff
chore: refresh a2ui bundle hash
2026-01-02 00:17:59 +01:00
Peter Steinberger
23a29216d3
fix: allow remote gateway password config
2026-01-02 00:17:54 +01:00
Peter Steinberger
8a2168ecf6
style: fix swiftlint warnings
2026-01-02 00:17:49 +01:00
Peter Steinberger
38d8a669b4
fix: add discord mention context history
2026-01-01 23:58:35 +01:00
Peter Steinberger
06e379a239
fix: suppress stray HEARTBEAT_OK replies
2026-01-01 23:53:29 +01:00
Peter Steinberger
7c0379ce05
feat: add recent session switchers
2026-01-01 23:50:26 +01:00
Peter Steinberger
c7c13f2d5e
fix(gateway): read CLAWDIS_GATEWAY_PASSWORD from env
...
The CLI client (callGateway) now reads password from:
1. opts.password (explicit parameter)
2. CLAWDIS_GATEWAY_PASSWORD env var (NEW)
3. remote.password from config
This allows CLI commands like doctor/health to authenticate
without needing a --password flag when the env var is set.
Fixes auth issues for users with password-protected gateways.
2026-01-01 22:40:36 +00:00
Peter Steinberger
6df9b3f38c
docs: update changelog
2026-01-01 23:30:02 +01:00
Peter Steinberger
ca81d94b90
feat(cli): hint gateway reachability for local/remote
2026-01-01 23:30:02 +01:00
Peter Steinberger
a39ef7181d
feat(cli): add provider setup primers
2026-01-01 23:22:52 +01:00
Peter Steinberger
93b7e3431b
docs: update changelog
2026-01-01 23:22:52 +01:00
Peter Steinberger
dd02cc0747
docs: update changelog
2026-01-01 23:19:30 +01:00
Peter Steinberger
867883453e
fix(cli): allow skipping skill dependency installs
2026-01-01 23:19:26 +01:00
Peter Steinberger
a68784c319
docs: update changelog
2026-01-01 23:16:42 +01:00
Peter Steinberger
46c763410f
fix(cli): colorize provider status note
2026-01-01 23:16:36 +01:00
Peter Steinberger
815d4572f6
feat(cli): explain Tailscale exposure options
2026-01-01 23:16:28 +01:00
Peter Steinberger
279a191b86
fix(macos): colorize provider status subtitles
2026-01-01 23:16:22 +01:00
Peter Steinberger
f0da42917b
feat(macos): verify Claude OAuth in onboarding
2026-01-01 23:16:15 +01:00
Peter Steinberger
6e87fd2d4c
docs: update changelog
2026-01-01 22:55:25 +01:00
Peter Steinberger
fbf5efb570
feat(process): support env overrides in exec
2026-01-01 22:55:21 +01:00
Peter Steinberger
1a3323a261
fix(cli): improve skill install failure output
2026-01-01 22:55:15 +01:00
Peter Steinberger
b858fdd755
feat(macos): show skills in onboarding
2026-01-01 22:55:10 +01:00
Peter Steinberger
0aff827414
fix: preserve webchat run ordering
2026-01-01 22:46:43 +01:00
Peter Steinberger
bd8a0a9f8f
feat: add remote CDP browser support
2026-01-01 22:44:52 +01:00
Peter Steinberger
73d0e2cb81
fix: gate skills by OS
2026-01-01 22:25:37 +01:00
Peter Steinberger
47f816696c
fix: refine A2UI status HUD styling
2026-01-01 20:47:51 +00:00
Peter Steinberger
1cf455e91c
fix: use brew installer for imsg skill
2026-01-01 21:41:39 +01:00
Peter Steinberger
952c8c2d64
fix: improve canvas debug status in remote mode
2026-01-01 20:41:13 +00:00
Peter Steinberger
dce3bf01fd
build: refresh a2ui bundle hash
2026-01-01 20:41:09 +00:00
Peter Steinberger
7b1687d7e5
fix: resolve macOS config store concurrency
2026-01-01 21:31:37 +01:00
Peter Steinberger
9ad6863567
docs: trim changelog
2026-01-01 21:31:13 +01:00
Peter Steinberger
4c1424bb83
chore: fix lint warnings
2026-01-01 21:25:29 +01:00
Peter Steinberger
c7364de2f0
fix: align telegram token resolution
2026-01-01 21:22:59 +01:00
Peter Steinberger
e0043906be
docs: add Discord badge
2026-01-01 21:22:00 +01:00
Peter Steinberger
eda9fb5522
feat(skills): add things-mac
2026-01-01 21:12:37 +01:00
Peter Steinberger
8a775144bf
docs: update changelog
2026-01-01 21:09:36 +01:00
Peter Steinberger
9b65534561
test: harden wizard e2e flow
2026-01-01 21:09:32 +01:00
Peter Steinberger
f6c0618596
fix: improve web chat scroll and text
2026-01-01 21:09:28 +01:00
Peter Steinberger
15fd030fa4
docs: refresh onboarding wizard docs
2026-01-01 21:09:24 +01:00
Peter Steinberger
693be03dcc
test: cover remote config routing
2026-01-01 20:29:53 +01:00
Peter Steinberger
6e3cb34024
chore: pin ElevenLabsKit + wizard note
2026-01-01 20:19:00 +01:00
Peter Steinberger
bd7cd33b02
feat: add remote gateway client config
2026-01-01 20:10:50 +01:00
Peter Steinberger
a72fdf7c26
feat: expand wizard setup flow
2026-01-01 19:14:14 +01:00
Peter Steinberger
850cbfe369
fix: route macOS remote config via gateway
2026-01-01 18:58:41 +01:00
Peter Steinberger
351db0632d
fix(signal): map stderr INFO to log
2026-01-01 17:30:51 +00:00
Peter Steinberger
d642e90cdd
style: format onboarding commands
2026-01-01 17:30:51 +00:00
Peter Steinberger
c454f7ac0d
fix: detect bun relay assets
2026-01-01 18:30:16 +01:00
Peter Steinberger
b5b47d7273
docs: update changelog
2026-01-01 17:24:42 +00:00
Peter Steinberger
7c2c541729
feat: expand onboarding wizard
2026-01-01 18:23:59 +01:00
Peter Steinberger
f10abc8ee0
fix: narrow onboarding prompt types
2026-01-01 17:14:02 +00:00
Peter Steinberger
8ea27968d7
style: apply biome formatting
2026-01-01 17:06:47 +00:00
Peter Steinberger
956db9c182
fix: keep pi-ai tool types for published sdk
2026-01-01 17:02:02 +00:00
Peter Steinberger
3eb3f38adf
test: add onboarding e2e harness
2026-01-01 18:01:42 +01:00
Peter Steinberger
35b66e5ad1
feat: add onboarding wizard
2026-01-01 17:58:07 +01:00
Peter Steinberger
d83ea305b5
fix: satisfy bun biome formatting
2026-01-01 16:54:46 +00:00
Peter Steinberger
c1d8508748
fix: clean up pi-agent-core lint
2026-01-01 16:51:08 +00:00
Peter Steinberger
dc8f2bda2a
fix: restart via systemd on linux
2026-01-01 17:48:28 +01:00
Peter Steinberger
f0f5acfa42
fix: update pi-agent-core integration
2026-01-01 16:46:40 +00:00
Peter Steinberger
4e00edf8a7
docs: update changelog for macOS rpath fix
2026-01-01 17:44:53 +01:00
Petter Blomberg
02d5c00873
macOS: move rpath configuration to build step for reliability
2026-01-01 17:44:39 +01:00
Petter Blomberg
17009d28cf
build: fix hardcoded dependency path for ElevenLabsKit
2026-01-01 17:43:27 +01:00
Peter Steinberger
325a6a4e02
docs: update changelog for chat duplicate fix
2026-01-01 17:42:30 +01:00
Marc Beaupre
b51b24955c
fix(chat): clear input immediately after send to prevent duplicate messages
...
Two issues were causing the input field to retain text after sending:
1. ChatComposer's NSViewRepresentable was skipping all updates while the
text view was first responder. Now it allows clearing (empty binding)
even during editing, only skipping other updates to avoid cursor jumps.
2. ChatViewModel cleared input after awaiting the network response, leaving
text visible during the round trip. Now clears immediately after capturing
the message content, before the async send.
Together these prevent users from accidentally re-sending messages when
the input appeared unchanged after pressing Enter.
2026-01-01 17:42:05 +01:00
Peter Steinberger
a954aaa507
docs: thank contributor for macOS device resource fix
2026-01-01 17:39:54 +01:00
Petter Blomberg
ad475239a5
fix(macos): prioritize main bundle for device resources to prevent crash
2026-01-01 17:39:33 +01:00
Peter Steinberger
5e280674f9
docs: require Xcode 26.2+
2026-01-01 17:38:16 +01:00
Petter Blomberg
6cdfd143b0
docs: add macOS developer setup and troubleshooting guides
2026-01-01 17:37:19 +01:00
Petter Blomberg
da454fa376
build: update A2UI bundle hash
2026-01-01 17:37:19 +01:00
Peter Steinberger
358dd4f791
merge: fix/codesign-adhoc
2026-01-01 17:34:46 +01:00
Peter Steinberger
2401abe17e
docs: update changelog for codesign fix
2026-01-01 17:30:22 +01:00
Peter Steinberger
56ea6b6e43
fix: align tool schemas and health snapshot
2026-01-01 17:30:19 +01:00
Peter Steinberger
04691ed598
chore: apply biome formatting
2026-01-01 17:30:15 +01:00
William Stock
7366b55b14
docs: Add manual OAuth setup for remote/headless deployments
...
Expand "Remote mode note" section with:
- Exact oauth.json format required (access, refresh, expires)
- Note that auto-import doesn't work with Claude Code credentials
- jq script to convert Claude Code credentials to Clawdis format
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-01 17:21:27 +01:00
Peter Steinberger
a248bea50f
chore(browser): format CDP helpers
2026-01-01 16:19:37 +00:00
Peter Steinberger
c8c84bc419
test(browser): fix chrome reachability mock
2026-01-01 16:16:55 +00:00
Peter Steinberger
5f990fb3a2
docs: note browser resiliency and reset
2026-01-01 16:15:17 +00:00
Peter Steinberger
538c1eb660
fix(browser): harden CDP readiness
2026-01-01 16:15:12 +00:00
Peter Steinberger
9f704d7aa7
docs: note macos app logging menu icon
2026-01-01 17:12:49 +01:00
Peter Steinberger
a5777300d8
fix(macos): add icon to app logging menu
2026-01-01 16:48:17 +01:00
Peter Steinberger
57e1362344
docs(signal): explain bot-number setup
2026-01-01 15:37:45 +00:00
Peter Steinberger
c1ccbd58f5
fix(signal): stabilize daemon + add signal delivery
2026-01-01 15:31:41 +00:00
Peter Steinberger
09a2ab420b
style: biome formatting
2026-01-01 15:31:36 +00:00
Peter Steinberger
596770942a
feat: add Signal provider support
2026-01-01 15:43:15 +01:00
Petter Blomberg
fe5e58af91
scripts: fix ad-hoc signing crashes and bash unbound variable error
2026-01-01 15:29:01 +01:00
Peter Steinberger
0a4c2f91f5
fix: add bottom padding to macos web chat
2026-01-01 13:20:27 +01:00
Peter Steinberger
5b33a7dcbe
fix: polish macos web chat composer
2026-01-01 12:49:05 +01:00
Peter Steinberger
c7e2b1230c
fix: make composer pill full-width
2026-01-01 12:18:18 +01:00
Peter Steinberger
bdf6a23de9
fix: polish web chat empty/error state
2026-01-01 11:40:11 +01:00
Peter Steinberger
1a539b9830
fix(macos): restore swift test build
2026-01-01 11:05:14 +01:00
Peter Steinberger
3addd3420b
fix: tidy web chat composer layout
2026-01-01 11:05:14 +01:00
Peter Steinberger
6ea10dd153
fix: allow direct file input uploads
2026-01-01 09:44:29 +00:00
Peter Steinberger
bf0bee58b3
fix: improve browser upload triggering
2026-01-01 09:35:20 +00:00
Peter Steinberger
fbcbc60e85
feat: unify skills config
2026-01-01 10:07:31 +01:00
Peter Steinberger
0a9f06d60f
docs: annotate nix path resolution
2026-01-01 09:30:12 +01:00
Peter Steinberger
f6956320f9
feat: centralize config paths and expose in snapshot
2026-01-01 09:22:37 +01:00
Peter Steinberger
20bc323963
docs: note nix support
2026-01-01 09:17:24 +01:00
Peter Steinberger
bcead5f0f4
fix: honor nix config overrides in mac app
2026-01-01 09:17:21 +01:00
Peter Steinberger
cf3049ae34
Merge pull request #40 from joshp123/upstream-preview-nix-2025-12-20
...
Nix mode support + macOS Info.plist template
2026-01-01 09:15:41 +01:00
Peter Steinberger
ad9a9d8d35
Merge remote-tracking branch 'origin/main' into upstream-preview-nix-2025-12-20
2026-01-01 09:15:28 +01:00
Peter Steinberger
14e9077584
chore: add bench-model script
2026-01-01 08:59:31 +01:00
Peter Steinberger
43cf526b5f
docs: thank contributor for PR #64
2026-01-01 08:59:24 +01:00
Peter Steinberger
2d5c401d11
fix: prefer module bundle for device models
2026-01-01 08:58:54 +01:00
Peter Steinberger
78cf68549f
Merge pull request #64 from mbelinky/fix-instances-crash
...
Fix Instances crash by bundling device model resources
2026-01-01 08:58:35 +01:00
Peter Steinberger
dececccd8e
docs: thank contributor for PR #65
2026-01-01 08:55:51 +01:00
Mariano Belinky
941ad27551
Bundle Control UI in Mac app
2026-01-01 08:55:09 +01:00
Peter Steinberger
24e95ab38e
docs: update changelog for PR #66
2026-01-01 08:37:49 +01:00
Mariano Belinky
c4de0b8255
Use user home for pnpm path
2026-01-01 08:35:54 +01:00
Peter Steinberger
7baaca4a76
docs: add model latency bench notes
2025-12-31 22:39:42 +01:00
Mariano Belinky
ea248f6743
Fix device model resources for Instances
2025-12-31 16:45:35 +01:00
Peter Steinberger
f03605d8ae
test: add minimax live test
2025-12-31 16:31:23 +01:00
Peter Steinberger
0babf08926
chore: add mac app logging coverage
2025-12-31 16:28:51 +01:00
Peter Steinberger
6517b05abe
feat: add swift-log app logging controls
2025-12-31 16:03:18 +01:00
Peter Steinberger
fa91b5fd03
docs: update changelog for Android chat bubble
2025-12-31 12:50:34 +01:00
Manuel Jiménez Torres
f831ccfc63
fix(android): wrong text color in user chat bubbles
2025-12-31 12:48:59 +01:00
Peter Steinberger
12084fc4f9
test: extend Z.AI live test timeout
2025-12-31 12:43:34 +01:00
Peter Steinberger
21237dae98
feat: add Z.AI env support and live test
2025-12-31 11:36:57 +01:00
Peter Steinberger
4bdc25d072
docs: link Anthropic OAuth setup
2025-12-31 11:35:42 +01:00
Peter Steinberger
2f55abace2
fix: add brew installer for ordercli skill
2025-12-31 04:52:40 +01:00
Peter Steinberger
3213e5df2d
feat: add gifgrep skill
2025-12-31 04:52:37 +01:00
Peter Steinberger
7e40147aa3
fix: gate web chat/talk on mobile nodes
2025-12-30 22:05:17 +01:00
Peter Steinberger
a2a26b26fb
fix: satisfy swiftformat in chat view
2025-12-30 20:41:12 +01:00
Peter Steinberger
b3cf07d6cb
feat: add ui theme toggle
2025-12-30 20:25:58 +01:00
Peter Steinberger
ed76cd7574
fix: restore talk orb hit testing
2025-12-30 20:25:52 +01:00
Peter Steinberger
01b8a71ee6
docs: clarify browser wait guidance
2025-12-30 19:22:38 +00:00
Peter Steinberger
cc86bbf27d
feat: add food-order skill
2025-12-30 15:43:13 +01:00
Peter Steinberger
42cbb11de8
build: update a2ui bundle
2025-12-30 14:43:34 +01:00
Peter Steinberger
52303e8eda
docs: update changelog for status pill
2025-12-30 14:39:33 +01:00
Peter Steinberger
cf903be4a7
fix: avoid duplicate gateway reconnecting pill
2025-12-30 14:37:59 +01:00
Peter Steinberger
6306786645
fix: allow mp3 fallback result
2025-12-30 14:35:53 +01:00
Peter Steinberger
d7b267843e
fix: fallback mp3 when pcm blocked
2025-12-30 14:32:47 +01:00
Peter Steinberger
3aefe375c1
chore: update deps and add control ui routing tests
2025-12-30 14:30:46 +01:00
Peter Steinberger
3d6cc435ef
fix: hop audio to main actor
2025-12-30 14:22:03 +01:00
Peter Steinberger
973bd3a427
fix: improve talk overlay input + drag
2025-12-30 14:18:51 +01:00
Peter Steinberger
7d1ec51df5
fix: modernize chat scroll position
2025-12-30 13:52:12 +01:00
Peter Steinberger
9fb74399c8
refactor: inject audio players
2025-12-30 13:46:14 +01:00
Peter Steinberger
bc0a6fffd1
fix: tighten macOS menu device rows
2025-12-30 13:31:11 +01:00
Peter Steinberger
fa85dd6527
docs: note macOS menu layout
2025-12-30 12:57:10 +01:00
Peter Steinberger
73d595eecc
chore: sync local changes
2025-12-30 12:53:17 +01:00
Peter Steinberger
3bf8b9ccf4
fix: default android talk pcm_24000
2025-12-30 12:52:56 +01:00
Peter Steinberger
83262a67b1
refactor: extract elevenlabs kit
2025-12-30 12:48:09 +01:00
Peter Steinberger
66952a682d
test: add pcm streaming smoke
2025-12-30 12:27:06 +01:00
Peter Steinberger
9df22c0093
fix: address talk streaming build
2025-12-30 12:20:32 +01:00
Peter Steinberger
27adfb76fa
fix: stream elevenlabs tts playback
2025-12-30 12:17:40 +01:00
Peter Steinberger
9c532eac07
feat(talk): pause + drag overlay orb
2025-12-30 11:37:52 +01:00
Peter Steinberger
2814815312
feat: add talk voice alias map
2025-12-30 11:35:29 +01:00
Peter Steinberger
ab27586674
test: cover external chat completion
2025-12-30 11:23:45 +01:00
Peter Steinberger
2749c5cac3
fix: clear external streaming bubbles
2025-12-30 11:21:57 +01:00
Peter Steinberger
715cf311df
fix(ui): move mac talk orb to corner
2025-12-30 11:20:14 +01:00
Peter Steinberger
312443235d
fix(ios): unblock device builds
2025-12-30 11:16:15 +01:00
Peter Steinberger
0d95d63258
fix(macos): await-safe session key selection
2025-12-30 11:07:34 +01:00
Peter Steinberger
f86772f26c
fix(talk): harden TTS + add system fallback
2025-12-30 07:40:02 +01:00
Peter Steinberger
a7617e4d79
fix(ui): refine talk overlays
2025-12-30 06:47:35 +01:00
Peter Steinberger
7612a83fa2
fix(talk): align sessions and chat UI
2025-12-30 06:47:19 +01:00
Peter Steinberger
afbd18e8df
fix(talk): harden playback, interrupts, and timeouts
2025-12-30 06:05:43 +01:00
Peter Steinberger
be2bc61d38
fix(talk): hard-timeout ElevenLabs synthesis
2025-12-30 05:46:47 +01:00
Peter Steinberger
dcee8beb99
style: biome format gateway server tests
2025-12-30 05:34:53 +01:00
Peter Steinberger
fb8f72d5a9
feat(ui): add centered talk orb
2025-12-30 05:27:29 +01:00
Peter Steinberger
b3f2416a09
test: reduce flaky timeouts
2025-12-30 05:27:18 +01:00
Peter Steinberger
b5ae2ccc3c
fix(voice): sync talk mode chat events
2025-12-30 05:27:11 +01:00
Peter Steinberger
05efc3eace
fix: avoid iOS talk mode audio tap crash
2025-12-30 04:52:57 +01:00
Peter Steinberger
24f8ff7548
chore(protocol): regenerate Swift gateway models
2025-12-30 04:42:08 +01:00
Peter Steinberger
c0c6782a17
fix(android): stabilize BridgeSession shutdown
2025-12-30 04:42:02 +01:00
Peter Steinberger
d2ac672f47
feat: add ui.seamColor accent
2025-12-30 04:14:36 +01:00
Peter Steinberger
e3d8d5f300
fix(macos): prevent Talk Mode audio hang
2025-12-30 04:14:16 +01:00
Peter Steinberger
c5d5c9fcb5
fix: make android canvas background visible
2025-12-30 04:02:52 +01:00
Peter Steinberger
2e040ee07a
fix: brighten android canvas
2025-12-30 03:58:18 +01:00
Peter Steinberger
9846c46434
fix: tag A2UI platform and boost Android canvas
2025-12-30 03:49:24 +01:00
Peter Steinberger
5c7c1af44e
fix: android talk timestamp parsing
2025-12-30 02:05:14 +01:00
Peter Steinberger
e119a82334
feat: talk mode key distribution and tts polling
2025-12-30 01:57:58 +01:00
Peter Steinberger
02db68aa67
fix(macos): hide Restart Gateway when remote
2025-12-30 01:57:58 +01:00
Peter Steinberger
10e1e7fd44
chore: apply biome formatting
2025-12-30 00:16:07 +00:00
Peter Steinberger
7aabe73521
chore: sync pending changes
2025-12-30 00:59:30 +01:00
Peter Steinberger
37f85bb2d1
fix: expand talk overlay bounds
2025-12-30 00:58:58 +01:00
Peter Steinberger
39fccc3699
fix: talk overlay + elevenlabs defaults
2025-12-30 00:51:17 +01:00
Peter Steinberger
53eccc1c1e
fix: wire talk menu + mac build
2025-12-30 00:17:10 +01:00
Peter Steinberger
c56292a6ec
feat: move talk mode to overlay button
2025-12-30 00:01:21 +01:00
Peter Steinberger
857cd6a28a
fix: align ios lint and android build
2025-12-29 23:45:58 +01:00
Peter Steinberger
303954ae8c
feat: extend status activity indicators
2025-12-29 23:42:22 +01:00
Peter Steinberger
3c338d1858
fix: adjust android talk parser for kotlin json
2025-12-29 23:26:38 +01:00
Peter Steinberger
20d7882033
feat: add talk mode across nodes
2025-12-29 23:21:05 +01:00
Peter Steinberger
6927b0fb8d
fix: align camera payload caps
2025-12-29 23:20:55 +01:00
Peter Steinberger
6e83f95c83
fix: clamp tool images to 5MB
2025-12-29 22:13:39 +00:00
Peter Steinberger
8f0c8a6561
fix: cap camera snap payload size
2025-12-29 23:12:20 +01:00
Peter Steinberger
a61b7056d5
feat: surface camera activity in status pill
2025-12-29 23:12:03 +01:00
Peter Steinberger
f41ade9417
feat(skills): add obsidian skill
2025-12-29 22:51:42 +01:00
Peter Steinberger
b0396e196f
fix: refresh bridge tokens and enrich node settings
2025-12-29 22:11:12 +01:00
Peter Steinberger
cf42fabfd8
test: add ios swift testing + android kotest
2025-12-29 21:10:44 +01:00
Peter Steinberger
52263bd5a3
fix: avoid cli gateway close race
2025-12-29 20:45:50 +01:00
Peter Steinberger
24151a2028
fix: mark screen recorder sendable
2025-12-29 20:28:06 +01:00
Peter Steinberger
c11e2d9e5e
fix: avoid self capture in ReplayKit start
2025-12-29 20:26:49 +01:00
Peter Steinberger
a8c9b2810b
fix: align ReplayKit stopCapture call
2025-12-29 20:25:44 +01:00
Peter Steinberger
7a849ab7d1
fix: isolate ReplayKit capture state
2025-12-29 20:24:34 +01:00
Peter Steinberger
c14d738d37
fix: avoid screen recorder data races
2025-12-29 20:22:26 +01:00
Peter Steinberger
65478a6ff3
fix: avoid main-actor stopCapture error
2025-12-29 20:20:14 +01:00
Peter Steinberger
41be9232fe
fix: prevent iOS screen capture crash
2025-12-29 20:10:36 +01:00
Peter Steinberger
653932e50d
fix: show connected nodes only
2025-12-29 18:35:52 +01:00
Peter Steinberger
09ef991e1a
chore: harden restart script
2025-12-29 18:09:27 +01:00
Josh Palmer
0f7029583c
macOS: load device models from bundle resources
2025-12-29 17:49:13 +01:00
Josh Palmer
10eced9971
fix: use telegram token file for sends and guard console EPIPE
2025-12-29 17:49:13 +01:00
Josh Palmer
1d8b47785c
feat(macos): add current TeamID to Peekaboo allowlist
...
Problem: The bridge only accepts the upstream TeamID, so packaged builds signed locally (Nix/CI) can’t use the bridge even though they are the same app.
Fix: Include the running app’s TeamID (from its code signature) in the allowlist.
Safety: TeamID gating remains; this just adds the app’s own TeamID to preserve permissions/automation in reproducible installs.
2025-12-29 17:49:13 +01:00
Josh Palmer
ced271bec1
chore(macos): harden mktemp templates in codesign
2025-12-29 17:49:13 +01:00
Josh Palmer
5d19afd422
feat: improve health checks (telegram tokenFile + hints)
2025-12-29 17:49:13 +01:00
Josh Palmer
b7363f7c18
feat: Nix mode config, UX, onboarding, SwiftPM plist, docs
2025-12-29 17:49:13 +01:00
Peter Steinberger
aa2700ffa7
chore: set ios signing team for device builds
2025-12-29 17:38:21 +01:00
Peter Steinberger
510e2a1d17
fix: menu devices list
2025-12-29 17:31:23 +01:00
Peter Steinberger
ebfe55f909
fix: enable canvas webview scrolling on mobile nodes
2025-12-29 17:13:31 +01:00
Peter Steinberger
26fa9dea97
chore: bump version to 2.0.0-beta5
2025-12-28 14:38:48 +00:00
Peter Steinberger
3bb4c0c237
fix: report macos product version in presence
2025-12-28 14:34:07 +00:00
Peter Steinberger
255a875a2a
chore: refresh a2ui bundle hash
2025-12-28 12:06:48 +00:00
Peter Steinberger
2b5f3f1361
docs: clarify watchdog reconnect note
2025-12-28 12:05:06 +00:00
Peter Steinberger
eb158545fc
fix: force web reconnect on stalled close
2025-12-28 12:04:20 +00:00
Peter Steinberger
cade7b1132
docs: clarify gateway readiness in changelog
2025-12-28 10:30:40 +00:00
Peter Steinberger
d529736597
fix(macos): fully stop Voice Wake runtime when disabled
2025-12-28 10:17:30 +00:00
Peter Steinberger
8dfc031c4d
fix: start gateway before control channel
2025-12-28 09:24:43 +00:00
Peter Steinberger
91c9859000
fix: harden heartbeat acks + gateway reconnect
2025-12-27 20:02:27 +00:00
Peter Steinberger
3a485a14a4
fix: skip whatsapp heartbeat when provider inactive
2025-12-27 19:34:10 +00:00
Peter Steinberger
a61c27c4d0
fix: correct beta3 appcast URL
2025-12-27 20:00:08 +01:00
Peter Steinberger
e5cae2a2e4
chore: release 2.0.0-beta4
2025-12-27 19:43:43 +01:00
Peter Steinberger
7f961237f9
chore: harden release checks
2025-12-27 19:35:39 +01:00
Peter Steinberger
69a6538567
docs: note notarytool profile
2025-12-27 19:24:24 +01:00
Peter Steinberger
5b3c18ab84
chore: release 2.0.0-beta3
2025-12-27 19:02:35 +01:00
Peter Steinberger
907371453d
fix(macos): soften light mode usage bar track
2025-12-27 14:05:36 +01:00
Peter Steinberger
81abffd145
fix(macos): boost light mode usage bar contrast
2025-12-27 14:03:45 +01:00
Peter Steinberger
44ef8fe5c8
fix(macos): refresh sessions on menu open
2025-12-27 13:49:03 +01:00
Peter Steinberger
cae78b3f91
fix: treat /model status as model list
2025-12-27 12:10:44 +00:00
Peter Steinberger
c0fb814658
fix: normalize imports for lint
2025-12-27 04:02:13 +01:00
Peter Steinberger
7ce0140c81
docs: update changelog
2025-12-27 03:21:25 +01:00
Peter Steinberger
12b3034921
chore(canvas): update a2ui bundle hash
2025-12-27 03:21:20 +01:00
Peter Steinberger
ec482ac867
fix(macos): tighten chat window chrome
2025-12-27 03:21:14 +01:00
Peter Steinberger
ae52fb7a01
fix(macos): relax chat window min size
2025-12-27 02:55:24 +01:00
Peter Steinberger
e8ff08e121
fix(macos): round chat window chrome
2025-12-27 02:51:59 +01:00
Peter Steinberger
cc8e104cd6
fix(macos): enforce chat window default size
2025-12-27 02:43:50 +01:00
Peter Steinberger
5919a277bb
fix(macos): stabilize menu width tracking
2025-12-27 02:43:50 +01:00
Peter Steinberger
96911d7790
fix: enqueue system event on model switch
2025-12-27 01:17:12 +00:00
Peter Steinberger
acd3f7dba7
fix(macos): lock menu width on hover
2025-12-27 01:50:25 +01:00
Peter Steinberger
8aff3979db
docs: add local lmstudio setup
2025-12-27 00:48:19 +00:00
Peter Steinberger
eafcd862be
chore: update protocol models
2025-12-27 01:45:58 +01:00
Peter Steinberger
8826170635
fix: resolve CI lint and android build
2025-12-27 01:41:43 +01:00
Peter Steinberger
c54e4d0900
refactor: node tools and canvas host url
2025-12-27 01:36:29 +01:00
Peter Steinberger
52ca5c4aa2
fix: drop identity emoji response prefix
2025-12-27 00:36:04 +00:00
Peter Steinberger
95f8f80e74
fix: allow empty responsePrefix
2025-12-27 00:33:04 +00:00
Peter Steinberger
7e380bb6f8
fix: enable lmstudio responses and drop think tags
2025-12-27 00:28:52 +00:00
Peter Steinberger
2477ffd860
chore: fix lint/test gating
2025-12-26 23:54:30 +00:00
Peter Steinberger
a3dc46bf9d
fix(a2ui): center status overlay
2025-12-27 00:28:38 +01:00
Peter Steinberger
5c8e1b6eef
feat: add model aliases + minimax shortlist
2025-12-26 23:26:14 +00:00
Peter Steinberger
ae9a8ce34c
fix(a2ui): center status overlay
2025-12-27 00:23:27 +01:00
Peter Steinberger
67b9a675f5
fix(macos): allow http loads in canvas webview
2025-12-27 00:20:58 +01:00
Peter Steinberger
fae11e5a55
fix(gateway): advertise reachable canvas host
2025-12-27 00:07:19 +01:00
Peter Steinberger
4daf75a469
fix(macos): enforce node bridge timeouts
2025-12-27 00:02:41 +01:00
Peter Steinberger
d0293649cd
fix(macos): refresh menu sessions without resizing
2025-12-26 22:48:58 +01:00
Peter Steinberger
353366ac54
fix(macos): expand highlighted menu rows to full width
2025-12-26 22:41:29 +01:00
Peter Steinberger
1a8ffebb00
fix(macos): stabilize menu row width
2025-12-26 22:34:18 +01:00
Peter Steinberger
5ffbddcc57
feat(mac): add allow camera toggle
2025-12-26 21:33:22 +00:00
Peter Steinberger
5fbcbe7e52
feat(mac): add discord connections UI
2025-12-26 21:33:22 +00:00
Peter Steinberger
7daa93cf5a
fix(macos): expand menu hover highlight width
2025-12-26 22:30:29 +01:00
Peter Steinberger
9e32f29d19
test: organize heartbeat test imports
2025-12-26 21:29:49 +00:00
Peter Steinberger
1f25e38c2d
fix(macos): keep menu width stable while open
2025-12-26 22:27:24 +01:00
Peter Steinberger
c10a386d17
fix(macos): detect and reset stale SSH tunnels
2025-12-26 22:12:33 +01:00
Peter Steinberger
a13db82d28
fix(nodes): improve version reporting
2025-12-26 21:45:00 +01:00
Peter Steinberger
ec392dc870
feat(mac): add node ssh and compact versions
2025-12-26 20:42:49 +00:00
Peter Steinberger
90d00fb095
fix(mac): reorder menu toggles
2025-12-26 20:42:45 +00:00
Peter Steinberger
e336b7f27e
fix: use final heartbeat payload
2025-12-26 20:39:20 +00:00
Peter Steinberger
7f4c992dd7
fix(mac): move action group below toggles
2025-12-26 20:31:37 +00:00
Peter Steinberger
ba1626a5b9
fix(ios): accept truthy A2UI ready check
2025-12-26 21:17:37 +01:00
Peter Steinberger
ab73c40bfe
fix(mac): refine node submenu copy behavior
2025-12-26 20:05:23 +00:00
Peter Steinberger
4016bc2416
fix(a2ui): center empty canvas text
2025-12-26 20:43:45 +01:00
Peter Steinberger
9302daadc1
fix(mac): align node details
2025-12-26 19:32:48 +00:00
Peter Steinberger
de7429e148
fix(mac): show node versions in menu
2025-12-26 19:25:28 +00:00
Peter Steinberger
5892bd45d8
fix(mac): tweak menu icons
2025-12-26 19:23:53 +00:00
Peter Steinberger
9317eccfc8
fix(mac): regroup menubar sections
2025-12-26 19:18:12 +00:00
Peter Steinberger
1236c4dafb
refactor: make browser actions ref-only
2025-12-26 19:02:27 +00:00
Peter Steinberger
f50f18f65a
feat(mac): refine menubar nodes layout
2025-12-26 19:02:27 +00:00
Peter Steinberger
747cc4daa5
fix: gate libsignal session logs behind verbose
2025-12-26 19:02:27 +00:00
Peter Steinberger
51b6a785e6
fix(canvas): center debug status overlay
2025-12-26 20:01:23 +01:00
Peter Steinberger
f4d41ef254
chore(ios): auto team id fallback
2025-12-26 18:19:48 +01:00
Peter Steinberger
b9d80aa535
chore(ios): add team id helper
2025-12-26 18:16:13 +01:00
Peter Steinberger
2f8213ca9a
fix(a2ui): skip bundle when inputs unchanged
2025-12-26 18:11:00 +01:00
Peter Steinberger
541b8cbb6c
fix(ios): silence device build warnings
2025-12-26 18:09:44 +01:00
Peter Steinberger
ed2e738ea4
fix: provider startup order and enable flags
2025-12-26 16:54:53 +00:00
Peter Steinberger
17d9ba256b
fix(discord): ignore destroy promise
2025-12-26 17:21:32 +01:00
Peter Steinberger
15dbac8193
docs: update beta3 changelog
2025-12-26 17:21:29 +01:00
Peter Steinberger
2119854246
build: skip a2ui bundling in build
2025-12-26 16:00:35 +01:00
Peter Steinberger
034c93fd65
fix: align discord types
2025-12-26 14:47:15 +01:00
Peter Steinberger
ce91aba4de
fix: apply biome formatting
2025-12-26 14:38:37 +01:00
Peter Steinberger
e33c09f8d4
fix(tests): align discord + queue changes
2025-12-26 14:32:57 +01:00
Peter Steinberger
a678c3f53e
refactor(queue): remove drop mode
2025-12-26 14:29:28 +01:00
Peter Steinberger
3e4fc7ff7f
feat(queue): add reset/default directive
2025-12-26 14:24:53 +01:00
Peter Steinberger
8dda07a1e9
feat(queue): add queue modes and discord gating
2025-12-26 13:35:44 +01:00
Peter Steinberger
e9f1851c5d
chore: ignore bun build artifacts
2025-12-26 13:20:30 +01:00
Shadow
ac659ff5a7
feat(discord): Discord transport
2025-12-26 13:20:30 +01:00
Peter Steinberger
557f8e5a04
fix: restore build after deps update
2025-12-26 12:17:36 +00:00
Peter Steinberger
54de5ad3fa
test: isolate vitest home
2025-12-26 11:45:16 +00:00
Peter Steinberger
0709586e3a
fix: support mocked model registry in catalog
2025-12-26 11:53:55 +01:00
Peter Steinberger
82ced33747
fix: align pi model discovery with auth storage
2025-12-26 11:49:13 +01:00
Peter Steinberger
d31c5d7a2c
style: format web inbound
2025-12-26 11:39:48 +01:00
Peter Steinberger
2045487d5e
fix: extract quoted WhatsApp reply text
2025-12-26 10:51:08 +01:00
Peter Steinberger
4611e799b7
docs: note inbox listener cleanup
2025-12-26 09:37:38 +00:00
Peter Steinberger
ffe9a2435b
fix: clean up web inbox listeners on close
2025-12-26 09:27:06 +00:00
Peter Steinberger
f5d8876384
test: expand compaction retry coverage
2025-12-26 10:22:04 +01:00
Peter Steinberger
d28265cfbe
fix: handle embedded agent overflow
2025-12-26 10:20:21 +01:00
Peter Steinberger
8059e83c49
chore: bump pi-mono deps
2025-12-26 10:20:21 +01:00
Peter Steinberger
d6f07c9f91
chore: fix lint after logging tweaks
2025-12-26 09:08:37 +00:00
Peter Steinberger
917cb8fa67
fix: brighten gateway model console log
2025-12-26 08:45:15 +00:00
Peter Steinberger
461db9e469
fix: split whatsapp listen hint from subsystem log
2025-12-26 08:41:58 +00:00
Peter Steinberger
112908886c
fix: log heartbeat failure reasons
2025-12-26 08:34:42 +00:00
Peter Steinberger
f734801da1
fix: correct heartbeat log formatting
2025-12-26 08:17:29 +00:00
meaningfool
ea6dc7c710
fix: correctly define pnpm workspace and clean up vite build scripts
...
This change adds the missing 'packages' definition to pnpm-workspace.yaml, allowing pnpm to correctly install dependencies for the 'ui' sub-package. This resolves the 'vite: command not found' error during 'ui:build'. It also reverts the temporary 'pnpm dlx' workarounds in ui/package.json.
2025-12-26 09:13:17 +01:00
Peter Steinberger
cd81348ca5
chore: fix env spread lint
2025-12-26 02:02:49 +00:00
Peter Steinberger
ad91a09b07
ci: avoid macos runner queue
2025-12-26 02:02:49 +00:00
Peter Steinberger
040f73a3f4
docs: clarify heartbeat defaults
2025-12-26 03:02:11 +01:00
Peter Steinberger
0d8e0ddc4f
feat: unify gateway heartbeat
2025-12-26 02:35:40 +01:00
Peter Steinberger
8f9d7405ed
style: fix biome formatting
2025-12-26 00:50:46 +00:00
Peter Steinberger
72267e97ca
docs: note hour durations
2025-12-26 01:36:08 +01:00
Peter Steinberger
19f87f0a89
feat: allow hour durations
2025-12-26 01:34:46 +01:00
Peter Steinberger
9f7b1f0942
feat: move heartbeat config to agent.heartbeat
2025-12-26 01:13:42 +01:00
Peter Steinberger
1ef888ca23
refactor(config): drop agent.provider
2025-12-26 01:13:42 +01:00
Peter Steinberger
8b815bce94
feat(config): allow provider/model shorthand
2025-12-26 01:13:42 +01:00
Peter Steinberger
97539db36d
ci: skip ios job
2025-12-26 00:04:46 +00:00
Peter Steinberger
655fa5b8e0
style: fix pi embedded runner lint
2025-12-25 23:58:37 +00:00
Peter Steinberger
9fbd3cc16f
ci: ignore ios failures
2025-12-25 23:55:55 +00:00
Rolf Fredheim
2295cbb815
feat(agent): add maxConcurrent config for parallel message handling
...
Adds `agent.maxConcurrent` config option to control how many agent runs
can execute in parallel across all conversations. Default remains 1
(sequential) for backwards compatibility.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-25 23:55:41 +01:00
Peter Steinberger
198f8ea700
fix(agent): serialize runs per session
2025-12-25 23:50:52 +01:00
Peter Steinberger
9fa9199747
docs: note multi-agent session rule
2025-12-25 23:50:46 +01:00
Peter Steinberger
1cd167a59a
ci: run on node 24
2025-12-25 23:05:09 +01:00
Peter Steinberger
2868dc975c
chore: require node >=22.12 and fix swiftformat lint
2025-12-25 23:02:31 +01:00
meaningfool
214ab16eb2
fix: correctly define pnpm workspace and clean up vite build scripts
...
This change adds the missing 'packages' definition to pnpm-workspace.yaml, allowing pnpm to correctly install dependencies for the 'ui' sub-package. This resolves the 'vite: command not found' error during 'ui:build'. It also reverts the temporary 'pnpm dlx' workarounds in ui/package.json.
2025-12-25 22:52:22 +01:00
Peter Steinberger
1c88d9575e
fix(webchat): refresh bubbles on theme change
2025-12-25 22:35:46 +01:00
Peter Steinberger
1e4e02ddd3
docs: update beta3 changelog
2025-12-25 21:15:45 +00:00
Peter Steinberger
f6fcddbe0b
fix: relax tool typing for bash tools
2025-12-25 20:27:05 +00:00
Peter Steinberger
474180c112
style: fix bash tools lint
2025-12-25 20:20:38 +00:00
Peter Steinberger
c860573f13
style: fix biome formatting
2025-12-25 20:13:48 +00:00
Peter Steinberger
c9c7354009
chore: add gateway:watch
2025-12-25 18:44:23 +00:00
Peter Steinberger
42eb7640f9
feat: add gateway restart tool
2025-12-25 18:05:37 +00:00
Peter Steinberger
aafcd569b1
feat: line-based process logs
2025-12-25 18:03:57 +00:00
Peter Steinberger
b549307ccf
docs: add Sparkle HTML release notes
2025-12-25 04:27:20 +01:00
Peter Steinberger
57090d4f8d
fix: align chat scroll anchor
2025-12-25 04:10:47 +01:00
Peter Steinberger
764f7586de
fix: adjust tool casts for build
2025-12-25 03:36:04 +01:00
Peter Steinberger
d96f2abc4e
fix: resolve agent tool typing
2025-12-25 03:33:09 +01:00
Peter Steinberger
92f467e81c
fix: clean agent bash lint
2025-12-25 03:29:36 +01:00
Peter Steinberger
2442186a31
fix: silence view warnings
2025-12-25 03:23:31 +01:00
Peter Steinberger
9fb74cb58a
test: assert bridge does not add loopback listener
2025-12-25 01:41:09 +00:00
Peter Steinberger
81e11c1d91
fix: bridge tailnet bind also listens on loopback
2025-12-25 01:37:47 +00:00
Peter Steinberger
dc93350e0a
docs: add background bash changelog
2025-12-25 00:54:08 +00:00
Peter Steinberger
3c6432da1f
feat: add background bash sessions
2025-12-25 00:25:11 +00:00
Peter Steinberger
4eecb6841a
docs: add gmail hook quickstart
2025-12-24 22:59:09 +00:00
Peter Steinberger
3b83d3ff3a
fix: preserve tool action enums
2025-12-24 22:50:40 +00:00
Peter Steinberger
88b92a9605
style: format gmail hooks and tools
2025-12-24 23:11:14 +01:00
Peter Steinberger
3bb5baa6d2
fix: default tailscale serve in settings
2025-12-24 22:09:23 +00:00
Peter Steinberger
59443d7ec6
style: format reply changes
2025-12-24 23:06:20 +01:00
Peter Steinberger
c1d170e13d
docs: note tailscale gmail path behavior
2025-12-24 21:56:21 +00:00
Peter Steinberger
cffac6e11a
fix: auto gmail serve path for tailscale
2025-12-24 21:56:17 +00:00
Peter Steinberger
79870472e1
fix: expose union tool parameters
2025-12-24 21:48:22 +00:00
Peter Steinberger
1b69c94f76
docs: clarify reply threading change
2025-12-24 22:37:32 +01:00
Peter Steinberger
cf8d1cf0e7
fix: avoid threaded replies for agent output
2025-12-24 22:36:42 +01:00
Peter Steinberger
009fbeb543
chore: add gmail hook setup notes
2025-12-24 21:20:20 +00:00
Peter Steinberger
9ceb8731d3
chore: clarify gmail serve path
2025-12-24 21:20:20 +00:00
Peter Steinberger
8f934bf817
docs: update file size guidance
2025-12-24 22:19:10 +01:00
Peter Steinberger
88be2701f4
refactor: split utilities
2025-12-24 22:16:06 +01:00
Peter Steinberger
8ee62f0ac8
style: format locator selector
2025-12-24 21:49:31 +01:00
Peter Steinberger
4d4308af78
fix: resolve coverage profile symbol at runtime
2025-12-24 21:43:46 +01:00
Peter Steinberger
f7c5eff35e
docs: link webhook docs
2025-12-24 20:07:24 +00:00
Peter Steinberger
3bc1644f34
refactor: split canvas window
2025-12-24 21:04:52 +01:00
Peter Steinberger
27025b71db
feat: add selector-based browser actions
2025-12-24 19:52:28 +00:00
Peter Steinberger
523d9ec3c2
feat: add gmail hooks wizard
2025-12-24 19:48:35 +00:00
Peter Steinberger
aeb5455555
feat: add webhook hook mappings
...
# Conflicts:
# src/gateway/server.ts
2025-12-24 19:48:05 +00:00
Peter Steinberger
337390b590
fix: allow overlay present access
2025-12-24 20:24:37 +01:00
Peter Steinberger
836d950e05
fix: restore voice wake overlay build
2025-12-24 20:17:01 +01:00
Peter Steinberger
ad096f77fc
refactor: split voice wake overlay
2025-12-24 20:09:56 +01:00
Peter Steinberger
3774494f7e
test: add ios coverage tests
2025-12-24 20:00:51 +01:00
Peter Steinberger
14fae5af9e
test: add ios coverage hooks
2025-12-24 20:00:45 +01:00
Peter Steinberger
65b48561a9
refactor: split critter status label
2025-12-24 19:56:24 +01:00
Peter Steinberger
842dc14c18
style: format port guardian
2025-12-24 19:41:32 +01:00
Peter Steinberger
af1afa7ba6
style: format cron settings
2025-12-24 19:40:11 +01:00
Peter Steinberger
8c4c5e524b
refactor: split cron settings
2025-12-24 19:36:10 +01:00
Peter Steinberger
204bd7d2c4
test: add mac coverage helpers
2025-12-24 19:29:44 +01:00
Peter Steinberger
f44014ff00
refactor: split onboarding view
2025-12-24 19:29:27 +01:00
Peter Steinberger
01719b02e2
test: cover bridge settings discovery
2025-12-24 18:07:41 +01:00
Peter Steinberger
4ba86bbe00
test: cover bridge hello defaults
2025-12-24 18:07:38 +01:00
Peter Steinberger
b85503b3b2
fix: guard hook payload strings
2025-12-24 17:49:52 +01:00
Peter Steinberger
131a9aa1ac
style: format macos sources
2025-12-24 17:47:35 +01:00
Peter Steinberger
bd223606b1
style: format gateway server
2025-12-24 17:45:39 +01:00
Peter Steinberger
f4fb80e523
test: expand overlay coverage
2025-12-24 17:43:30 +01:00
Peter Steinberger
49e466dd40
test: expand menu and node coverage
2025-12-24 17:43:30 +01:00
Peter Steinberger
deec315f6a
test: expand settings coverage
2025-12-24 17:43:30 +01:00
Peter Steinberger
7fafe54e16
test: expand onboarding coverage
2025-12-24 17:43:30 +01:00
Peter Steinberger
bdcbc829a0
test: add coverage flush helper
2025-12-24 17:43:30 +01:00
Peter Steinberger
4a64e86ecb
chore: update changelog
2025-12-24 14:39:26 +00:00
Peter Steinberger
1e2946ebc6
test: extend webhook coverage
2025-12-24 14:39:21 +00:00
Peter Steinberger
1ed5ca3fde
feat: add gateway webhooks
2025-12-24 14:33:05 +00:00
Peter Steinberger
aa62ac4042
fix: use recognition update segments
2025-12-24 15:27:06 +01:00
Peter Steinberger
e8f24910bd
style: swiftformat chat ui
2025-12-24 15:10:31 +01:00
Peter Steinberger
8d34e54dc5
fix: address swiftlint warnings
2025-12-24 15:10:22 +01:00
Peter Steinberger
c5ede3f167
build: align Commander dependency
2025-12-24 14:44:56 +01:00
Peter Steinberger
1cd108e891
fix: clear wake word match warning
2025-12-24 14:44:50 +01:00
Peter Steinberger
8878fd3028
ui: merge tool call results
2025-12-24 14:38:43 +01:00
Peter Steinberger
a22d4e7962
fix: import AnyCodable for tool cards
2025-12-24 14:35:06 +01:00
Peter Steinberger
25d2d7389f
ui: render tool call cards
2025-12-24 14:29:40 +01:00
Peter Steinberger
816b784399
ui: constrain typing indicator width
2025-12-24 14:10:32 +01:00
Peter Steinberger
c250f092bb
test: cover overlay level throttling
2025-12-24 13:54:03 +01:00
Peter Steinberger
b9c2bdf641
docs: update changelog
2025-12-24 13:52:41 +01:00
Peter Steinberger
5ba90db049
perf: throttle voice overlay updates
2025-12-24 13:51:41 +01:00
Peter Steinberger
88d20c5419
perf: gate idle pulse animations
2025-12-24 13:51:40 +01:00
Peter Steinberger
e158bee95f
perf: reduce chat animation churn
2025-12-24 13:51:40 +01:00
Peter Steinberger
0139a77e94
fix: resolve ts build errors
2025-12-24 00:57:11 +00:00
Peter Steinberger
e76d1b899b
fix: clean telegram parse error logging
2025-12-24 00:53:27 +00:00
Peter Steinberger
3fcdd6c9d7
feat: enforce final tag parsing for embedded PI
2025-12-24 00:52:33 +00:00
Peter Steinberger
bc916dbf35
feat: require final tag format in system prompt
2025-12-24 00:52:30 +00:00
Peter Steinberger
96da2efb13
style: swiftformat gateway process manager
2025-12-24 00:33:40 +00:00
Peter Steinberger
267cdf20e1
style: fix biome lint
2025-12-24 00:33:35 +00:00
Peter Steinberger
20c7df35c4
docs: note config refactor
2025-12-24 00:24:05 +00:00
Peter Steinberger
0f06e9926b
docs: update routing/messages/session config
2025-12-24 00:22:57 +00:00
Peter Steinberger
93af424ce5
refactor: move inbound config
2025-12-24 00:22:52 +00:00
Peter Steinberger
5e07400cd1
refactor: update macOS config paths
2025-12-23 23:45:27 +00:00
Peter Steinberger
364a6a9444
feat: add per-session model selection
2025-12-23 23:45:20 +00:00
Peter Steinberger
b6bfd8e34f
fix: anchor typing loop to run
2025-12-23 15:03:05 +00:00
Peter Steinberger
b05981ef27
fix: add reasoning tag hint for local providers
2025-12-23 14:34:56 +00:00
Peter Steinberger
42f1a56832
test: cover system prompt owner numbers
2025-12-23 14:20:09 +00:00
Peter Steinberger
f667d56701
fix: tag owner numbers in system prompt
2025-12-23 14:19:41 +00:00
Peter Steinberger
df5284beaf
fix: suppress thinking stream + typing
2025-12-23 14:17:18 +00:00
Peter Steinberger
6d551b0d6e
fix: normalize tool schemas for lm studio
2025-12-23 14:09:07 +00:00
Peter Steinberger
25e6339e2e
chore: bump pi-mono deps
2025-12-23 14:07:54 +00:00
Peter Steinberger
f70fd30cd3
chore: include runtime info in system prompt
2025-12-23 14:05:43 +00:00
Peter Steinberger
863d26558a
fix: delay typing until reply payload
2025-12-23 13:55:01 +00:00
Peter Steinberger
cba12a1abd
fix: inject group activation in system prompt
2025-12-23 13:32:07 +00:00
Peter Steinberger
96d57a18ee
chore: demote reply chunk logs
2025-12-23 13:25:56 +00:00
Peter Steinberger
e54ed10bc1
fix: honor /new resets with mentions in groups
2025-12-23 13:20:11 +00:00
Peter Steinberger
c8c807adcc
refactor: drop PAM auth and require password for funnel
2025-12-23 13:13:09 +00:00
Peter Steinberger
cd6ed79433
fix: honor group requireMention default
2025-12-23 12:53:30 +00:00
Peter Steinberger
ea4b3b74bb
chore: log whatsapp identity on start
2025-12-23 12:45:18 +00:00
Peter Steinberger
facfd64787
fix: avoid spawning duplicate gateway when external listener exists
2025-12-23 12:43:51 +00:00
Peter Steinberger
760a83d256
docs: add offline memory system proposal
2025-12-23 13:36:59 +01:00
Peter Steinberger
bbff19698b
chore: flatten provider console subsystems
2025-12-23 11:27:14 +00:00
Peter Steinberger
6f38cb162c
chore: bump internal version to beta3
2025-12-23 04:28:09 +01:00
Peter Steinberger
af82224f82
fix: relax Sparkle delegate isolation
2025-12-23 03:36:56 +01:00
Peter Steinberger
a938e9473b
fix: isolate Sparkle delegate conformance
2025-12-23 03:28:39 +01:00
Peter Steinberger
3e88553d52
fix: isolate updater factory on main actor
2025-12-23 03:16:47 +01:00
Peter Steinberger
56245d5646
fix: strip repeated heartbeat ok tails
2025-12-23 03:12:24 +01:00
Peter Steinberger
4af08b1606
fix: preserve whatsapp group JIDs
2025-12-23 03:05:59 +01:00
Peter Steinberger
fc4a395c88
chore: update gateway protocol models
2025-12-23 03:05:04 +01:00
Peter Steinberger
de1813ab32
docs: add beta3 changelog
2025-12-23 03:02:30 +01:00
Peter Steinberger
89ace66972
style: format macOS sources
2025-12-23 03:02:09 +01:00
Peter Steinberger
63f1857bda
docs: add WhatsApp integration guide
2025-12-23 03:00:27 +01:00
Peter Steinberger
279500cba4
fix: resolve build errors
2025-12-23 03:00:04 +01:00
Peter Steinberger
183270b443
fix: correct models config schema
2025-12-23 02:50:26 +01:00
Peter Steinberger
a5f4332f21
style: apply biome formatting
2025-12-23 02:49:49 +01:00
Peter Steinberger
6fad79f581
docs: document custom model providers
2025-12-23 02:48:57 +01:00
Peter Steinberger
dff6274a93
test: cover models config merge
2025-12-23 02:48:54 +01:00
Peter Steinberger
082c872469
feat: support custom model providers
2025-12-23 02:48:48 +01:00
Peter Steinberger
67a3dda53a
fix: inject reply context into body
2025-12-23 02:44:38 +01:00
Peter Steinberger
950432eac0
test: update whatsapp reply quote assertions
2025-12-23 02:30:21 +01:00
Peter Steinberger
6550e7d562
fix: add whatsapp reply context
2025-12-23 02:30:21 +01:00
Peter Steinberger
ffe75f3e20
🤖 codex: add telegram reply context
...
# Conflicts:
# src/telegram/bot.ts
2025-12-23 02:30:21 +01:00
Tu Nombre Real
8431874b15
fix(macOS): remove redundant kickstart -k causing gateway restart loop
...
The launchd bootstrap already starts the gateway job. The subsequent
kickstart -k was killing it immediately after startup, and combined
with KeepAlive=true, this caused a port-conflict restart loop where
launchd would try to restart while the old instance was still
shutting down.
Symptoms: 'Bootstrap failed: 5: Input/output error' and repeated
'Gateway failed to start: another gateway instance is already
listening' messages in the log.
2025-12-23 01:57:54 +01:00
Peter Steinberger
54d2ccda99
feat(mac): surface update-ready state
2025-12-23 01:42:33 +01:00
Peter Steinberger
926b6d9464
chore: format wake gate + chat theme
2025-12-23 01:41:13 +01:00
Peter Steinberger
abfb6832c3
fix(mac): default session menu checks
2025-12-23 01:36:01 +01:00
Peter Steinberger
ceeea359fc
chore: remove shared build artifacts
2025-12-23 01:32:02 +01:00
Peter Steinberger
ef35868bef
feat: share wake gate via SwabbleKit
2025-12-23 01:31:59 +01:00
Peter Steinberger
cf48d297dd
docs: explain tool exposure in pi-mono
2025-12-23 00:29:38 +00:00
Peter Steinberger
2b20e3d2b0
chore: resolve docs list from cwd
2025-12-23 00:28:55 +00:00
Peter Steinberger
918cbdcf03
refactor: lint cleanups and helpers
2025-12-23 00:28:55 +00:00
Peter Steinberger
f5837dff9c
chore: add oxlint type-aware lint
2025-12-23 00:28:55 +00:00
Peter Steinberger
ce04308c17
refactor: remove session syncing metadata
2025-12-23 00:50:51 +01:00
Peter Steinberger
c0c20ebf3e
feat: replace clawdis skills with tools
2025-12-22 23:40:57 +00:00
Peter Steinberger
823195a122
style(mac): increase session row padding
2025-12-23 00:10:38 +01:00
Peter Steinberger
581583abb4
fix(mac): drop syncing menu + show state checks
2025-12-23 00:10:38 +01:00
Peter Steinberger
882fd48408
style: add visual effect host for chat
2025-12-23 00:10:38 +01:00
Peter Steinberger
91238df13f
chore: alias console subsystem names
2025-12-22 23:06:15 +00:00
Peter Steinberger
ca806897c2
Template: Add smart heartbeat logic for baby agents
...
- Added heartbeat section with proactive check guidelines
- Includes email, calendar, weather, mentions rotation
- Track checks in heartbeat-state.json
- Know when to reach out vs stay quiet
- Proactive work suggestions (memory, git, docs)
Goal: Baby agents should check in 2-4x daily, not just HEARTBEAT_OK
2025-12-22 22:55:27 +00:00
Peter Steinberger
9118884e92
fix(web): restore creds before auth check
2025-12-22 22:55:27 +00:00
Peter Steinberger
e403f8b620
style(pi): sort imports
2025-12-22 22:55:27 +00:00
Peter Steinberger
6205b955da
style(mac): adjust session row padding and menu options
2025-12-22 23:30:25 +01:00
Peter Steinberger
d265a04b19
style(mac): pad session rows + thicken bars
2025-12-22 23:22:36 +01:00
Peter Steinberger
afc09744b4
fix(mac): size highlighted session rows
2025-12-22 22:59:59 +01:00
Peter Steinberger
1e1d76d600
fix(mac): restore sessions bars with injected submenus
2025-12-22 22:49:37 +01:00
Peter Steinberger
0b70aa0c56
fix(mac): hide sessions header when disconnected
2025-12-22 22:09:26 +01:00
Peter Steinberger
4ca6591045
refactor: move OAuth storage and drop legacy sessions
2025-12-22 21:02:48 +00:00
Peter Steinberger
9717f2d374
fix: bump pi deps and fix lint
2025-12-22 20:45:38 +00:00
Peter Steinberger
469c8a1a4b
fix(mac): show disconnected sessions + sleeping eyes
2025-12-22 21:13:33 +01:00
Peter Steinberger
9d47b15575
fix(mac): sessions error UI + sleeping icon
2025-12-22 21:02:45 +01:00
Peter Steinberger
a11a204b8e
chore(submodules): bump Peekaboo
2025-12-22 19:44:48 +00:00
Peter Steinberger
e3c3d108fe
refactor(logging): shorten subsystem prefixes
2025-12-22 19:42:22 +00:00
Peter Steinberger
8cadb5cf18
docs: update group chat commands
2025-12-22 20:36:34 +01:00
Peter Steinberger
f10c8f2b4c
feat: add group activation command
2025-12-22 20:36:29 +01:00
Peter Steinberger
5d2d701e1e
docs: note mac studio session log location
2025-12-22 20:26:23 +01:00
Peter Steinberger
f24d8473b1
fix(mac): restore session usage bar
2025-12-22 20:14:54 +01:00
Peter Steinberger
3412ff7003
style: add macos chat glass background
2025-12-22 19:55:17 +01:00
Peter Steinberger
15e468f5dd
feat: add group chat activation mode
2025-12-22 19:32:12 +01:00
Peter Steinberger
a0dd504991
feat(mac): sessions submenus
2025-12-22 19:29:24 +01:00
Peter Steinberger
19b847b23b
style: tighten macos chat composer
2025-12-22 19:08:23 +01:00
Peter Steinberger
3b134c8fef
style: tighten chat compose spacing
2025-12-22 19:01:58 +01:00
Peter Steinberger
c872f37aae
fix: remove redundant await in CanvasManager
2025-12-22 18:53:14 +01:00
Peter Steinberger
3ce5b9b0d9
test: extend gateway sigterm timeouts
2025-12-22 18:52:35 +01:00
Peter Steinberger
2d7c5f8c53
refactor: migrate embedded pi to sdk
2025-12-22 18:05:44 +01:00
Peter Steinberger
79c0fd27a0
fix: center debug status overlay
2025-12-21 20:43:06 +01:00
Peter Steinberger
b06d1ed072
docs(logging): clarify console color behavior
2025-12-21 17:36:30 +00:00
Peter Steinberger
52e7a4456a
refactor(logging): streamline whatsapp console output
2025-12-21 17:36:24 +00:00
Peter Steinberger
f1202ff152
chore: fix lint + build
2025-12-21 15:58:37 +01:00
Peter Steinberger
e4db7cbd2b
chore: bump Peekaboo submodule
2025-12-21 15:57:09 +01:00
Peter Steinberger
ff63204d17
fix(web): harden WhatsApp creds persistence
2025-12-21 13:58:31 +00:00
Peter Steinberger
4f3a3e93a9
style: biome formatting
2025-12-21 13:58:27 +00:00
Peter Steinberger
b56d4b90ce
fix(logging): repair chalk/tslog typing
2025-12-21 13:58:22 +00:00
Peter Steinberger
6c2f9b3150
chore: update Peekaboo submodule
2025-12-21 14:50:28 +01:00
Peter Steinberger
a808cdce13
fix(android): drop duplicate scaffold asset
2025-12-21 14:50:28 +01:00
Peter Steinberger
a8629e1855
fix(logging): simplify tty color detection
2025-12-21 13:34:13 +00:00
Peter Steinberger
0146784e18
feat(logging): add console color modes
2025-12-21 13:26:50 +00:00
Peter Steinberger
249b85af1e
refactor(gateway): switch logs to subsystem logger
2025-12-21 13:24:15 +00:00
Peter Steinberger
efc12ab28d
refactor(browser): use subsystem logger
2025-12-21 13:24:15 +00:00
Peter Steinberger
5b2e7d4464
refactor(logging): add subsystem console formatting
2025-12-21 13:24:15 +00:00
Peter Steinberger
bcd3c13e2c
feat(macos): surface canvas debug status
2025-12-21 14:21:06 +01:00
Peter Steinberger
7932e966db
feat(android): toggle debug canvas status
2025-12-21 14:21:06 +01:00
Peter Steinberger
30d84643db
feat(ios): toggle debug canvas status
2025-12-21 14:21:06 +01:00
Peter Steinberger
264c91e620
feat(canvas): gate debug status overlay
2025-12-21 14:21:06 +01:00
Peter Steinberger
db89be4106
chore: update peekaboo submodule
2025-12-21 13:10:20 +00:00
Peter Steinberger
85816a5ee2
fix(cli): hint peekaboo unauthorized
2025-12-21 13:09:48 +00:00
Peter Steinberger
5449e44381
chore: bump Peekaboo submodule
2025-12-21 14:01:28 +01:00
Peter Steinberger
20630b8744
chore: bump Peekaboo + menu cleanup
2025-12-21 13:59:41 +01:00
Peter Steinberger
3b63d1cb77
fix: auto-restart WhatsApp QR login
2025-12-21 13:36:26 +01:00
Peter Steinberger
5703b9e737
docs: clarify restart semantics
2025-12-21 12:47:18 +01:00
Peter Steinberger
02787b5674
build(mac): add notarize flow for release artifacts
2025-12-21 12:33:45 +01:00
Peter Steinberger
4021da524c
fix(chat-ui): avoid animated initial scroll
2025-12-21 12:33:41 +01:00
Peter Steinberger
5adec0eae0
fix: align canvas defaults and A2UI auto-nav
2025-12-21 12:32:36 +01:00
Peter Steinberger
3f44f0b753
ui: simplify dashboard health status
2025-12-21 12:31:56 +01:00
Peter Steinberger
2a975f751b
refactor(macos): regroup menu sections
2025-12-21 12:29:29 +01:00
Peter Steinberger
03bd049291
docs: refine header ctas for github pages
2025-12-21 12:29:29 +01:00
Peter Steinberger
6ddd36666e
feat(ui): make chat the landing view
2025-12-21 11:24:39 +00:00
Peter Steinberger
3791db006e
docs: add github/download buttons to pages header
2025-12-21 12:19:08 +01:00
Peter Steinberger
6bf8c0c17a
docs: note npm release pitfalls
2025-12-21 04:10:20 +01:00
Peter Steinberger
80e1934f4e
style: fix tailscale swiftformat
2025-12-21 03:52:28 +01:00
Peter Steinberger
7415fdb79b
chore: whitelist npm files
2025-12-21 03:48:23 +01:00
Peter Steinberger
b850b0dacf
ci: install swiftlint and swiftformat for ios
2025-12-21 03:44:18 +01:00
Peter Steinberger
04e3d0c2fe
style: swiftformat cleanup
2025-12-21 03:44:12 +01:00
Peter Steinberger
3810519671
chore: update appcast for 2.0.0-beta2
2025-12-21 03:29:03 +01:00
Peter Steinberger
a08c8ef1fa
chore: bump version to 2.0.0-beta2
2025-12-21 03:21:49 +01:00
Peter Steinberger
6496a288b8
fix: add A2UI inset vars
2025-12-21 03:21:49 +01:00
Peter Steinberger
9f72eb3374
docs: add canvas gutter guidance
2025-12-21 03:21:48 +01:00
Peter Steinberger
e71c71c6c2
fix: add canvas gutter vars for A2UI
2025-12-21 03:21:48 +01:00
Peter Steinberger
0197fb35fe
fix: clear canvas error banner on load
2025-12-21 03:21:48 +01:00
Peter Steinberger
bcc5891e03
fix(mac): allow tailscale localapi http
2025-12-21 02:17:55 +00:00
Peter Steinberger
f90ab3c4c2
fix(mac): trim onboarding checklist
2025-12-21 01:57:18 +00:00
Peter Steinberger
79280f3d93
fix(mac): tighten onboarding layout
2025-12-21 01:57:18 +00:00
Peter Steinberger
ce79d0b9a4
docs: add Peter tailnet/gateway notes
2025-12-21 02:55:32 +01:00
Peter Steinberger
a5b4a01594
fix(mac): shrink onboarding + respect existing workspace
2025-12-21 01:51:48 +00:00
Peter Steinberger
5b25eeb449
refactor(macos): remove manual identity onboarding
2025-12-21 01:39:50 +00:00
Peter Steinberger
fb259e8a50
fix(mac): shrink onboarding height
2025-12-21 01:35:27 +00:00
Peter Steinberger
b82dfe08a2
fix: prefer header mime for media extensions
2025-12-21 02:34:19 +01:00
Peter Steinberger
4671c9e672
fix: align A2UI canvas background
2025-12-21 02:34:19 +01:00
Peter Steinberger
00cdcd4d28
fix(mac): guard onboarding workspace bootstrap
2025-12-21 01:31:31 +00:00
Peter Steinberger
4e1fe88195
Give workspace templates actual personality
...
- SOUL.md: Philosophy over bullet points, genuine vs performative help
- IDENTITY.md: Invites creativity, frames identity as discovery
- USER.md: Learning about a person, not building a dossier
- BOOTSTRAP.md: Conversational first-run, not robotic steps
- AGENTS.md: 'This folder is home' - clear, direct, practical
- TOOLS.md: Explains why separate from skills, real examples
New agents should boot with spark, not corporate drone energy. 🦞
2025-12-21 01:24:13 +00:00
Peter Steinberger
28ad475ab4
feat(mac): add tailscale settings
2025-12-21 01:16:49 +00:00
Peter Steinberger
104e265633
docs: clarify wacli usage
2025-12-21 02:14:52 +01:00
Peter Steinberger
382d237a60
build: silence mac packaging warnings
2025-12-21 02:06:12 +01:00
Peter Steinberger
de2fd659ab
fix(mac): shrink onboarding height
2025-12-21 00:57:11 +00:00
Peter Steinberger
d2fda411f3
docs: add 2.0.0-beta2 changelog
2025-12-21 01:54:27 +01:00
Peter Steinberger
e02944c323
docs: fix npmjs header image
2025-12-21 01:54:27 +01:00
Peter Steinberger
a01f4998c5
ci: split ios workflow
2025-12-21 00:49:20 +00:00
Peter Steinberger
aa198594fd
fix(mac): avoid buttonStyle ternary
2025-12-21 00:49:07 +00:00
Peter Steinberger
406a94bf76
fix: use A2UI message context
2025-12-21 01:48:21 +01:00
Peter Steinberger
fef1841fee
build: update iOS lint scripts
2025-12-21 01:48:21 +01:00
Peter Steinberger
1cb85fdea8
fix(mac): disambiguate skills install ForEach
2025-12-21 00:47:49 +00:00
Peter Steinberger
78263e81f1
fix(mac): restore skills install ForEach
2025-12-21 00:46:38 +00:00
Peter Steinberger
053c8d5731
feat(gateway): add tailscale auth + pam
2025-12-21 00:44:39 +00:00
Peter Steinberger
d69064f364
fix(gateway): avoid crash in handshake auth
2025-12-21 00:41:06 +00:00
Peter Steinberger
fedb24caf1
fix(ui): stabilize skills action column
2025-12-21 00:37:29 +00:00
Peter Steinberger
6ff8371254
feat(ui): expand control dashboard
2025-12-21 00:34:39 +00:00
Peter Steinberger
7b6eaa819e
chore: ignore ClawdisKit .swiftpm
2025-12-21 01:10:06 +01:00
Peter Steinberger
e94aa296e2
feat: refine skills install actions
2025-12-21 01:07:35 +01:00
Peter Steinberger
98891103d0
fix: streamline WhatsApp login flow
2025-12-21 01:07:35 +01:00
Peter Steinberger
383097a03a
fix: emit delta-only node system events
2025-12-21 01:07:35 +01:00
Peter Steinberger
2b2f13ca79
fix: restore canvas action bridge
2025-12-21 01:07:35 +01:00
Peter Steinberger
78159a9435
fix(onboarding): nudge bottom padding
2025-12-20 23:52:45 +00:00
Peter Steinberger
b4af7b919e
fix(macos): simplify skills view and resize onboarding
2025-12-20 23:45:50 +00:00
Peter Steinberger
65056915d3
fix(onboarding): lift bottom bar
2025-12-20 23:36:24 +00:00
Peter Steinberger
bc3f744e45
chore(canvas): refresh a2ui bundle
2025-12-21 00:25:56 +01:00
Peter Steinberger
fb8da15b01
chore(canvas): rebuild a2ui bundle
2025-12-21 00:25:56 +01:00
Peter Steinberger
62f624b66b
fix(mac): re-ensure remote gateway tunnel
2025-12-21 00:25:56 +01:00
Peter Steinberger
ef20053e72
style(tests): format gateway server test
2025-12-21 00:25:56 +01:00
Peter Steinberger
aae68e4f82
style(chatui): fix SwiftFormat warnings
2025-12-21 00:25:56 +01:00
Peter Steinberger
1d715d7b1b
chore(ios): link AppIntents framework
2025-12-21 00:24:24 +01:00
Peter Steinberger
1d7110ea8f
fix(onboarding): fit chat card
2025-12-20 23:15:35 +00:00
Peter Steinberger
80f70a58e3
fix(chat): refine onboarding bubbles
2025-12-20 23:15:29 +00:00
Peter Steinberger
f7aabeba04
chore(deps): update lockfile
2025-12-20 23:00:31 +00:00
Peter Steinberger
02f6cac9d6
style(chat): use integrated bubble tail
2025-12-20 23:00:21 +00:00
Peter Steinberger
df54fc6098
test(gateway): cover provider status/logout RPCs
2025-12-20 23:51:36 +01:00
Peter Steinberger
fe0fb8d296
chore(canvas): rebuild a2ui bundle
2025-12-20 22:45:15 +00:00
Peter Steinberger
591120a7f7
chore(deps): update dependencies
2025-12-20 22:45:15 +00:00
Peter Steinberger
878f074494
chore(android): update kotlin compiler settings
2025-12-20 23:43:28 +01:00
Peter Steinberger
c1050da852
chore(android): update icons and platform config
2025-12-20 23:43:28 +01:00
Peter Steinberger
873daf079c
feat(web): emit provider status updates
2025-12-20 23:43:27 +01:00
Peter Steinberger
df9e4bdd63
chore(macos): tidy discovery and runtime
2025-12-20 23:43:27 +01:00
Peter Steinberger
43ba1671f1
feat(macos): add connections settings
...
# Conflicts:
# apps/macos/Sources/Clawdis/SettingsRootView.swift
2025-12-20 23:43:27 +01:00
Peter Steinberger
ce4b68d5fb
fix: pre-size menu context card
2025-12-20 23:43:27 +01:00
Peter Steinberger
8c18dd40a3
feat(macos): load models from gateway
2025-12-20 23:43:27 +01:00
Peter Steinberger
e3015bbfb7
test(gateway): cover models.list
2025-12-20 23:43:27 +01:00
Peter Steinberger
817abd8b5f
feat(gateway): add models.list
2025-12-20 23:43:27 +01:00
Peter Steinberger
dbc9b00de5
docs: improve oracle skill guidance
2025-12-20 23:41:07 +01:00
Peter Steinberger
b635e83651
chore(pi): bump deps, drop steerable transport
2025-12-20 22:38:12 +00:00
Peter Steinberger
7aeacdcc6c
style(settings): widen window
2025-12-20 22:23:15 +00:00
Peter Steinberger
16e4a0c4bd
style(onboarding): refine bubble tails
2025-12-20 22:23:06 +00:00
Peter Steinberger
d613800516
fix(onboarding): anchor bottom bar and reduce height
2025-12-20 22:16:13 +00:00
Peter Steinberger
94b89216f7
style(onboarding): add speech bubble tails
2025-12-20 22:08:01 +00:00
Peter Steinberger
153e09120a
style(onboarding): lower bottom row
2025-12-20 22:07:51 +00:00
Peter Steinberger
238c0c1b86
fix(onboarding): clearer bubbles and tighter composer
2025-12-20 22:03:24 +00:00
Peter Steinberger
98ff213708
style(onboarding): lower bottom controls
2025-12-20 22:03:13 +00:00
Peter Steinberger
8a2a07eddb
fix(macos): always show CLI installer
2025-12-20 22:00:51 +00:00
Peter Steinberger
9076d543f3
fix(onboarding): restore bubbles and spacing
2025-12-20 21:56:03 +00:00
Peter Steinberger
cd77dc9563
fix(onboarding): restore chat bubble styling
2025-12-20 21:47:43 +00:00
Peter Steinberger
9ccf80848d
style(onboarding): reduce window height
2025-12-20 21:33:56 +00:00
Peter Steinberger
78cb565dc2
docs: align canvas host port guidance
2025-12-20 22:28:35 +01:00
Peter Steinberger
6a30452b4a
fix: use bridge canvas host for nodes
2025-12-20 22:28:35 +01:00
Peter Steinberger
e53442d983
style(voicewake): widen label and clarify language
2025-12-20 21:14:46 +00:00
Peter Steinberger
bc079b29c3
fix(macos): fix skill install target access
2025-12-20 22:01:11 +01:00
Peter Steinberger
cd6addd742
chore(ci): swiftformat macos settings
2025-12-20 21:52:47 +01:00
Peter Steinberger
12d6e1cddd
feat(macos): choose skill install target
2025-12-20 21:52:42 +01:00
Peter Steinberger
28e5ebd72b
feat(macos): support gateway bind config
2025-12-20 21:52:19 +01:00
Peter Steinberger
e8106109e3
Merge remote-tracking branch 'origin/main'
2025-12-20 21:43:30 +01:00
Peter Steinberger
c71d5a8a77
docs: expand sag pronunciation rules
2025-12-20 21:43:03 +01:00
Peter Steinberger
d1d27a0bd6
style(onboarding): refine icon and bottom bar spacing
2025-12-20 20:24:18 +00:00
Peter Steinberger
ebb7428479
style(onboarding): nudge icon up
2025-12-20 20:19:18 +00:00
Peter Steinberger
3163a42f36
chore(skills): fix eightctl homepage
2025-12-20 21:18:40 +01:00
Peter Steinberger
35a25c3dc2
refactor(macos): collapse control channel status
2025-12-20 21:17:32 +01:00
Peter Steinberger
f34f374179
chore(macos): widen settings window
2025-12-20 21:17:29 +01:00
Peter Steinberger
aa330350fc
refactor(macos): simplify sessions header
2025-12-20 21:17:24 +01:00
Peter Steinberger
a2cf1f98d9
refactor(macos): move skills filter into header
2025-12-20 21:17:20 +01:00
Peter Steinberger
f84def1b60
chore(skills): add homepage metadata
2025-12-20 21:12:57 +01:00
Peter Steinberger
91d4c24078
refactor(macos): simplify skills list rows
2025-12-20 21:12:57 +01:00
Peter Steinberger
8fe0b72a04
fix: accept new ssh host keys
2025-12-20 21:06:39 +01:00
Peter Steinberger
2bcdf741f9
feat(cron): require job name
2025-12-20 19:56:49 +00:00
Peter Steinberger
9ae73e87eb
fix(onboarding): restore bottom bar padding
2025-12-20 19:50:30 +00:00
Peter Steinberger
77582ff5d4
refactor(macos): refresh skills settings layout
2025-12-20 20:49:32 +01:00
Peter Steinberger
52a2dfe08b
feat(onboarding): hide kickoff bubble and tweak typing
2025-12-20 19:46:06 +00:00
Peter Steinberger
09d2165d36
style(onboarding): lower welcome icon
2025-12-20 19:44:35 +00:00
Peter Steinberger
fb9c1f7e65
perf(dmg): shrink rw image before lzma convert
2025-12-20 19:44:26 +00:00
Peter Steinberger
abf05af474
chore(ci): format macos relay
2025-12-20 20:41:21 +01:00
Peter Steinberger
714ba2a58d
docs(macos): update bundled bun notes
2025-12-20 19:35:33 +00:00
Peter Steinberger
405ff0377a
refactor(macos): bundle single relay binary
2025-12-20 19:35:30 +00:00
Peter Steinberger
8421ef7b4a
feat(gateway): add gateway-daemon command
2025-12-20 19:35:30 +00:00
Peter Steinberger
fd151c4fc6
chore(ci): fix biome formatting
2025-12-20 20:33:27 +01:00
Peter Steinberger
b36b20d246
feat(voicewake): add computer wake word
2025-12-20 20:33:03 +01:00
Peter Steinberger
44ffe41775
fix(macos): allow identity refresh off main actor
2025-12-20 20:32:04 +01:00
Peter Steinberger
2ca7c2629c
chore(ci): fix swiftformat lint
2025-12-20 20:32:04 +01:00
Josh Palmer
483c0e4cea
chore(ci): fix biome + swiftformat lint
2025-12-20 20:32:04 +01:00
Peter Steinberger
7d51bf0eb0
fix(macos): allow identity refresh off MainActor
2025-12-20 19:19:57 +00:00
Peter Steinberger
ab4457e2a3
fix(browser): allow control server without playwright
2025-12-20 19:16:56 +00:00
Peter Steinberger
1eb6d617f5
build(macos): bundle playwright in embedded gateway
2025-12-20 19:16:52 +00:00
Peter Steinberger
21ac34bc6a
fix(gateway): start browser control server
2025-12-20 19:16:49 +00:00
Peter Steinberger
c050a82c3a
fix(macos): patch bun Long for protobuf
2025-12-20 19:16:44 +00:00
Peter Steinberger
750408d0a2
chore(deps): add chromium-bidi and long
2025-12-20 19:16:41 +00:00
Peter Steinberger
a44a313f77
test: cover ssh autofill helpers
2025-12-20 19:53:15 +01:00
Peter Steinberger
d159602928
refactor: centralize gateway parsing
2025-12-20 19:53:08 +01:00
Peter Steinberger
50e817f193
fix: use local timestamps in agent envelope
2025-12-20 19:40:48 +01:00
Peter Steinberger
929a10e33d
fix(web): handle self-chat mode
2025-12-20 19:32:06 +01:00
Peter Steinberger
c38aeb1081
fix: resolve bonjour txt for ssh autofill
2025-12-20 19:28:40 +01:00
Peter Steinberger
35e0894655
fix: merge bonjour txt records for ssh autofill
2025-12-20 19:27:36 +01:00
Peter Steinberger
943f0d475f
fix: move host lookup off main thread
2025-12-20 19:26:04 +01:00
Peter Steinberger
96cbab2b22
test: expand mime detection coverage
2025-12-20 19:16:53 +01:00
Peter Steinberger
36c85a617a
fix: use file-type for mime sniffing
2025-12-20 19:13:50 +01:00
Peter Steinberger
1356498ee1
docs: add ordercli skill
2025-12-20 18:50:51 +01:00
Peter Steinberger
49ec53f4ae
fix: detect main module under PM2
2025-12-20 18:39:17 +01:00
Peter Steinberger
5687a03f0b
chore: biome format
2025-12-20 18:39:17 +01:00
Peter Steinberger
cdb2a0736a
docs(onboarding): add soul creation step
2025-12-20 17:38:54 +00:00
Peter Steinberger
cfd3efb6e7
docs(templates): update workspace template guidance
2025-12-20 17:35:52 +00:00
Peter Steinberger
8ec0d813c0
test: stabilize gateway sigterm startup
2025-12-20 18:29:46 +01:00
Peter Steinberger
ea5333e5f7
fix: make web inbox non-blocking
2025-12-20 18:24:05 +01:00
Peter Steinberger
b13723d3d7
style: satisfy swiftformat in chat composer
2025-12-20 18:18:30 +01:00
Peter Steinberger
03a4e0c837
docs: update summarize installer spec
2025-12-20 18:01:09 +01:00
Peter Steinberger
f49c20c508
fix: accept duplex upgrade sockets
2025-12-20 18:01:09 +01:00
Peter Steinberger
d3821123ee
test: include token for canvas host hello
2025-12-20 18:01:09 +01:00
Peter Steinberger
759ab8acbc
test: mock embedded queue in auto-reply tests
2025-12-20 18:01:09 +01:00
Peter Steinberger
7a88071a16
style: format skill installer logic
2025-12-20 18:01:09 +01:00
Peter Steinberger
f3c4d1a181
docs(onboarding): document chat kickoff
2025-12-20 16:52:11 +00:00
Peter Steinberger
4e491757ef
feat(web): add whatsapp QR login tool
2025-12-20 16:52:11 +00:00
Peter Steinberger
5936ed7941
feat(chat): restyle onboarding chat UI
2025-12-20 16:52:11 +00:00
Peter Steinberger
6b56f7d643
feat(mac): add onboarding chat kickoff
2025-12-20 16:52:11 +00:00
Peter Steinberger
e618a21f4e
style: biome formatting
2025-12-20 17:50:45 +01:00
Peter Steinberger
0f271ab535
refactor: tighten steerable agent loop typing
2025-12-20 17:50:35 +01:00
Peter Steinberger
4c054917ef
feat: add uv skill installers
2025-12-20 17:50:29 +01:00
Peter Steinberger
b9eabe532e
docs: update mac skills install types
2025-12-20 17:40:09 +01:00
Peter Steinberger
4ee292a952
refactor: drop pnpm skill installer
2025-12-20 17:39:54 +01:00
Peter Steinberger
adc2900aff
refactor: trim skill install spec
2025-12-20 17:39:14 +01:00
Peter Steinberger
9c801e9c08
Merge remote-tracking branch 'origin/main'
2025-12-20 17:33:00 +01:00
Peter Steinberger
ba0791b896
feat: add skills search and website
2025-12-20 17:32:40 +01:00
Peter Steinberger
c4a67b7d02
feat: refresh skills metadata and toggles
2025-12-20 17:32:05 +01:00
Peter Steinberger
bd572c775d
refactor: remove canvasHost port config
2025-12-20 17:15:43 +01:00
Peter Steinberger
65329496a7
refactor: serve canvas host on gateway port
2025-12-20 17:13:36 +01:00
Peter Steinberger
2288ec7384
fix(mac): align cli button height
2025-12-20 16:02:05 +00:00
Peter Steinberger
80b3b9e00c
docs(onboarding): refine bootstrap convo
2025-12-20 15:54:40 +00:00
Peter Steinberger
3876c1679a
feat(workspace): add bootstrap ritual
2025-12-20 15:48:57 +00:00
Peter Steinberger
ba85f4a62a
test: cover tailnet hello canvas host
2025-12-20 16:45:26 +01:00
Peter Steinberger
a1b34ef0ef
refactor: extract canvas a2ui handler
2025-12-20 16:45:26 +01:00
Peter Steinberger
f03d2d1b33
feat: advertise cli path for remote ssh
2025-12-20 16:45:26 +01:00
Peter Steinberger
c7048973bb
chore(agent): track upstream steerable loop
2025-12-20 16:45:26 +01:00
Peter Steinberger
e800e84a77
fix(macos): streamline onboarding ui
2025-12-20 15:20:31 +00:00
Peter Steinberger
d306fcb8a2
fix(macos): validate embedded CLI helper
2025-12-20 15:12:57 +00:00
Peter Steinberger
44339a6447
feat(agent): queue steering messages
2025-12-20 16:10:53 +01:00
Peter Steinberger
675aadc6a9
docs: document steering while streaming
2025-12-20 16:10:53 +01:00
Peter Steinberger
d95c09d94a
feat(gateway): enrich agent WS logs
2025-12-20 14:54:38 +00:00
Peter Steinberger
f508fd3fa2
feat(macos): auto-enable local gateway
2025-12-20 14:47:37 +00:00
Peter Steinberger
cf96ad8ef9
fix: route voice wake to main
2025-12-20 15:33:28 +01:00
Peter Steinberger
066a2828c4
fix(macos): clarify bridge discovery labels
2025-12-20 14:27:27 +00:00
Peter Steinberger
b6c11154ae
Merge branch 'main' of https://github.com/steipete/clawdis
2025-12-20 14:22:08 +00:00
Peter Steinberger
6ca897e055
fix(telegram): normalize chat ids and improve errors
2025-12-20 14:21:49 +00:00
Peter Steinberger
23ffa1905a
style: soften hover hud status dot
2025-12-20 15:20:58 +01:00
Peter Steinberger
a88e5968ae
fix(macos): hide local bridge discovery
2025-12-20 14:19:22 +00:00
Peter Steinberger
4abaf62783
feat(macos): clarify local gateway choice
2025-12-20 14:11:57 +00:00
Peter Steinberger
9bf5b92d8f
fix: clarify remote gateway error
2025-12-20 15:05:57 +01:00
Peter Steinberger
044f525eb8
fix: include tailnetDns in wide-area beacons
2025-12-20 15:02:23 +01:00
Peter Steinberger
554d9bc6ce
fix: stabilize a2ui bundle output
2025-12-20 14:54:37 +01:00
Peter Steinberger
49654803aa
style: fix lint formatting
2025-12-20 14:54:37 +01:00
Peter Steinberger
44c951e432
test(web): cover tool summary streaming
2025-12-20 13:53:56 +00:00
Peter Steinberger
e1b8c30163
feat(web): toggle tool summaries mid-run
2025-12-20 13:52:04 +00:00
Peter Steinberger
70faa4ff36
feat(web): stream tool summaries
2025-12-20 13:47:07 +00:00
Peter Steinberger
63b63cd66d
style(auto-reply): format bare /new
2025-12-20 13:31:46 +00:00
Peter Steinberger
137980b46e
fix(agents): support loadSkillsFromDir result
2025-12-20 13:31:46 +00:00
Peter Steinberger
055d839fc3
feat(runtime): bootstrap PATH for clawdis
2025-12-20 13:31:46 +00:00
Peter Steinberger
3e39dd49aa
fix: auto-detect tailnet DNS hint
2025-12-20 14:23:53 +01:00
Peter Steinberger
082b4fb193
docs: note imsg chats json
2025-12-20 14:17:34 +01:00
Peter Steinberger
de1f119a7d
fix: add ClawdisIPC import
2025-12-20 14:07:07 +01:00
Peter Steinberger
7ce12863b8
fix: clarify SSH test failure
2025-12-20 14:07:07 +01:00
Peter Steinberger
1ab69948a5
chore(canvas): refresh a2ui bundle
2025-12-20 13:06:34 +00:00
Peter Steinberger
13298d84ea
test(agents): cover empty managed skills dir
2025-12-20 13:04:59 +00:00
Peter Steinberger
c2c5b28c70
feat(auto-reply): greet on bare /new
2025-12-20 13:04:55 +00:00
Peter Steinberger
6e200ed1c0
fix(agents): handle managed skills list
2025-12-20 12:59:57 +00:00
Peter Steinberger
3fadbb29a1
docs: refresh peekaboo skill details
2025-12-20 13:56:42 +01:00
Peter Steinberger
6e4eef4a49
docs(skill): add clawdis nodes
2025-12-20 12:56:06 +00:00
Peter Steinberger
8feb09aa89
fix(skills): ship runnable brave/openai scripts
2025-12-20 12:54:18 +00:00
Peter Steinberger
e1a3bab7e5
feat(skills): add media/transcription helpers
2025-12-20 12:53:09 +00:00
Peter Steinberger
e0cd5650c5
style: biome formatting
2025-12-20 12:52:14 +00:00
Peter Steinberger
80c09f0845
docs(skill): add clawdis notify
2025-12-20 12:51:20 +00:00
Peter Steinberger
1f831c6037
docs(skill): update canvas A2UI guidance
2025-12-20 12:48:08 +00:00
Peter Steinberger
cc0075e988
feat: add skills settings and gateway skills management
2025-12-20 13:33:42 +01:00
Peter Steinberger
4b44a75bc1
docs: add summarize skill
2025-12-20 13:33:16 +01:00
Peter Steinberger
f46beec20d
docs: add clawdis cron skill
2025-12-20 13:33:16 +01:00
Peter Steinberger
973bf67683
feat(skills): add extraDirs load paths
2025-12-20 12:26:58 +00:00
Peter Steinberger
ff6a918e7e
feat(skills): load bundled skills
2025-12-20 12:23:53 +00:00
Peter Steinberger
5ef2666127
docs(canvas): update A2UI hosting
2025-12-20 12:17:39 +00:00
Peter Steinberger
ed001a5f55
refactor(canvas): host A2UI via gateway
2025-12-20 12:17:27 +00:00
Peter Steinberger
13ebbd1a2b
feat: parse skill install metadata
2025-12-20 13:00:57 +01:00
Peter Steinberger
ca8e556619
docs: align brave-search skill
2025-12-20 13:00:03 +01:00
Peter Steinberger
8900c84155
docs: finalize skill install hints
2025-12-20 13:00:03 +01:00
Peter Steinberger
002d927874
docs: expand skill install hints
2025-12-20 13:00:03 +01:00
Peter Steinberger
cef5bf2768
docs: add skill install hints
2025-12-20 13:00:03 +01:00
Peter Steinberger
529543b36d
build: refresh a2ui bundle
2025-12-20 13:00:03 +01:00
Peter Steinberger
636e4d38d5
style: tidy macos swift formatting
2025-12-20 13:00:03 +01:00
Peter Steinberger
2d8e11b78b
docs: refine skills
2025-12-20 13:00:03 +01:00
Peter Steinberger
0e2993a6c8
fix(skills): prevent skills loading crash
2025-12-20 11:49:24 +00:00
Peter Steinberger
f0ebad3f21
fix: address skills lint
2025-12-20 12:29:45 +01:00
Peter Steinberger
a02adcc2ef
docs: link docs section
2025-12-20 12:27:25 +01:00
Peter Steinberger
d1850aaada
feat: add managed skills gating
2025-12-20 12:22:38 +01:00
Peter Steinberger
cf21a15e06
chore: remove dist from repo
2025-12-20 12:22:38 +01:00
Peter Steinberger
13124542cf
fix(a2ui): improve modal styling
2025-12-20 11:12:11 +00:00
Peter Steinberger
cd5809d11f
fix(a2ui): stabilize canvas host
2025-12-20 10:58:13 +00:00
Peter Steinberger
28938ddb32
chore: update a2ui bundle
2025-12-20 11:32:20 +01:00
Peter Steinberger
3c551fd36f
docs(browser): update hook timeouts
2025-12-20 09:47:21 +00:00
Peter Steinberger
94c495c8ed
fix(browser): default hook timeout 2m
2025-12-20 09:45:04 +00:00
Peter Steinberger
f54c801bd2
fix(browser): extend hook arm timeouts
2025-12-20 09:43:58 +00:00
Peter Steinberger
429972b5c5
test(browser): cover agent contract
2025-12-20 09:34:22 +00:00
Peter Steinberger
9b8a4d0c76
docs(browser): simplify control contract
2025-12-20 03:27:17 +00:00
Peter Steinberger
235f3ce0ba
refactor(browser): simplify control API
2025-12-20 03:27:12 +00:00
Peter Steinberger
06806a1ea1
fix(mac): probe loopback bridge
2025-12-20 03:05:06 +00:00
Peter Steinberger
b1a85d89d2
docs(browser): update browser tool surface
2025-12-20 02:53:26 +00:00
Peter Steinberger
6fc30962d6
refactor(browser): prune browser automation surface
2025-12-20 02:53:22 +00:00
Peter Steinberger
849446ae17
refactor(cli): unify on clawdis CLI + node permissions
2025-12-20 02:08:04 +00:00
Peter Steinberger
479720c169
refactor(browser): trim observe endpoints
2025-12-20 02:07:27 +00:00
Peter Steinberger
0e94c6b025
fix(browser): restore tsc types
2025-12-20 01:27:51 +00:00
Peter Steinberger
1a51257b71
fix(mac): use gateway main session for WebChat
2025-12-20 01:27:51 +00:00
Peter Steinberger
4e74ba996d
feat(macos): add unconfigured gateway mode
2025-12-20 02:21:10 +01:00
Peter Steinberger
80a87e5f9e
refactor(mac): remove clawdis-mac browser cli
2025-12-20 01:06:27 +00:00
Peter Steinberger
a526d3c1f2
feat(browser): add native action commands
2025-12-20 00:53:56 +00:00
Peter Steinberger
d67bec0740
style: polish logging and lint hints
2025-12-20 01:48:29 +01:00
Peter Steinberger
b2e11c504b
fix: tighten iOS main-actor handling
2025-12-20 01:48:29 +01:00
Peter Steinberger
1b38ee8b46
fix: harden device model decoding
2025-12-20 01:48:29 +01:00
Peter Steinberger
afa4a234f9
fix: remove WhatsApp batching delay
2025-12-20 01:48:29 +01:00
Peter Steinberger
46b9006de2
docs(browser): add MCP tool spec
2025-12-19 23:57:35 +00:00
Peter Steinberger
d54ecc3961
test(browser): cover MCP tool routes
2025-12-19 23:57:32 +00:00
Peter Steinberger
fa54950d2e
feat(browser): add MCP tool dispatch
2025-12-19 23:57:26 +00:00
Peter Steinberger
0ac7a93c28
fix: decode bonjour escaped utf8
2025-12-19 23:21:07 +01:00
Peter Steinberger
bc2a66da32
refactor: unify gateway discovery on bridge
2025-12-19 23:12:52 +01:00
Peter Steinberger
bcced90f11
style: lighten DMG background for label contrast
2025-12-19 22:51:54 +01:00
Peter Steinberger
eb076165d2
style: refine DMG arrow
2025-12-19 22:44:56 +01:00
Peter Steinberger
9248919b05
docs: note DMG background sizing
2025-12-19 22:39:30 +01:00
Peter Steinberger
5472589ddd
fix: align DMG background and icon layout
2025-12-19 22:38:36 +01:00
Peter Steinberger
19f5183176
docs(mac): document dmg packaging
2025-12-19 22:22:14 +01:00
Peter Steinberger
beb6e25ef0
build(macos): add dmg+zip packaging
2025-12-19 22:22:09 +01:00
Peter Steinberger
0ad49c25aa
style(macos): add dmg background
2025-12-19 22:22:03 +01:00
Peter Steinberger
d46823333d
docs(mac): add bun gateway packaging notes
2025-12-19 22:13:13 +01:00
Peter Steinberger
836f645621
perf(macos): compile embedded gateway with bytecode
2025-12-19 22:11:41 +01:00
Peter Steinberger
96be450cbb
fix: handle screen record microphone output
2025-12-19 22:09:38 +01:00
Peter Steinberger
56cb415509
fix: restore mac app build
2025-12-19 22:08:17 +01:00
Peter Steinberger
2ef2136c2c
fix(macos): sign bun gateway with jit entitlements
2025-12-19 19:24:49 +01:00
Peter Steinberger
0b16b4481a
chore: ignore bun build artifacts
2025-12-19 19:21:27 +01:00
Peter Steinberger
0b18f1b948
docs: update bundled gateway flow
2025-12-19 19:21:27 +01:00
Peter Steinberger
a4d4a30a6b
feat(macos): run bundled gateway via launchd
2025-12-19 19:21:27 +01:00
Peter Steinberger
98bbc73925
build(macos): bundle bun gateway
2025-12-19 19:21:26 +01:00
Peter Steinberger
bb7f4abd4b
feat(gateway): support bun-compiled embedded gateway
2025-12-19 19:21:26 +01:00
Peter Steinberger
bd63b5a231
fix: show Dock icon during onboarding
2025-12-19 19:21:26 +01:00
Peter Steinberger
590f3d0e8f
feat(templates): centralize workspace templates
2025-12-19 18:18:15 +00:00
Peter Steinberger
6cbfa01176
docs: document WhatsApp and Telegram config
2025-12-19 19:03:17 +01:00
Peter Steinberger
f929e1b105
fix: surface gateway failure details
2025-12-19 18:48:30 +01:00
Peter Steinberger
77104395ce
docs: overhaul README architecture
2025-12-19 18:41:17 +01:00
Peter Steinberger
c0d5853c63
fix(deps): include playwright-core in dependencies
2025-12-19 18:38:37 +01:00
Peter Steinberger
5bbf5105f1
chore: update appcast for 2.0.0-beta1
2025-12-19 18:24:36 +01:00
Peter Steinberger
5b193d014e
ci: lower iOS coverage gate
2025-12-19 18:23:03 +01:00
Peter Steinberger
fc7a63a4de
perf: throttle gateway environment checks
2025-12-19 18:21:55 +01:00
Peter Steinberger
aec1869d32
fix(ios): make parseA2UIActionBody nonisolated
2025-12-19 18:10:10 +01:00
Peter Steinberger
377169959d
chore: prep 2.0.0-beta1 release
2025-12-19 18:02:30 +01:00
Peter Steinberger
ba497ce57d
chore: log gateway env timings
2025-12-19 17:54:23 +01:00
Peter Steinberger
5e7d12fefa
perf: move gateway env checks off main
2025-12-19 17:54:18 +01:00
Peter Steinberger
a019d3cd83
chore(protocol): regenerate schema
2025-12-19 17:52:50 +01:00
Peter Steinberger
8c6a592523
style(macos): swiftformat sources
2025-12-19 17:52:26 +01:00
Peter Steinberger
47a1774dc0
Mac: add summarize tool
2025-12-19 17:47:04 +01:00
Peter Steinberger
2bc0c57f18
build(canvas): refresh a2ui bundle
2025-12-19 17:47:04 +01:00
Peter Steinberger
f0705a928a
fix(macos): allow fractional timeout
2025-12-19 17:47:04 +01:00
Peter Steinberger
22f9322905
fix(ios): refine canvas and screen handling
2025-12-19 17:47:04 +01:00
Peter Steinberger
6795e78edf
fix(macos): reduce node pairing polling
2025-12-19 13:58:33 +00:00
Peter Steinberger
31620fea3a
fix(control-ui): wrap long message lines
2025-12-19 09:54:43 +00:00
Peter Steinberger
6b6f2b5414
fix(control-ui): drop /ui alias
2025-12-19 05:13:07 +00:00
Peter Steinberger
c498348a34
fix(control-ui): serve dashboard at root
2025-12-19 05:11:08 +00:00
Peter Steinberger
00fc731d64
feat(macos): add menu link to dashboard
2025-12-19 04:28:32 +00:00
Peter Steinberger
d80d112e09
fix(onboarding): default identity to Clawd
2025-12-19 03:12:10 +00:00
Peter Steinberger
65d723d53c
test: add canvas.present IPC coverage
2025-12-19 03:53:55 +01:00
Peter Steinberger
fb3fae43c0
feat(agent): load workspace skills
2025-12-19 03:53:55 +01:00
Peter Steinberger
41108f497b
fix(onboarding): load saved identity defaults
2025-12-19 02:40:11 +00:00
Peter Steinberger
beefda7f60
refactor: replace canvas.show with canvas.present
2025-12-19 03:35:33 +01:00
Peter Steinberger
74cdc1cf3e
feat: route mac control via nodes
2025-12-19 03:16:25 +01:00
Peter Steinberger
7f3be083c1
feat: add node screen recording across apps
2025-12-19 02:57:00 +01:00
Peter Steinberger
b8012a2281
fix(canvas): load A2UI resources across platforms
2025-12-19 01:53:55 +00:00
Peter Steinberger
95ea67de28
feat: add mac node screen recording and ssh tunnel
2025-12-19 02:33:43 +01:00
Peter Steinberger
1fbd84da39
feat(nodes): add mac node mode + permission UX
2025-12-19 01:48:19 +01:00
Peter Steinberger
beb5b1ad58
docs(agents): require consent for worktrees
2025-12-19 01:18:32 +01:00
Peter Steinberger
77a67484ea
feat(pairing): add silent SSH auto-approve
2025-12-19 01:04:47 +01:00
Peter Steinberger
0b4e70e38b
CLI: retry --force until gateway port is free
2025-12-18 23:56:08 +00:00
Peter Steinberger
8f0b5d2d97
iOS: fix camera clip clamp regression test
2025-12-19 00:53:06 +01:00
Peter Steinberger
0e3e4f269d
iOS: allow Tailnet/MagicDNS canvas actions
2025-12-19 00:52:52 +01:00
Peter Steinberger
d6c5ee86c5
Docs: add nodes overview
2025-12-19 00:29:42 +01:00
Peter Steinberger
3772a29557
macOS: add screen record + safer camera defaults
2025-12-19 00:29:38 +01:00
Peter Steinberger
7831e0040e
feat(macos): delay hover HUD
2025-12-19 00:25:46 +01:00
Peter Steinberger
3780f3152c
macOS: auto-fill Anthropic OAuth from clipboard
2025-12-18 23:15:08 +00:00
Peter Steinberger
3146f8bdbc
CanvasA2UI: refresh bundled renderer
2025-12-18 23:08:07 +00:00
Peter Steinberger
256080e2a2
Canvas host: fix action bridge invocation
2025-12-19 00:04:45 +01:00
Peter Steinberger
47510e2912
feat(macos): hover HUD for activity
2025-12-19 00:04:45 +01:00
Peter Steinberger
0c06276b48
Agent: document 2000px image downscale
2025-12-18 23:02:33 +00:00
Peter Steinberger
d66d5cc17e
Agent: avoid silent failures on oversized images
2025-12-18 22:58:31 +00:00
Peter Steinberger
df0c51a63b
Gateway: add browser control UI
2025-12-18 22:41:06 +00:00
Peter Steinberger
c34da133f6
CLI: fix nodes canvas snapshot option typing
2025-12-18 23:40:42 +01:00
Peter Steinberger
f237222bc9
Docs: update canvas host defaults and snapshot formats
2025-12-18 23:32:48 +01:00
Peter Steinberger
2a4ccaf993
CLI: add nodes canvas snapshot + duration parsing
2025-12-18 23:32:36 +01:00
Peter Steinberger
ac50a14b6a
Gateway: enable canvas host + inject action bridge
2025-12-18 23:32:22 +01:00
Peter Steinberger
06f71d883c
Android: JPEG canvas snapshots + camera permission prompts
2025-12-18 23:32:07 +01:00
Peter Steinberger
9ace6af3df
iOS: allow A2UI actions from local canvas host
2025-12-18 23:31:49 +01:00
Peter Steinberger
9062f60e3d
ClawdisKit: accept jpg for canvas.snapshot
2025-12-18 23:31:34 +01:00
Peter Steinberger
2307756892
iOS: allow HTTP loads in WKWebView
2025-12-18 19:59:43 +01:00
Peter Steinberger
7008493f03
Gateway: raise client maxPayload
2025-12-18 19:48:29 +01:00
Peter Steinberger
b5a89e8907
iOS: support jpeg canvas snapshots
2025-12-18 19:48:29 +01:00
Peter Steinberger
ae58838cc5
Web: fix lint/format for error formatter
2025-12-18 18:22:32 +00:00
Peter Steinberger
9a4fc3e086
Web: improve WhatsApp error formatting
2025-12-18 18:03:25 +00:00
Peter Steinberger
0241f1a29c
Web: harden WhatsApp creds handling
2025-12-18 17:19:53 +00:00
Peter Steinberger
801e44f4eb
feat(node): show camera capture HUD
2025-12-18 14:49:07 +01:00
Peter Steinberger
856ce06fda
style: biome format ws logging
2025-12-18 14:31:10 +01:00
Peter Steinberger
d406d3a058
Gateway: optimize ws logs in normal mode
2025-12-18 13:27:52 +00:00
Peter Steinberger
0b8e8144af
ci: relax iOS coverage gate
2025-12-18 14:26:13 +01:00
Peter Steinberger
ad26026802
Gateway: add compact ws verbose logs
2025-12-18 13:07:42 +00:00
Peter Steinberger
c2b8f9a7c3
style: biome format gateway server
2025-12-18 14:00:46 +01:00
Peter Steinberger
ba79977f07
Gateway: shorten ws log tag
2025-12-18 12:58:47 +00:00
Peter Steinberger
16e2193911
fix(ios): restore ScreenController.mode
2025-12-18 13:56:40 +01:00
Peter Steinberger
bb5d26ba9e
Gateway: improve verbose ws logs
2025-12-18 12:47:41 +00:00
Peter Steinberger
59f9073e21
ci: retry swiftpm build/test
2025-12-18 13:37:58 +01:00
Peter Steinberger
982f85bf90
chore(naming): remove remaining iris references
2025-12-18 13:30:22 +01:00
Peter Steinberger
acdf70e928
ci: retry submodule checkout
2025-12-18 13:26:09 +01:00
Peter Steinberger
d182f7e4b2
chore(naming): remove Iris codename
2025-12-18 13:18:33 +01:00
Peter Steinberger
790079c3b6
feat(canvas): remove setMode; host A2UI in scaffold
2025-12-18 13:18:24 +01:00
Peter Steinberger
dda6d7f9e1
ci: fix swiftformat
2025-12-18 12:50:59 +01:00
Peter Steinberger
256f0fc765
Docs: add canvas host usage
2025-12-18 11:39:30 +01:00
Peter Steinberger
e1f320276e
Android: hide Disconnect without remote
2025-12-18 11:39:23 +01:00
Peter Steinberger
c61bd6c84d
A2UI: share web UI and action bridge
2025-12-18 11:38:32 +01:00
Peter Steinberger
8a343aedf2
Docs: document canvasHost
2025-12-18 11:36:46 +01:00
Peter Steinberger
cd729e83b6
Gateway: optional canvas host
2025-12-18 11:35:21 +01:00
Peter Steinberger
cfb36525ab
Android: add canvas.a2ui push/reset
2025-12-18 10:44:50 +01:00
Peter Steinberger
6f58a9d643
iOS: support canvas.a2ui push/reset
2025-12-18 10:44:32 +01:00
Peter Steinberger
0913329b03
A2UI: share bundle via ClawdisKit
2025-12-18 10:44:06 +01:00
Peter Steinberger
402b04a68c
ci: raise iOS coverage
2025-12-18 10:34:09 +01:00
Peter Steinberger
4a68b4add4
fix(android): show backdrop behind WebView
2025-12-18 09:46:32 +01:00
Peter Steinberger
a74c4db948
Tests: show unpaired nodes in nodes status
2025-12-18 08:38:33 +00:00
Peter Steinberger
0fc5ccb76c
Tests: cover node.describe for connected unpaired nodes
2025-12-18 08:38:33 +00:00
Peter Steinberger
98a745b3df
macOS: hide node pairing alert host window
2025-12-18 09:37:17 +01:00
Peter Steinberger
24009ed00f
macOS: move instance update info to third row
2025-12-18 09:36:07 +01:00
Peter Steinberger
fceab511b3
Android: run canvas WebView loads on main
2025-12-18 08:31:56 +00:00
Peter Steinberger
c6421136f9
Docs: use canvas.* invoke namespace
2025-12-18 08:20:40 +00:00
Peter Steinberger
2f8b75d86e
macOS: add leading device icons in Instances
2025-12-18 09:15:50 +01:00
Peter Steinberger
97ec5d52c3
fix(android): allow cleartext for tailnet web
2025-12-18 09:12:06 +01:00
Peter Steinberger
89fcb40557
submodules: bump Peekaboo
2025-12-18 09:06:39 +01:00
Peter Steinberger
5c705ab675
ci: fix swiftformat and bun CI
2025-12-18 08:55:47 +01:00
Peter Steinberger
2f21b94a76
iOS: fix BridgeClient SwiftFormat indent
2025-12-18 08:40:59 +01:00
Peter Steinberger
6f1ae147da
ui: improve idle background blend mode fallback
2025-12-18 08:32:06 +01:00
Peter Steinberger
f2d503ad04
Android: drop screen.* invoke aliases
2025-12-18 02:17:35 +00:00
Peter Steinberger
57ee34839d
CLI/docs: expose node metadata and commands
2025-12-18 02:06:36 +00:00
Peter Steinberger
82d8526732
macOS: add clawdis-mac node describe and verbose list
2025-12-18 02:06:36 +00:00
Peter Steinberger
742027a447
Gateway: list/describe node capabilities and commands
2025-12-18 02:06:35 +00:00
Peter Steinberger
efed2ae30f
Nodes: advertise canvas invoke commands
2025-12-18 02:06:35 +00:00
Peter Steinberger
54830e8401
Bridge: persist advertised invoke commands
2025-12-18 02:05:40 +00:00
Peter Steinberger
ce1a8d70d9
Android: hide connected bridge from discovery list
2025-12-18 02:37:37 +01:00
Peter Steinberger
cd719a8c85
Android: centralize canvas protocol strings
2025-12-18 02:32:34 +01:00
Peter Steinberger
3df53836ca
fix(ui): harden idle background animation
2025-12-18 02:27:11 +01:00
Peter Steinberger
7bb058215d
Tests: loosen chat.abort mismatch timeout
2025-12-18 01:20:20 +00:00
Peter Steinberger
272015c701
Docs: document canvas.* node.invoke commands
2025-12-18 01:20:20 +00:00
Peter Steinberger
21a27e3b65
Nodes: handle canvas.* commands on iOS/Android
2025-12-18 01:20:20 +00:00
Peter Steinberger
22516437b7
Protocol: switch node.invoke screen.* to canvas.*
2025-12-18 01:20:20 +00:00
Peter Steinberger
ea53f1bec7
Android: test bridge auto-reconnect
2025-12-18 02:18:19 +01:00
Peter Steinberger
33bf5cf42a
iOS: centralize canvas commands and capabilities
2025-12-18 02:16:31 +01:00
Peter Steinberger
c976799f8c
CLI/docs: mention canvas.* alias
2025-12-18 01:10:40 +00:00
Peter Steinberger
f973b9e0e5
Gateway: alias canvas.* for node.invoke
2025-12-18 01:10:40 +00:00
Peter Steinberger
60321352aa
Android: add Voice Wake (foreground/always)
2025-12-18 02:08:57 +01:00
Peter Steinberger
6d60224c93
fix(android): improve webview compatibility
2025-12-18 02:08:53 +01:00
Peter Steinberger
2b2434d239
fix(android): decode UTF-8 TXT records
2025-12-18 01:58:16 +01:00
Peter Steinberger
f8bea661fc
iOS: alias canvas.* invoke commands
2025-12-18 01:57:31 +01:00
Peter Steinberger
86225d0eb6
fix(android): improve wide-area bridge discovery
2025-12-18 01:40:08 +01:00
Peter Steinberger
3351c972e7
refactor(android): drop legacy theme fallback
2025-12-18 01:39:57 +01:00
Peter Steinberger
460e170f7a
CLI: add nodes status
2025-12-18 00:37:54 +00:00
Peter Steinberger
1a2d39bdf9
Docs: document nodes status
2025-12-18 00:37:54 +00:00
Peter Steinberger
99325040f8
gateway: persist and surface node capabilities
2025-12-18 01:36:38 +01:00
Peter Steinberger
568fcbda54
iOS: allow settings light mode
2025-12-18 01:29:45 +01:00
Peter Steinberger
f4b186a9d3
ui(nodes): unify idle background animation
2025-12-18 01:22:26 +01:00
Peter Steinberger
d862ae17eb
clawdis-mac: fetch node list via gateway
2025-12-18 00:16:36 +00:00
Peter Steinberger
9f73131621
Gateway: include node caps + hardware in node.list
2025-12-18 00:16:36 +00:00
Peter Steinberger
99310a5bbb
style(android): respect system theme and clamp overlays
2025-12-18 01:15:50 +01:00
Peter Steinberger
1673bf2d44
fix(android): use system DNS for wide-area discovery
2025-12-18 01:04:13 +01:00
Peter Steinberger
4c656ea22f
Android: reorder settings sections
2025-12-18 01:00:50 +01:00
Peter Steinberger
7707e3d887
iOS: reorder settings sections
2025-12-18 01:00:36 +01:00
Peter Steinberger
ba204d0330
fix(android): show idle background under WebView
2025-12-18 00:53:31 +01:00
Peter Steinberger
cbb327227a
macOS: unify device + OS chip
2025-12-18 00:43:58 +01:00
Peter Steinberger
14fa2f47f5
style(android): improve idle background
2025-12-18 00:41:21 +01:00
Peter Steinberger
579da8cc9b
style(android): use tonal surfaces for overlays
2025-12-18 00:34:11 +01:00
Peter Steinberger
5693d7d733
macOS: remove Instances row duplication
2025-12-18 00:28:45 +01:00
Peter Steinberger
07c8fdffd1
macOS: compact Instances row
2025-12-18 00:24:10 +01:00
Peter Steinberger
d3f4db649f
style(ios): use Offline bridge status
2025-12-18 00:20:37 +01:00
Peter Steinberger
abbe237cc0
style(android): use Offline bridge status
2025-12-18 00:20:28 +01:00
Peter Steinberger
ac4a65ddfd
refactor(android): unify chat status label
2025-12-18 00:20:19 +01:00
Peter Steinberger
693215723a
Android: enable immersive fullscreen
2025-12-18 00:07:58 +01:00
Peter Steinberger
5f0e474be1
Android: polish settings UI
2025-12-18 00:07:52 +01:00
Peter Steinberger
0e201c4c18
style(android): make chat more Material
2025-12-17 23:57:14 +01:00
Peter Steinberger
d12ca22b19
feat(android): chat parity + wide-area discovery
2025-12-17 23:49:29 +01:00
Peter Steinberger
c7b80c28a1
macOS: remove stale WebChat exclude
2025-12-17 23:31:46 +01:00
Peter Steinberger
5c2288218f
fix(gateway): make chat.abort reliable
2025-12-17 23:28:37 +01:00
Peter Steinberger
0844fa38a8
style(gateway): satisfy biome
2025-12-17 23:27:27 +01:00
Peter Steinberger
3ed33c5856
chore(webchat): remove legacy bundled web assets
2025-12-17 23:27:27 +01:00
Peter Steinberger
b3e466ccb6
nodes: better default display names
2025-12-17 23:15:15 +01:00
Peter Steinberger
875cf9a054
refactor(webchat): SwiftUI-only WebChat UI
...
# Conflicts:
# apps/macos/Package.swift
2025-12-17 23:05:28 +01:00
Peter Steinberger
ca85d217ec
ChatUI: swiftformat fixes
2025-12-17 23:01:31 +01:00
Peter Steinberger
6652b1f4f3
ui(chat): reduce padding
2025-12-17 23:01:31 +01:00
Peter Steinberger
9fe04f5659
ui(chat): align status pill with send
2025-12-17 23:01:31 +01:00
Peter Steinberger
5b9e51bfaa
ui(chat): tighten padding + keep status in composer
2025-12-17 23:01:31 +01:00
Peter Steinberger
cdea744725
ui(chat): move connection pill into composer
2025-12-17 23:01:30 +01:00
Peter Steinberger
44365f2e27
test(chat): harden abort/stream + hide session switching
2025-12-17 23:01:30 +01:00
Peter Steinberger
888dbd7d11
macOS: load device model names from dataset
2025-12-17 22:55:50 +01:00
Peter Steinberger
76ddfc4a9e
fix(android): canvas idle background + tailscale DNS
2025-12-17 22:27:16 +01:00
Peter Steinberger
7950a646c3
macOS: show friendly device names in Instances
2025-12-17 22:23:57 +01:00
Peter Steinberger
09819f8b2e
fix(agents): fix AgentTool schema typing
2025-12-17 22:12:19 +01:00
Peter Steinberger
69daa24869
fix(test): stabilize chat.abort
2025-12-17 22:12:16 +01:00
Peter Steinberger
35214b6dec
test(gateway): stabilize chat abort
2025-12-17 22:04:54 +01:00
Peter Steinberger
fe6bf6966b
style(android): format bridge hello
2025-12-17 22:04:51 +01:00
Peter Steinberger
e0276ed4b4
fix(gateway): harden request handling
2025-12-17 22:04:22 +01:00
Peter Steinberger
fce487669b
feat(android): iOS canvas background
2025-12-17 22:03:11 +01:00
Peter Steinberger
e6ba373d08
feat(android): add status pill overlay
2025-12-17 22:00:12 +01:00
Peter Steinberger
d4b3d504e4
fix(android): dedupe hello fields
2025-12-17 21:53:38 +01:00
Peter Steinberger
2b2376d4c0
style(swift): fix lint
2025-12-17 21:51:36 +01:00
Peter Steinberger
51bdf01e2e
Presence: add device identity fields
2025-12-17 21:51:36 +01:00
Peter Steinberger
9d29fbbf80
Docs/tests: node list hardware fields
2025-12-17 20:11:13 +00:00
Peter Steinberger
a40fc50e5e
clawdis-mac: show hardware model in node list
2025-12-17 20:11:05 +00:00
Peter Steinberger
df4e4534f4
Android: advertise device model to bridge
2025-12-17 20:10:58 +00:00
Peter Steinberger
fca6e466b1
macOS: include node hardware identifiers
2025-12-17 20:10:50 +00:00
Peter Steinberger
0321174519
Tests: cover clawdis-mac node list
2025-12-17 20:03:56 +00:00
Peter Steinberger
c452f8c430
clawdis-mac: enrich node list output
2025-12-17 20:03:56 +00:00
Peter Steinberger
079c1d8786
Bridge: advertise node capabilities
2025-12-17 20:03:56 +00:00
Peter Steinberger
0677567cdd
macOS: fix InstanceInfo device fields
2025-12-17 20:03:56 +00:00
Peter Steinberger
7fe7c30b17
Mobile: prevent sleep setting
2025-12-17 21:01:47 +01:00
Peter Steinberger
cc1d8060c4
fix(android): bonjour discovery parity
2025-12-17 20:57:04 +01:00
Peter Steinberger
428a82e734
feat(chat): Swift chat parity (abort/sessions/stream)
2025-12-17 20:51:27 +01:00
Peter Steinberger
cc235fc312
Docs: require permission to switch branches
2025-12-17 20:43:04 +01:00
Peter Steinberger
249f97d1ed
tools: add blucli
2025-12-17 20:39:34 +01:00
Peter Steinberger
3e9310d6cd
Agents: fix pi-tools typing
2025-12-17 20:38:52 +01:00
Peter Steinberger
9051c5891e
Canvas: click progress + context-rich actions
2025-12-17 20:34:54 +01:00
Peter Steinberger
56d94e6974
Node pairing: avoid blocking main actor
2025-12-17 20:34:53 +01:00
Peter Steinberger
e6a96bea47
fix(macos): improve canvas A2UI forwarding
2025-12-17 20:31:21 +01:00
Peter Steinberger
cf82e37c36
Menu: reopen canvas without reload
2025-12-17 20:31:21 +01:00
Peter Steinberger
4fb3e0500a
Canvas: fix A2UI click actions
2025-12-17 20:31:21 +01:00
Peter Steinberger
9c7d51429e
macOS: auto-start gateway for Canvas actions
2025-12-17 20:31:21 +01:00
Peter Steinberger
c1985443fd
macOS: fix gateway strict-concurrency issues
2025-12-17 20:31:21 +01:00
Peter Steinberger
17a27fd312
macOS: fold agent control into GatewayConnection
2025-12-17 20:31:21 +01:00
Peter Steinberger
557ffdbe35
Discovery: wide-area bridge DNS-SD
...
# Conflicts:
# apps/ios/Sources/Bridge/BridgeDiscoveryModel.swift
# src/cli/dns-cli.ts
2025-12-17 20:31:02 +01:00
Peter Steinberger
e9bfe34850
chore(canvas): rebuild CanvasA2UI bundle
2025-12-17 19:15:19 +00:00
Peter Steinberger
1a4540d386
feat(macos): show Anthropic auth mode + OAuth connect
2025-12-17 19:15:19 +00:00
Peter Steinberger
a0c4b1e061
test(web): avoid ENOTEMPTY cleanup race
2025-12-17 19:15:19 +00:00
Peter Steinberger
e275ba8d2e
chore(a2ui): ignore lit dist build output
2025-12-17 19:15:19 +00:00
Peter Steinberger
db7eeee07b
fix(macos): sync node pairing approvals
2025-12-17 19:15:19 +00:00
Peter Steinberger
84d5f24f5f
chore(pi): add TODO for mime workaround
2025-12-17 19:15:19 +00:00
Peter Steinberger
42948b70e3
fix(pi): harden image read mime
2025-12-17 19:15:19 +00:00
Peter Steinberger
28d3bd03b2
chore(peekaboo): bump submodule
2025-12-17 19:15:19 +00:00
Peter Steinberger
6148f862b9
CLI: bootstrap invalid wide-area DNS zone
2025-12-17 18:02:25 +01:00
Peter Steinberger
0a32610b37
iOS: satisfy SwiftFormat in bridge discovery
2025-12-17 18:01:01 +01:00
Peter Steinberger
514759bde7
CLI: make dns setup create valid zone
2025-12-17 17:25:34 +01:00
Peter Steinberger
2eb27ffb4a
CLI: dns setup supports sudo-owned CoreDNS config
2025-12-17 17:15:51 +01:00
Peter Steinberger
2ce24fdbf8
Nodes: auto-discover clawdis.internal
2025-12-17 17:01:30 +01:00
Peter Steinberger
e9ae10e569
Gateway: wide-area Bonjour via clawdis.internal
2025-12-17 17:01:10 +01:00
Peter Steinberger
a1940418fb
GatewayConnection: validate agent message
2025-12-17 16:09:22 +01:00
Peter Steinberger
6fdc62c008
macOS: fold AgentRPC into GatewayConnection
2025-12-17 16:07:37 +01:00
Peter Steinberger
5e5cb7a292
Canvas: forward A2UI actions
2025-12-17 15:41:04 +01:00
Peter Steinberger
f5ab3e41c5
Android: fix unicast discovery address resolution
2025-12-17 15:32:07 +01:00
Peter Steinberger
036bdde764
Android: add unicast discovery domain + app icon
2025-12-17 15:29:45 +01:00
Peter Steinberger
691bf85d7e
Canvas: shrink close button
2025-12-17 14:52:32 +01:00
Peter Steinberger
4482965d80
Canvas: add vibrancy close pill
2025-12-17 14:50:29 +01:00
Peter Steinberger
fdca8fb592
Canvas: fix A2UI push rendering
2025-12-17 14:36:42 +01:00
Peter Steinberger
c7c32210e6
Docs: secure wide-area Bonjour over Tailscale
2025-12-17 14:27:49 +01:00
Peter Steinberger
316a04f606
iOS: allow unicast DNS-SD discovery domain
2025-12-17 14:14:17 +01:00
Peter Steinberger
c4da2afb22
Build: add wireit
2025-12-17 13:20:36 +01:00
Peter Steinberger
9eaa45a291
Canvas: fix A2UI v0.8 rendering
2025-12-17 13:20:27 +01:00
Peter Steinberger
81a9439eb2
feat(macos): add menu Canvas open/close
2025-12-17 11:53:57 +01:00
Peter Steinberger
be9b550209
chore: bump Peekaboo submodule
2025-12-17 11:37:30 +01:00
Peter Steinberger
6653813cb9
fix(macos): avoid treating '/' as file target
2025-12-17 11:36:51 +01:00
Peter Steinberger
cf1278295d
macOS: update config settings copy
2025-12-17 11:36:21 +01:00
Peter Steinberger
cdb5ddb2da
feat(macos): add Canvas A2UI renderer
2025-12-17 11:35:06 +01:00
Peter Steinberger
1cdebb68a0
docs: document embedded agent runtime
2025-12-17 11:29:12 +01:00
Peter Steinberger
fece42ce0a
feat: embed pi agent runtime
2025-12-17 11:29:04 +01:00
Peter Steinberger
c5867b2876
Canvas: simplify show + report status
2025-12-17 10:37:35 +01:00
Peter Steinberger
43e257e7de
chore: drop agent-scripts AGENTS pointer
2025-12-17 10:08:07 +01:00
Peter Steinberger
9dcdeb15ec
fix(macos): anchor canvas panel to active screen
2025-12-17 09:28:53 +01:00
Peter Steinberger
060a209ecb
fix(system): inject transitions only
2025-12-17 08:31:23 +01:00
Peter Steinberger
e1e3da946f
fix(chat): reduce system spam and cap history
2025-12-16 20:35:03 +01:00
Peter Steinberger
49a9f74753
fix(chat-ui): improve typing dots and composer
2025-12-16 20:13:23 +01:00
Peter Steinberger
74b19843ae
fix(gateway): clamp chat.history to 1000 max
2025-12-16 19:55:17 +01:00
Peter Steinberger
d691e28675
fix(gateway): cap chat.history to 1000 messages
2025-12-16 19:44:49 +01:00
Peter Steinberger
2a5f0d6063
fix(gateway): cap chat.history payload size
2025-12-16 19:34:36 +01:00
Peter Steinberger
66a0813e44
test(macos): guard FileHandle read APIs
2025-12-16 10:41:47 +01:00
Peter Steinberger
64d6d25d65
fix(macos): use safe FileHandle reads
2025-12-16 10:41:47 +01:00
Peter Steinberger
b443c20cef
docs(changelog): note macOS voice audio fix
2025-12-16 09:35:02 +00:00
Tu Nombre Real
5e8c8367f3
fix(macos): lazy-init AVAudioEngine to prevent Bluetooth audio ducking
...
Creating AVAudioEngine at singleton init time causes macOS to switch
Bluetooth headphones from A2DP (high quality) to HFP (headset) profile,
resulting in degraded audio quality even when Voice Wake is disabled.
This change makes audioEngine optional and only creates it when voice
recognition actually starts, preventing the profile switch for users
who don't use Voice Wake.
Fixes #30
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-16 09:35:02 +00:00
Peter Steinberger
2b0f846f1b
chore(auto-reply): satisfy biome
2025-12-16 10:30:57 +01:00
Peter Steinberger
e7713a28ae
fix(auto-reply): parse agent_end and avoid rpc JSON leaks
2025-12-16 10:28:57 +01:00
Peter Steinberger
7948d071e0
ui(macos): remove Claude auth skip button
2025-12-14 19:23:49 +00:00
Peter Steinberger
fb23717102
ui(macos): polish onboarding wording
2025-12-14 19:22:31 +00:00
Peter Steinberger
3d959c46d0
fix(macos): hide skipped onboarding panes
2025-12-14 19:14:05 +00:00
Peter Steinberger
4cdd61eb78
ui(macos): recommend Opus on Claude step
2025-12-14 19:13:55 +00:00
Peter Steinberger
6d08d84011
ui(macos): tweak Claude sign-in copy
2025-12-14 19:12:52 +00:00
Peter Steinberger
f6cafd1a15
fix(macos): clarify OAuth detection
2025-12-14 19:10:48 +00:00
Peter Steinberger
5792887883
docs(macos): critter-first onboarding copy
2025-12-14 06:26:51 +00:00
Peter Steinberger
e82ee731bf
test(ios): bump app coverage
2025-12-14 06:09:28 +00:00
Peter Steinberger
5e09aae4ca
test(ios): cover RootCanvas bridge states
2025-12-14 05:51:48 +00:00
Peter Steinberger
740f7b0fb6
test(ios): exercise ScreenController eval
2025-12-14 05:51:12 +00:00
Peter Steinberger
7510a6f66a
test(ios): cover ScreenController webview setup
2025-12-14 05:42:39 +00:00
Peter Steinberger
1ff7d458a5
fix(android): avoid non-exhaustive sheet switch
2025-12-14 05:42:39 +00:00
Peter Steinberger
c3528fb201
test(web): stabilize group heartbeat test
2025-12-14 05:36:01 +00:00
Peter Steinberger
3f5dff35f8
Merge remote-tracking branch 'origin/main'
2025-12-14 05:32:24 +00:00
Peter Steinberger
08bfe2b263
Merge remote-tracking branch 'origin/main'
2025-12-14 05:31:06 +00:00
Peter Steinberger
42645a7e0a
test(macos): cover control/camera disabled paths
2025-12-14 05:30:39 +00:00
Peter Steinberger
7d4c8ef6b2
fix(camera): harden capture pipeline
2025-12-14 05:30:34 +00:00
Peter Steinberger
a1d7b8db6f
refactor(macos): tidy gateway discovery naming
2025-12-14 05:30:07 +00:00
Peter Steinberger
4a3a4558e2
fix(android): respect insets and enable settings scroll
2025-12-14 05:30:07 +00:00
Peter Steinberger
1b83fc85cd
fix(ios): update observation env in smoke tests
2025-12-14 05:27:19 +00:00
Peter Steinberger
c1a10b6056
chore: gitignore .worktrees
2025-12-14 05:21:21 +00:00
Peter Steinberger
841a9b4c8a
fix(macos): fix oauth base64 helper visibility
2025-12-14 05:19:49 +00:00
Peter Steinberger
f3db02018f
fix(chat-ui): reflect gateway connection
2025-12-14 05:19:01 +00:00
Peter Steinberger
4cbaee59cd
style(ios): swiftformat
2025-12-14 05:17:59 +00:00
Peter Steinberger
0d10aa4098
ui(ios): animate idle background
2025-12-14 05:17:59 +00:00
Peter Steinberger
f3f8aa5397
fix(ios): use Observation environment in settings
2025-12-14 05:17:59 +00:00
Peter Steinberger
4970af6bb9
fix(macos): satisfy swiftformat
2025-12-14 05:16:03 +00:00
Peter Steinberger
a48aebc78c
iOS: Fix canvas touch events and auto-hide status bubble
...
- Disable scroll on WKWebView to allow touch events to reach canvas
- Add WKNavigationDelegate to intercept clawdis:// deep links from canvas
- Wire up onDeepLink callback to handle taps on canvas buttons
- Auto-hide status bubble after 3 seconds
2025-12-14 05:14:26 +00:00
Peter Steinberger
26bbddde8f
style(macos): swiftformat
2025-12-14 05:09:48 +00:00
Peter Steinberger
b48a556de5
refactor(observation): migrate SwiftUI state
2025-12-14 05:06:34 +00:00
Peter Steinberger
aab5c490dc
refactor(chat-ui): compact layout
2025-12-14 05:06:34 +00:00
Peter Steinberger
d54cc49d66
feat(android): sync wake words via gateway
2025-12-14 05:06:27 +00:00
Peter Steinberger
0cef22ef83
feat(ios): sync wake words via gateway
2025-12-14 05:06:27 +00:00
Peter Steinberger
7b2f712e20
feat(macos): sync wake words via gateway
2025-12-14 05:06:27 +00:00
Peter Steinberger
1a92127dfa
feat(voicewake): add gateway-owned wake words sync
2025-12-14 05:06:27 +00:00
Peter Steinberger
26a05292b9
fix(macos): live-check Pi oauth.json
2025-12-14 04:48:03 +00:00
Peter Steinberger
caaa79bb76
style(ios): swiftformat
2025-12-14 04:47:15 +00:00
Peter Steinberger
b80c0d85e0
style(macos): swiftformat
2025-12-14 04:42:04 +00:00
Peter Steinberger
0641281cfe
chore(protocol): sync generated artifacts
2025-12-14 04:42:04 +00:00
Peter Steinberger
f414853d70
fix(config): tolerate session store races
2025-12-14 04:42:04 +00:00
Peter Steinberger
7c677c5057
test: cover identity defaults and pi flags
2025-12-14 04:40:01 +00:00
Peter Steinberger
969c7d1c8e
docs(agents): prefer Observation framework
2025-12-14 04:36:07 +00:00
Peter Steinberger
b202480a66
docs(bonjour): document gateway and iOS discovery logging
2025-12-14 04:36:00 +00:00
Peter Steinberger
9e80764c2b
feat(ios): add discovery debug logs
2025-12-14 04:36:00 +00:00
Peter Steinberger
f5a5320f8f
test(bonjour): cover watchdog and failure modes
2025-12-14 04:36:00 +00:00
Peter Steinberger
7389fc0e25
fix(bonjour): log advertise failures and watchdog
2025-12-14 04:36:00 +00:00
Peter Steinberger
ce915d3438
fix(android): safe area + settings scroll
2025-12-14 04:35:06 +00:00
Peter Steinberger
3ef910d23e
test(macos): boost Clawdis coverage to 40%
2025-12-14 04:31:04 +00:00
Peter Steinberger
845b26a73b
fix(camera): retain capture delegates
2025-12-14 04:31:04 +00:00
Peter Steinberger
e0545e2f94
fix(chat): improve history + polish SwiftUI panel
2025-12-14 04:31:04 +00:00
Peter Steinberger
01341d983c
fix(macos): sane chat window placement
2025-12-14 04:31:04 +00:00
Peter Steinberger
0d68e10dd7
chore(tools): match repo emojis
2025-12-14 04:31:04 +00:00
Peter Steinberger
e6a60c0dc5
chore(tools): add emoji tool names
2025-12-14 04:31:04 +00:00
Peter Steinberger
7dbd5acbb1
fix(webchat): reconnect gateway ws
2025-12-14 04:31:04 +00:00
Peter Steinberger
7a87f3cfb8
fix(macos): suggest critter emojis only
2025-12-14 04:29:07 +00:00
Peter Steinberger
b817225fb8
feat(agent): enforce provider/model and identity defaults
2025-12-14 04:22:38 +00:00
Peter Steinberger
a097c848bb
feat(macos): onboard Claude OAuth + identity
2025-12-14 04:22:38 +00:00
Peter Steinberger
a47d3e3e35
ui(macos): skip whatsapp onboarding in remote mode
2025-12-14 04:20:16 +00:00
Peter Steinberger
4d4bcaab1e
ci: fix iOS simulator selection indentation
2025-12-14 04:13:07 +00:00
Peter Steinberger
265a3dff27
ci: create iOS simulator when missing
2025-12-14 04:10:06 +00:00
Peter Steinberger
97fe3972c8
chore(macos): silence onboarding type length lint
2025-12-14 04:09:20 +00:00
Peter Steinberger
7c91ce2fa7
refactor(macos): simplify bridge frame handling
2025-12-14 04:09:20 +00:00
Peter Steinberger
951993db17
ui(macos): always enable deep links
2025-12-14 04:06:34 +00:00
Peter Steinberger
357a1a982b
style: satisfy formatters
2025-12-14 04:03:32 +00:00
Peter Steinberger
f6f69b408f
ui(macos): remove duplicate canvas toggle
2025-12-14 04:00:57 +00:00
Peter Steinberger
98399b85e3
docs: add onboarding spec
2025-12-14 03:59:56 +00:00
Peter Steinberger
38a773f245
test(web): make heartbeat call selection deterministic
2025-12-14 03:59:40 +00:00
Peter Steinberger
e9e2e5026c
ui(macos): fix security notice wrapping
2025-12-14 03:57:32 +00:00
Peter Steinberger
8649de6199
ui(macos): make master discovery selectable
2025-12-14 03:53:45 +00:00
Peter Steinberger
3885a2a20f
ci: fix yaml indentation for python blocks
2025-12-14 03:51:13 +00:00
Peter Steinberger
dde9fddae4
style(swift): fix lint and formatting warnings
2025-12-14 03:49:34 +00:00
Peter Steinberger
3a08e6df9d
ui(macos): skip local onboarding steps in remote mode
2025-12-14 03:49:17 +00:00
Peter Steinberger
f427bec31c
ci: fix python heredoc indentation
2025-12-14 03:46:03 +00:00
Peter Steinberger
67e0739bec
ui(macos): lower onboarding welcome content
2025-12-14 03:45:27 +00:00
Peter Steinberger
c7022cc139
ci: pick iOS simulator via simctl json
2025-12-14 03:39:33 +00:00
Peter Steinberger
65a0de8979
ci: raise iOS coverage gate to 50%
2025-12-14 03:39:33 +00:00
Peter Steinberger
d0134722af
test(ios): cover bridge client + more views
2025-12-14 03:39:33 +00:00
Peter Steinberger
efc7181aa0
fix(macos): hide session store path in remote mode
2025-12-14 03:38:47 +00:00
Peter Steinberger
3729d269d0
feat(macos): move camera setting to General
2025-12-14 03:33:24 +00:00
Peter Steinberger
7dd8a7f2e3
ci: add Android build job
2025-12-14 03:31:00 +00:00
Peter Steinberger
56bbcfc3ee
ci: enforce 40% iOS coverage
2025-12-14 03:29:08 +00:00
Peter Steinberger
eec6212cdf
test(ios): add smoke coverage tests
2025-12-14 03:29:08 +00:00
Peter Steinberger
a5b3b8743a
docs: recommend git repo for workspace backups
2025-12-14 03:19:02 +00:00
Peter Steinberger
4dd9072a2b
chore(ios): gitignore provisioning profiles
2025-12-14 03:16:50 +00:00
Peter Steinberger
073285409b
feat: bootstrap agent workspace and AGENTS.md
2025-12-14 03:14:58 +00:00
Peter Steinberger
41da61dd6a
fix(android): make settings sheet scrollable
2025-12-14 03:13:36 +00:00
Peter Steinberger
35e8dae939
fix(android): inset top buttons for status bar
2025-12-14 03:10:46 +00:00
Peter Steinberger
05e77b69c4
ci: emit swift + iOS coverage
2025-12-14 03:07:43 +00:00
Peter Steinberger
745eefe0be
test(macos): cover settings + activity models
2025-12-14 03:06:12 +00:00
Peter Steinberger
d7165b4720
feat(ios): add always-on status overlay
2025-12-14 03:00:55 +00:00
Peter Steinberger
7b1163f75c
fix(ios): satisfy Sendable in bridge timeout
2025-12-14 03:00:55 +00:00
Peter Steinberger
507f5623f4
fix: expand reply cwd (~) and document AGENTS
2025-12-14 03:00:18 +00:00
Peter Steinberger
5ace7c9c66
test(macos): add settings view smoke coverage
2025-12-14 02:55:31 +00:00
Peter Steinberger
3b35b762cb
fix(macos): avoid health polling in tests
2025-12-14 02:55:31 +00:00
Peter Steinberger
dbd3865e3b
test(ios): cover settings host/port parsing
2025-12-14 02:47:07 +00:00
Peter Steinberger
6bf1e6fa06
test(ios): cover voice trigger + camera clamps
2025-12-14 02:47:06 +00:00
Peter Steinberger
1c0170554e
fix(ios): timeout bridge connect
2025-12-14 02:41:51 +00:00
Peter Steinberger
1d79254053
ci: run iOS xcodebuild tests
2025-12-14 02:37:47 +00:00
Peter Steinberger
974ab5a8dd
test(ios): add bridge session + keychain suites
2025-12-14 02:37:47 +00:00
Peter Steinberger
eaebf4b896
chore(android): update toolchain and deps
2025-12-14 02:37:47 +00:00
Peter Steinberger
cf747e1b82
chore(deps): bump pnpm dependencies
2025-12-14 02:37:47 +00:00
Peter Steinberger
455fe15bd1
Merge remote-tracking branch 'origin/main'
2025-12-14 02:37:13 +00:00
Peter Steinberger
c4d0eb9350
fix(ios): make fastlane beta lane work
2025-12-14 02:35:59 +00:00
Peter Steinberger
10d95348b1
fix(ios): make fastlane beta lane work
2025-12-14 02:35:35 +00:00
Peter Steinberger
f86b1cf6a1
fix(camera): modernize mp4 export
2025-12-14 02:34:22 +00:00
Peter Steinberger
259e9cfccf
chore(mac): bump Peekaboo submodule
2025-12-14 02:31:31 +00:00
Peter Steinberger
7318b20f55
chore(fastlane): support p8 key path
2025-12-14 02:20:25 +00:00
Peter Steinberger
322a36f365
chore(fastlane): support p8 key path
2025-12-14 02:19:51 +00:00
Peter Steinberger
b8b20eac6d
fix(ios): make connection badge visible
2025-12-14 02:19:20 +00:00
Peter Steinberger
1fb123d701
Merge remote-tracking branch 'origin/main' into tmp/ios-statusicon
2025-12-14 02:18:09 +00:00
Peter Steinberger
138f4bd850
fix(ios): show connection status badge
2025-12-14 02:17:54 +00:00
Peter Steinberger
20abf31093
test(ios): share scheme and add deep link tests
2025-12-14 02:17:44 +00:00
Peter Steinberger
4abc551f9e
chore(android): bump AGP to 8.6.1
2025-12-14 02:16:46 +00:00
Peter Steinberger
67707763f7
docs(android): expand node README
2025-12-14 02:14:52 +00:00
Peter Steinberger
df8915cf5c
test(android): add bridge unit tests
2025-12-14 02:14:05 +00:00
Peter Steinberger
a1d16c61ec
feat(ios): add fastlane setup
2025-12-14 02:10:31 +00:00
Peter Steinberger
64b5eb8279
test(ios): add unit test target
2025-12-14 02:05:50 +00:00
Peter Steinberger
c66122c255
fix(ios): set CFBundleIconName
2025-12-14 02:05:44 +00:00
Peter Steinberger
b792175ec5
feat(android): keep node connected via foreground service
2025-12-14 02:01:56 +00:00
Peter Steinberger
b944bee121
chore(mac): sync vendored Peekaboo
2025-12-14 02:00:55 +00:00
Peter Steinberger
88ff2f79d5
test(macos): cover camera snap defaults
2025-12-14 02:00:48 +00:00
Peter Steinberger
c3fa1fb736
feat(camera): share jpeg transcoder + default maxWidth
2025-12-14 02:00:48 +00:00
Peter Steinberger
e9eb9edc23
fix(ios): remove white border from app icon
2025-12-14 01:58:35 +00:00
Peter Steinberger
e8018d8008
feat(macos): add OpenAI Whisper tool
2025-12-14 01:57:12 +00:00
Peter Steinberger
694a10f604
fix(web): use heartbeat inbound msg for delivery
2025-12-14 01:55:40 +00:00
Peter Steinberger
b2378c01ea
feat(android): add Compose node app (bridge+canvas+chat+camera)
2025-12-14 01:55:40 +00:00
Peter Steinberger
e2451484d9
feat(ios): unify manual bridge config and auto-reconnect
2025-12-14 01:55:40 +00:00
Peter Steinberger
dccdc950bf
feat(gateway): add bridge RPC chat history and push
2025-12-14 01:55:40 +00:00
Peter Steinberger
dd7be2bfd8
feat(macos): refresh tools roster
2025-12-14 01:54:10 +00:00
Peter Steinberger
66b05163e3
fix(ios): ensure app icon asset catalog
2025-12-14 01:50:51 +00:00
Peter Steinberger
7789bf6907
chore(mac): sync vendored Peekaboo
2025-12-14 01:47:05 +00:00
Peter Steinberger
8b6abe0151
fix(web): heartbeat fallback after group inbound
2025-12-14 01:26:40 +00:00
Peter Steinberger
25eb40ab31
chore(macos): swiftformat
2025-12-14 01:11:22 +00:00
Peter Steinberger
0336c1fa37
fix(ios): use mac icon + avoid voice wake crash
2025-12-14 01:09:40 +00:00
Peter Steinberger
09541de076
fix(mac): move menu separator below context card
2025-12-14 00:57:34 +00:00
Peter Steinberger
2583fb66cc
fix(webchat): stream assistant events and correlate runId
2025-12-14 00:56:06 +00:00
Peter Steinberger
037ea92679
docs(site): update docs nav
2025-12-14 00:55:38 +00:00
Peter Steinberger
38f65e7053
Merge remote-tracking branch 'origin/main'
2025-12-14 00:55:14 +00:00
Peter Steinberger
ebbc416d4b
test(cli): cover camera flags
2025-12-14 00:54:49 +00:00
Peter Steinberger
13c4f8da2b
Merge remote-tracking branch 'origin/main'
2025-12-14 00:52:57 +00:00
Peter Steinberger
099b8c9fa5
Merge origin/main
2025-12-14 00:52:40 +00:00
Peter Steinberger
1638d32e1c
docs: sync telegram + remote summaries
2025-12-14 00:52:37 +00:00
Peter Steinberger
13e1c93c74
docs(site): fix Clawd setup link
2025-12-14 00:52:14 +00:00
Peter Steinberger
affbd48a3f
docs(site): refresh footer + agent blurb
2025-12-14 00:50:57 +00:00
Peter Steinberger
00f83ca7af
docs(index): update architecture + quickstart
2025-12-14 00:50:41 +00:00
Peter Steinberger
441bd25f90
docs(clawd): update install + session store path
2025-12-14 00:50:26 +00:00
Peter Steinberger
128df57005
docs: refer to session store
2025-12-14 00:50:12 +00:00
Peter Steinberger
a80cd26341
docs: clarify legacy control + sessions path
2025-12-14 00:49:54 +00:00
Peter Steinberger
700212608a
docs(remote): clarify ssh tunneling
2025-12-14 00:49:34 +00:00
Peter Steinberger
8fb064ed70
docs(telegram): clarify polling + webhook config
2025-12-14 00:49:18 +00:00
Peter Steinberger
a92eb1f33d
feat(camera): add snap/clip capture
2025-12-14 00:48:58 +00:00
Peter Steinberger
2454e67e09
feat(ios): reconnect to last discovered gateway
2025-12-14 00:48:16 +00:00
Peter Steinberger
862a490038
feat(ios): pulse settings indicator
2025-12-14 00:48:09 +00:00
Peter Steinberger
ffc57d5f20
Merge remote-tracking branch 'origin/main'
2025-12-14 00:43:22 +00:00
Peter Steinberger
e96654ced1
docs(site): note fn+F2 on mac
2025-12-14 00:42:53 +00:00
Peter Steinberger
dd763b45e1
chore(ci): sync protocol + swiftformat
2025-12-14 00:36:30 +00:00
Peter Steinberger
2710841801
docs(readme): reflect gateway + companion apps
2025-12-14 00:34:26 +00:00
Peter Steinberger
a9e1eabcbd
docs(changelog): add 2.0.0-beta1 entry
2025-12-14 00:34:22 +00:00
Peter Steinberger
30a2e47390
chore(mac): bump Peekaboo submodule
2025-12-14 00:32:52 +00:00
Peter Steinberger
f7076c38ea
feat(ios): reconnect to last bridge
2025-12-14 00:27:26 +00:00
Peter Steinberger
e6d522493b
feat(chat): share SwiftUI chat across macOS+iOS
2025-12-14 00:17:07 +00:00
Peter Steinberger
c286573f5c
docs(ios): update Iris connect runbook
2025-12-14 00:08:00 +00:00
Peter Steinberger
aef18b7359
fix(gateway): resolve iOS node invokes
2025-12-14 00:00:05 +00:00
Peter Steinberger
17e183f5cf
chore(protocol): regen swift models
2025-12-13 23:51:18 +00:00
Peter Steinberger
a53d8ed4e4
feat(instances): show OS version
2025-12-13 23:51:18 +00:00
Peter Steinberger
755e329b01
docs(readme): describe macOS + iOS companion apps
2025-12-13 23:50:23 +00:00
Peter Steinberger
765c466d6d
docs(ios): add Iris connection runbook
2025-12-13 23:49:38 +00:00
Peter Steinberger
cf3becfb2e
refactor(macos)!: remove clawdis-mac ui; host PeekabooBridge
2025-12-13 23:49:29 +00:00
Peter Steinberger
b508f642b2
iOS: configurable voice wake words
2025-12-13 23:49:22 +00:00
Peter Steinberger
3fcee21ff7
feat(gateway): add node.invoke for iOS canvas
2025-12-13 23:45:16 +00:00
Peter Steinberger
b01cb41950
iOS: copy bridge URL/host/port
2025-12-13 23:40:12 +00:00
Peter Steinberger
7642cbb5b7
iOS: show local IP in settings
2025-12-13 23:37:02 +00:00
Peter Steinberger
7a6334d920
iOS: copy + clean bridge address
2025-12-13 23:32:57 +00:00
Peter Steinberger
d96bc38bea
style(macos): mark Reject destructive
2025-12-13 23:32:57 +00:00
Peter Steinberger
a31a569d52
chore(peekaboo): update submodule
2025-12-13 23:22:24 +00:00
Peter Steinberger
0d3aacd316
chore: bump Peekaboo submodule
2025-12-13 23:02:04 +00:00
Peter Steinberger
ece8a3e701
fix(macos): clamp web chat to visible frame
2025-12-13 22:38:10 +00:00
Peter Steinberger
ceb3980b93
iOS: disable VoiceWake on Simulator
2025-12-13 20:52:31 +00:00
Peter Steinberger
01eba1b8d9
chore: bump Peekaboo submodule
2025-12-13 20:46:20 +00:00
Peter Steinberger
cf28ea0d1c
test: raise vitest coverage
2025-12-13 20:37:56 +00:00
Peter Steinberger
41dd3b11b7
fix: harden pi package resolution
2025-12-13 20:37:46 +00:00
Peter Steinberger
5a1687484c
fix(ci): stabilize runners
2025-12-13 20:04:33 +00:00
Peter Steinberger
6143338116
chore(swift): run swiftformat and clear swiftlint
2025-12-13 19:53:17 +00:00
Peter Steinberger
39c232548c
fix(macos): restore control + webchat build
2025-12-13 19:38:35 +00:00
Peter Steinberger
e2a93e17f9
refactor: apply stashed bridge + CLI changes
2025-12-13 19:30:46 +00:00
Peter Steinberger
0b990443de
style(macos): tidy settings and CLI
2025-12-13 19:23:41 +00:00
Peter Steinberger
02fe19effa
chore(macos): expose remote test helper
2025-12-13 19:22:57 +00:00
Peter Steinberger
920cc9ac38
fix(ios): avoid actor-isolated access from audio tap
2025-12-13 19:14:36 +00:00
Peter Steinberger
ba22890205
feat(browser): add ai snapshot refs + click
2025-12-13 18:48:55 +00:00
Peter Steinberger
a59cfa7670
chore(deps): add playwright-core
2025-12-13 18:48:49 +00:00
Peter Steinberger
7cdd7c5333
fix(browser): apply clawd theme color
2025-12-13 18:41:31 +00:00
Peter Steinberger
e3379b960e
chore(peekaboo): update bridge host TeamID check
2025-12-13 18:35:26 +00:00
Peter Steinberger
7b675864a8
feat(browser): add DOM inspection commands
2025-12-13 18:33:04 +00:00
Peter Steinberger
3b853b329f
fix(bridge): prefer bonjour TXT displayName
2025-12-13 18:31:06 +00:00
Peter Steinberger
537c515dde
fix(macos): show full browser tab ids
2025-12-13 18:17:01 +00:00
Peter Steinberger
238afbc2f8
fix(browser): accept targetId prefixes
2025-12-13 18:17:01 +00:00
Peter Steinberger
2a71c20ee4
fix(mac): place debug menu under Settings
2025-12-13 18:11:00 +00:00
Peter Steinberger
40c66b1741
chore(webchat): refresh bundled assets
2025-12-13 18:10:29 +00:00
Peter Steinberger
94ad808028
fix(mac): clarify attach-only gateway errors
2025-12-13 18:10:29 +00:00
Peter Steinberger
0c8b5ed59a
test(mac): cover codesign + node manager paths
2025-12-13 18:10:29 +00:00
Peter Steinberger
56fe23549c
feat(browser): clamp screenshots under 5MB
2025-12-13 18:10:29 +00:00
Peter Steinberger
867d7e5d25
chore(peekaboo): bump submodule
2025-12-13 18:09:45 +00:00
Peter Steinberger
a0cd761c96
fix(mac): flatten config sections + use checkboxes
2025-12-13 18:06:32 +00:00
Peter Steinberger
7c3502f031
fix(ios): improve bridge discovery and pairing UX
2025-12-13 17:58:03 +00:00
Peter Steinberger
61ab07ced3
fix(mac): flatten debug sections + use checkboxes
2025-12-13 17:57:45 +00:00
Peter Steinberger
281c6d6069
chore(deps): update JS deps
2025-12-13 17:52:23 +00:00
Peter Steinberger
82634dfe3b
fix(mac): add divider below context
2025-12-13 17:51:25 +00:00
Peter Steinberger
9be3394bac
fix(cli): improve browser control errors
2025-12-13 17:37:37 +00:00
Peter Steinberger
4228ee326c
fix(browser): open tabs via CDP websocket
2025-12-13 17:37:37 +00:00
Peter Steinberger
fa1110e4d3
refactor(mac): reorganize debug settings
2025-12-13 17:36:35 +00:00
Peter Steinberger
050c47d3a7
fix(macos): encode gateway params without AnyHashable
2025-12-13 17:31:11 +00:00
Peter Steinberger
161895ed1a
fix(mac): show clawd browser path in config
2025-12-13 17:23:41 +00:00
Peter Steinberger
aeffdc3632
fix(mac): show link cursor in About
2025-12-13 17:18:22 +00:00
Peter Steinberger
ecf0da1796
docs(mac): document clawdis ui passthrough
2025-12-13 17:17:42 +00:00
Peter Steinberger
990fafa988
fix(mac): use pointing hand cursor on tool links
2025-12-13 17:15:31 +00:00
Peter Steinberger
ceb0a8b3e3
fix(macos): surface gateway sessions load errors
2025-12-13 17:15:00 +00:00
Peter Steinberger
3b283f3167
fix(cli): improve ui arg passthrough
2025-12-13 17:12:51 +00:00
Peter Steinberger
2b29d08064
chore(peekaboo): bump submodule
2025-12-13 17:11:14 +00:00
Peter Steinberger
86ed3de1c1
feat(browser): add clawdis-mac browser controls
2025-12-13 17:05:58 +00:00
Peter Steinberger
acf035d848
fix(mac): align config tab padding
2025-12-13 17:00:44 +00:00
Peter Steinberger
cab71c9711
fix(mac): polish config + cron layouts
2025-12-13 16:59:25 +00:00
Peter Steinberger
c17440f5b4
feat(mac): host PeekabooBridge for ui
2025-12-13 16:56:22 +00:00
Peter Steinberger
fd566bda14
chore(submodule): add Peekaboo
2025-12-13 16:56:22 +00:00
Peter Steinberger
e47dccbe87
chore(webchat): refresh webchat bundle
2025-12-13 16:48:53 +00:00
Peter Steinberger
2a172f9779
fix(mac): expand config settings width
2025-12-13 16:48:36 +00:00
Peter Steinberger
ce630a6381
feat(webchat): polish SwiftUI chat
2025-12-13 16:45:35 +00:00
Peter Steinberger
a882798143
fix(mac): hide empty MCP servers section
2025-12-13 16:44:43 +00:00
Peter Steinberger
44f9327087
test(gateway): extend sessions RPC coverage
2025-12-13 16:36:09 +00:00
Peter Steinberger
e654676148
docs(session): note gateway session source of truth
2025-12-13 16:33:22 +00:00
Peter Steinberger
840e266b5d
feat(macos): load sessions via gateway
2025-12-13 16:33:14 +00:00
Peter Steinberger
7d89fa2591
feat(gateway): add sessions list/patch RPC
2025-12-13 16:32:42 +00:00
Peter Steinberger
5f67c023a2
docs(clawdis-mac): improve help for browser control
2025-12-13 16:26:48 +00:00
Peter Steinberger
af3e5b299c
feat(clawdis-mac): add browser subcommand
2025-12-13 16:26:48 +00:00
Peter Steinberger
b3b4013637
feat(mac): restructure config settings grid
2025-12-13 16:26:48 +00:00
Peter Steinberger
9ad341d668
feat(mac): add browser control menu toggle
2025-12-13 16:26:48 +00:00
Peter Steinberger
d7a8d9a1c7
fix(browser): default control url uses 18791
2025-12-13 16:26:48 +00:00
Peter Steinberger
2d36ae6326
fix(browser): derive cdp port from control url
2025-12-13 16:26:48 +00:00
Peter Steinberger
208ba02a4a
feat(browser): add clawd browser control
2025-12-13 16:26:48 +00:00
Peter Steinberger
4cdb21c5cd
docs: pixel lobster terminal theme
2025-12-13 16:23:15 +00:00
Peter Steinberger
5d6cc8125b
test(telegram): cover inbound media download
2025-12-13 16:18:48 +00:00
Peter Steinberger
237933069e
fix(telegram): download inbound media via file_path
2025-12-13 16:18:44 +00:00
Peter Steinberger
99660db73f
fix(macos): prevent menubar menu width jump
2025-12-13 15:50:57 +00:00
Peter Steinberger
68fa676cbf
chore(webchat): refresh bundled webchat
2025-12-13 14:19:42 +00:00
Peter Steinberger
8794f002d5
Merge remote-tracking branch 'origin/main'
2025-12-13 14:15:48 +00:00
Peter Steinberger
d52ef185b1
fix(macos): make status lines non-selectable
2025-12-13 13:59:53 +00:00
Peter Steinberger
3ca77c46c7
fix(ui): improve light-mode green for context bar
2025-12-13 13:55:16 +00:00
Peter Steinberger
89d5d807ee
docs: pi-only terminology
2025-12-13 13:26:44 +00:00
Peter Steinberger
9e3427a37e
docs(readme): pi-only wording
2025-12-13 13:26:44 +00:00
Peter Steinberger
7ce25ecfca
docs(site): refresh clawdis.ai for Pi
2025-12-13 13:26:44 +00:00
Peter Steinberger
1ca77bee26
chore(ios): rename app to Clawdis
2025-12-13 13:11:31 +00:00
Peter Steinberger
5dbc7cc68d
feat(onboarding): highlight voice wake, panel, and tools
2025-12-13 13:04:41 +00:00
Peter Steinberger
0d45c78917
fix(onboarding): drop finish footer line
2025-12-13 13:02:03 +00:00
Peter Steinberger
31fb4f7c8b
fix(macos): install gateway via npm
2025-12-13 13:00:59 +00:00
Peter Steinberger
e9acb6fad5
fix(ui): align SSH target discovery row
2025-12-13 12:58:00 +00:00
Peter Steinberger
ab402e1178
docs(onboarding): explain primary gateway and remotes
2025-12-13 12:55:09 +00:00
Peter Steinberger
293701f520
fix(onboarding): tighten welcome copy and raise nav
2025-12-13 12:50:30 +00:00
Peter Steinberger
7b38ba0e65
refactor(cron): drop auto-migration
2025-12-13 12:45:02 +00:00
Peter Steinberger
5d8ee8fc28
docs(cron): update store + run log paths
2025-12-13 12:38:12 +00:00
Peter Steinberger
3e2e4be680
refactor(cron): move store into ~/.clawdis/cron
2025-12-13 12:38:08 +00:00
Peter Steinberger
3863fe6412
fix(ios): stabilize voice wake + bridge UI
2025-12-13 12:29:39 +00:00
Peter Steinberger
2b71ea21ad
fix(gateway): advertise bonjour hostname
2025-12-13 12:29:39 +00:00
Peter Steinberger
36f21c5a4f
feat!(mac): move screenshot to ui
2025-12-13 12:29:39 +00:00
Peter Steinberger
cf90bd9c86
feat(macos): manage cron jobs
2025-12-13 12:09:27 +00:00
Peter Steinberger
5f159c43c5
feat(cli): expand cron commands
2025-12-13 12:09:20 +00:00
Peter Steinberger
c02613e15f
feat(cron): post isolated summaries
2025-12-13 12:09:15 +00:00
Peter Steinberger
32cd1175fb
refactor(cron): simplify main-summary prefix config
2025-12-13 11:43:18 +00:00
Peter Steinberger
0152e053e1
feat!(mac): add ui screens + text clawdis-mac
2025-12-13 11:42:42 +00:00
Peter Steinberger
8d1e73edc7
feat(cron): always post isolated summaries to main
2025-12-13 11:33:46 +00:00
Peter Steinberger
a5f51eadf1
macOS: add onboarding security notice
2025-12-13 11:23:46 +00:00
Peter Steinberger
4ac21a4f63
docs(onboarding): explain WhatsApp + Telegram setup
2025-12-13 11:19:54 +00:00
Peter Steinberger
91fdf2aa25
macOS: align context padding
2025-12-13 11:16:33 +00:00
Peter Steinberger
44614d4a7d
Merge remote-tracking branch 'origin/main'
2025-12-13 11:14:56 +00:00
Peter Steinberger
0e9f617667
macOS: align sessions list with header
2025-12-13 11:14:50 +00:00
Peter Steinberger
7e7e348a14
fix(bonjour): normalize hostnames for beacons
2025-12-13 11:14:05 +00:00
Peter Steinberger
cc3d0d1ef7
Merge remote-tracking branch 'origin/main'
2025-12-13 11:11:32 +00:00
Peter Steinberger
5b608718bb
test(clawdiskit): cover BonjourEscapes decoding
2025-12-13 11:10:30 +00:00
Peter Steinberger
3a6ab81549
fix(ui): increase onboarding horizontal padding
2025-12-13 11:10:22 +00:00
Peter Steinberger
c48681b2f0
Merge remote-tracking branch 'origin/main'
2025-12-13 11:04:31 +00:00
Peter Steinberger
86d786cbc0
macOS: increase context card row spacing
2025-12-13 11:04:11 +00:00
Peter Steinberger
ec653b7b80
chore: share bonjour escapes + refresh webchat bundle
2025-12-13 10:59:48 +00:00
Peter Steinberger
cbc34e1c8a
fix(ui): show bonjour masters inline
2025-12-13 10:48:25 +00:00
Peter Steinberger
1f37d94f9e
feat(discovery): bonjour beacons + bridge presence
2025-12-13 04:28:43 +00:00
Peter Steinberger
3ee0e041fa
Merge remote-tracking branch 'origin/main'
2025-12-13 04:01:20 +00:00
Peter Steinberger
4074f4fffa
macOS: adjust context card padding
2025-12-13 04:00:48 +00:00
Peter Steinberger
7286fd6e3f
feat(macos): add master discovery to onboarding
2025-12-13 04:00:25 +00:00
Peter Steinberger
4b608117a2
fix(discovery): lazy-load bonjour; add tests
2025-12-13 03:55:36 +00:00
Peter Steinberger
47b4d245aa
test(cron): cover default-enabled scheduling
2025-12-13 03:54:21 +00:00
Peter Steinberger
36ff508fec
macOS: stabilize context menu card layout
2025-12-13 03:52:09 +00:00
Peter Steinberger
772b5fdf0f
feat(cron): default scheduler enabled
2025-12-13 03:49:42 +00:00
Peter Steinberger
eace21dcae
feat(discovery): gateway bonjour + node pairing bridge
2025-12-13 03:47:53 +00:00
Peter Steinberger
163080b609
test(cron): cover disabled scheduler
2025-12-13 03:43:55 +00:00
Peter Steinberger
4938fbffa8
feat(macos): show cron scheduler status
2025-12-13 03:43:51 +00:00
Peter Steinberger
d5db20c296
feat(cli): add cron status + warn when disabled
2025-12-13 03:43:47 +00:00
Peter Steinberger
415cb857d9
feat(cron): add scheduler status endpoint
2025-12-13 03:43:40 +00:00
Peter Steinberger
a641250da6
macOS: prewarm context menu card
2025-12-13 03:42:36 +00:00
Peter Steinberger
4d674a3f17
macOS: compact context menu context rows
2025-12-13 03:30:50 +00:00
Peter Steinberger
12d9a13af0
fix(mac): preserve SwiftUI menu delegate
2025-12-13 03:11:06 +00:00
Peter Steinberger
164841f299
refactor(mac): inject context card as NSMenuItem view
2025-12-13 03:03:08 +00:00
Peter Steinberger
778361686c
macOS: widen settings window
2025-12-13 03:00:35 +00:00
Peter Steinberger
29907a4c3f
docs(mac): drop screenshot alias plan
2025-12-13 02:51:48 +00:00
Peter Steinberger
81f38342bf
Merge remote-tracking branch 'origin/main'
2025-12-13 02:50:57 +00:00
Peter Steinberger
36b93c8dc7
security(macos): require TeamID for control socket
2025-12-13 02:50:20 +00:00
Peter Steinberger
e95fdbbc37
fix(ios): prettify bonjour endpoint labels
2025-12-13 02:48:06 +00:00
Peter Steinberger
3001f115b6
fix(mac): keep context row labels together
2025-12-13 02:47:39 +00:00
Peter Steinberger
21649d81d2
fix(presence): report bridged iOS nodes
2025-12-13 02:35:35 +00:00
Peter Steinberger
5118ba3dd2
macOS: add Cron settings tab
2025-12-13 02:34:38 +00:00
Peter Steinberger
f9409cbe43
Cron: add scheduler, wakeups, and run history
2025-12-13 02:34:38 +00:00
Peter Steinberger
572d17f46b
feat(mac): tighten context session row
2025-12-13 02:34:37 +00:00
Peter Steinberger
f466f1bf46
feat(mac): compact context session rows
2025-12-13 02:34:37 +00:00
Peter Steinberger
594315d90b
ui(ios): glassy settings button
2025-12-13 02:19:34 +00:00
Peter Steinberger
f84895f1f1
fix(ios): make canvas full-bleed
2025-12-13 02:15:03 +00:00
Peter Steinberger
952810f76c
docs(agents): forbid git stash without consent
2025-12-13 02:08:18 +00:00
Peter Steinberger
73ccbedcdb
ui(ios): clean up connected bridge list
2025-12-13 02:02:38 +00:00
Peter Steinberger
7ef83311bb
feat(bridge): show node ip in pairing
2025-12-13 01:57:40 +00:00
Peter Steinberger
416c376077
feat(ios): add close button and ready canvas
2025-12-13 01:49:04 +00:00
Peter Steinberger
ef83a07066
fix(macos): harden remote ssh tunnel
2025-12-13 01:43:23 +00:00
Peter Steinberger
ae0c1573fd
refactor(swift): rename ClawdisNodeKit to ClawdisKit
2025-12-13 01:33:30 +00:00
Peter Steinberger
378e5acd23
feat(deeplink): forward agent links via bridge
2025-12-13 01:19:36 +00:00
Peter Steinberger
a56daa6c06
feat(macos): add Allow Canvas toggle to settings
2025-12-13 01:19:36 +00:00
Peter Steinberger
84399e62ae
fix(mac): render context sessions card with labels
2025-12-13 01:18:42 +00:00
Peter Steinberger
387615e99f
feat(mac): show session labels under context bars
2025-12-13 01:10:17 +00:00
Peter Steinberger
f98ab2d037
fix(macos): prevent control socket hangs
2025-12-13 01:02:47 +00:00
Peter Steinberger
19ce08b4d0
fix(mac): avoid collapsed context pills in menu
2025-12-13 00:51:05 +00:00
Peter Steinberger
8cc2dc715c
refactor(ios): minimal full-screen canvas
2025-12-13 00:50:20 +00:00
Peter Steinberger
ca20a2dc06
Merge remote-tracking branch 'origin/main'
2025-12-13 00:48:01 +00:00
Peter Steinberger
f9b1a96c89
chore(macos): move Permissions tab after Tools
2025-12-13 00:47:08 +00:00
Peter Steinberger
854f07d735
feat(mac): compact context sessions in menu
2025-12-13 00:39:25 +00:00
Peter Steinberger
7f4f01009b
refactor(ios): remove manual URL controls
2025-12-13 00:31:52 +00:00
Peter Steinberger
117b01acbd
fix(ios): avoid MainActor isolation in audio tap
2025-12-13 00:27:15 +00:00
Peter Steinberger
2b38ddf78d
fix(ios): avoid actor isolation in audio tap
2025-12-13 00:27:15 +00:00
Peter Steinberger
5e51107711
fix(mac): size context bar to menu
2025-12-13 00:23:00 +00:00
Peter Steinberger
3bb33bdeed
fix(mac): render context bar as image
2025-12-13 00:19:29 +00:00
Peter Steinberger
9b9fa009d1
fix(mac): render context bar reliably
2025-12-13 00:13:33 +00:00
Peter Steinberger
072ad8d371
fix(mac): show cached context usage
2025-12-12 23:44:55 +00:00
Peter Steinberger
8846ffec64
fix: expose heartbeat controls and harden mac CLI
2025-12-12 23:34:26 +00:00
Peter Steinberger
3b72ed6e1a
feat(macos): add clawdis://agent deep link
2025-12-12 23:33:38 +00:00
Peter Steinberger
35b7c0f558
feat(mac): show context usage bars
2025-12-12 23:33:15 +00:00
Peter Steinberger
d5d80f4247
feat(gateway)!: switch handshake to req:connect (protocol v2)
2025-12-12 23:29:57 +00:00
Peter Steinberger
e915ed182d
fix(macos): clarify presence update source label
2025-12-12 23:27:08 +00:00
Peter Steinberger
c3aed2543e
fix(status): account cached prompt tokens
2025-12-12 23:22:24 +00:00
Peter Steinberger
e502ad13f9
fix(node): prevent iOS VoiceWake crash
2025-12-12 23:07:30 +00:00
Peter Steinberger
952d924581
fix(mac): recover control tunnel after restart
...
# Conflicts:
# apps/macos/Sources/Clawdis/GatewayConnection.swift
2025-12-12 23:07:30 +00:00
Peter Steinberger
0484aba892
test(web): retry session tmp cleanup
2025-12-12 22:55:39 +00:00
Peter Steinberger
03c84d0f11
fix(mac): make Canvas file watcher reliable
2025-12-12 22:50:25 +00:00
Peter Steinberger
086f98471e
docs: finalize gateway refactor notes
2025-12-12 22:27:18 +00:00
Peter Steinberger
cc4f0d8acc
test(macos): cover gateway endpoint store
2025-12-12 22:27:18 +00:00
Peter Steinberger
c7bd4b5c1d
refactor(macos): extract gateway payload decoding
2025-12-12 22:27:18 +00:00
Peter Steinberger
14e3b34a8e
refactor(macos): centralize gateway endpoint resolution
2025-12-12 22:27:18 +00:00
Peter Steinberger
6354dddff2
fix(macos): avoid ptt audio teardown race
2025-12-12 22:24:24 +00:00
Peter Steinberger
c50c3699d9
fix(macos): keep voice wake overlay on top
2025-12-12 22:09:14 +00:00
Peter Steinberger
6a7f955818
refactor(macos): replace gateway NotificationCenter with event bus
2025-12-12 22:06:40 +00:00
Peter Steinberger
9cf457be0a
fix(bridge): use default Bonjour domain
2025-12-12 21:59:04 +00:00
Peter Steinberger
e31383a8f1
fix(ios): harden voice wake callbacks
2025-12-12 21:59:04 +00:00
Peter Steinberger
13b8dc61ba
fix(mac): timeout ClawdisCLI socket calls
2025-12-12 21:57:33 +00:00
Peter Steinberger
61085f6141
fix(macos): avoid external open for about:blank
2025-12-12 21:56:54 +00:00
Peter Steinberger
d8cb1daa78
test(macos): cover gateway connection reuse
2025-12-12 21:42:16 +00:00
Peter Steinberger
de2e341947
fix(mac): avoid double-trigger voice wake
2025-12-12 21:37:59 +00:00
Peter Steinberger
e944a0239d
fix(macos): share gateway websocket connection
2025-12-12 21:35:00 +00:00
Peter Steinberger
ce8db12b22
fix(mac): keep voice overlay above canvas
2025-12-12 21:26:04 +00:00
Peter Steinberger
1d41129b6c
feat(ios): add settings UI
2025-12-12 21:19:39 +00:00
Peter Steinberger
6d6c3ad2c4
feat(ios): add ClawdisNode app scaffold
2025-12-12 21:19:39 +00:00
Peter Steinberger
0b532579d8
feat(bridge): add Bonjour node bridge
2025-12-12 21:19:39 +00:00
Peter Steinberger
b9007dc721
feat(mac): add rolling diagnostics log
2025-12-12 21:19:39 +00:00
Peter Steinberger
211efffa10
fix(gateway): treat webchat last as whatsapp
2025-12-12 21:05:39 +00:00
Peter Steinberger
e3b50b7d12
fix(macos): show tool-use badge glyph
2025-12-12 21:02:38 +00:00
Peter Steinberger
aae49f1d68
fix(gateway): don"t let webchat clobber last route
2025-12-12 21:00:33 +00:00
Peter Steinberger
6b4141247e
feat(macos): enlarge tool-use badge
2025-12-12 20:45:51 +00:00
Peter Steinberger
327f6e7e25
fix(mac): persist Canvas frame across reopen
2025-12-12 20:33:40 +00:00
Peter Steinberger
296c0a6b70
feat(mac): allow Canvas placement and resizing
2025-12-12 20:28:19 +00:00
Peter Steinberger
356b6e0483
fix(mac): keep voice wake listening
2025-12-12 20:13:41 +00:00
Peter Steinberger
08a473fb35
fix(mac): keep Canvas below Voice Wake overlay
2025-12-12 20:10:29 +00:00
Peter Steinberger
893eef846d
fix(mac): add draggable/closable Canvas hover chrome
2025-12-12 20:08:15 +00:00
Peter Steinberger
4ecd35c275
fix(mac): render Canvas HTML correctly
2025-12-12 20:01:12 +00:00
Peter Steinberger
27a7d9f9d1
feat(mac): add agent-controlled Canvas panel
2025-12-12 19:54:01 +00:00
Peter Steinberger
c0abab226d
Merge remote-tracking branch 'origin/main'
2025-12-12 19:28:10 +00:00
Peter Steinberger
f1320b79ce
feat(mac): add overlay notification delivery
2025-12-12 19:27:38 +00:00
Peter Steinberger
bf41197b97
fix(mac): open settings for microphone permission
2025-12-12 19:25:21 +00:00
Peter Steinberger
3f7fcad9ac
fix(mac): ignore cancelled webchat navigations
2025-12-12 19:20:47 +00:00
Peter Steinberger
e2ad0ed9f7
fix(mac): disable restricted time-sensitive entitlement
2025-12-12 19:20:47 +00:00
Peter Steinberger
d2158966db
fix(mac): treat timeSensitive as best-effort
2025-12-12 18:58:07 +00:00
Peter Steinberger
8086c66ab8
fix(mac): keep remote control tunnel alive
2025-12-12 18:44:44 +00:00
Peter Steinberger
7d37195c1a
fix(mac): serve webchat locally in remote mode
2025-12-12 18:41:38 +00:00
Peter Steinberger
241cf10bdb
refactor(mac): embed work badge in status icon
2025-12-12 18:40:33 +00:00
Peter Steinberger
337ae05ed8
build(mac): enable time-sensitive notifications
2025-12-12 18:40:09 +00:00
Peter Steinberger
378e39d7ad
test(cli): verify gateway exits 0 on SIGTERM
2025-12-12 18:30:19 +00:00
Peter Steinberger
8fb3aef917
fix(gateway): handle SIGTERM shutdown cleanly
2025-12-12 18:28:08 +00:00
Peter Steinberger
c86cb4e9a5
macOS: add --priority flag for time-sensitive notifications
...
Add NotificationPriority enum with passive/active/timeSensitive levels
that map to UNNotificationInterruptionLevel. timeSensitive breaks
through Focus modes for urgent notifications.
Usage: clawdis-mac notify --title X --body Y --priority timeSensitive
2025-12-12 18:27:12 +00:00
Peter Steinberger
8ca240fb2c
fix(gateway): ignore stale lastTo for voice
2025-12-12 18:11:26 +00:00
Peter Steinberger
9ea697ac09
style(test): biome format
2025-12-12 18:07:33 +00:00
Peter Steinberger
37eaa49e4c
fix(mac): allow typing in web chat panel
2025-12-12 18:07:27 +00:00
Peter Steinberger
e64ca7c583
fix(agent): send tau rpc prompt as string
2025-12-12 18:04:13 +00:00
Peter Steinberger
62a7a07127
fix(gateway): ack agent requests immediately
2025-12-12 18:00:49 +00:00
Peter Steinberger
bc618ec290
refactor(auto-reply): remove pi json fallback
2025-12-12 17:43:11 +00:00
Peter Steinberger
0780859a4d
fix(auto-reply): prefer Pi RPC by default
2025-12-12 17:30:34 +00:00
Peter Steinberger
79818f73c0
fix(mac): harden gateway frame decoding
2025-12-12 17:30:21 +00:00
Peter Steinberger
957d7fbe2a
test(voice): cover gateway last-channel whatsapp
2025-12-12 17:29:04 +00:00
Peter Steinberger
6e9d3092a7
fix(voice): persist WhatsApp last route
2025-12-12 17:28:07 +00:00
Peter Steinberger
7dab927260
fix(presence): hide cli sessions; use numeric mac build
2025-12-12 17:27:11 +00:00
Peter Steinberger
c417517f43
fix(mac): reflect agent activity in menu icon
2025-12-12 17:20:06 +00:00
Peter Steinberger
fd0314a6bd
fix(mac): avoid static UserDefaults in InstanceIdentity
2025-12-12 16:59:51 +00:00
Peter Steinberger
6a05d60f41
fix(presence): dedupe instances via stable instanceId
2025-12-12 16:57:25 +00:00
Peter Steinberger
cd84c5ad08
fix(macos): prevent gateway request double-resume
2025-12-12 16:52:36 +00:00
Peter Steinberger
b0187d7f28
Merge remote-tracking branch 'origin/main'
2025-12-12 16:47:24 +00:00
Peter Steinberger
7a1d64fff9
style(tests): format imports
2025-12-12 16:47:10 +00:00
Peter Steinberger
debcf19199
fix(presence): stabilize instance identity
2025-12-12 16:47:07 +00:00
Peter Steinberger
ea76425f86
docs(readme): describe voice wake reply routing
2025-12-12 16:42:09 +00:00
Peter Steinberger
88936b6216
fix(macos): fix clawdis-mac --version
2025-12-12 16:40:50 +00:00
Peter Steinberger
e6edcd9a7f
Merge remote-tracking branch 'origin/main'
2025-12-12 16:39:27 +00:00
Peter Steinberger
af78762421
style(mac): hud glass voice overlay
2025-12-12 16:39:11 +00:00
Peter Steinberger
bf159bd316
fix(mac): prevent crash decoding GatewayFrame
2025-12-12 16:37:59 +00:00
Peter Steinberger
9eda40234f
test: cover main last-channel routing
2025-12-12 16:35:47 +00:00
Peter Steinberger
00336f554f
docs: clarify voice wake last-channel routing
2025-12-12 16:26:19 +00:00
Peter Steinberger
a524b9ae9b
feat(voicewake): route replies to last channel
2025-12-12 16:22:30 +00:00
Peter Steinberger
3f1bcac077
Merge remote-tracking branch 'origin/main'
2025-12-12 16:10:02 +00:00
Peter Steinberger
679ced7840
mac: remove voice wake forward pref
2025-12-12 16:09:31 +00:00
Peter Steinberger
7422f54212
mac: add gog CLI, remove Gmail/Calendar MCPs
...
- Add gog (unified Google CLI for Gmail, Calendar, Drive, Contacts)
- Remove Gmail MCP and Google Calendar MCP entries (replaced by gog)
- gog installs via brew: steipete/tap/gog
2025-12-12 15:48:36 +00:00
Peter Steinberger
b0384d0335
fix(mac): cache webchat panel
2025-12-12 15:33:41 +00:00
Peter Steinberger
6b64039fcb
fix(mac): keep webchat boot dots
2025-12-12 15:01:20 +00:00
Peter Steinberger
19e7c708ce
test(mac): cover concurrent gateway connect
2025-12-12 14:29:09 +00:00
Peter Steinberger
c8ca5803fc
fix(mac): webchat ws connect
2025-12-12 14:18:53 +00:00
Peter Steinberger
5f48abb451
fix(mac): serialize gateway connect
2025-12-12 14:14:33 +00:00
Peter Steinberger
491fd6b74d
mac: lock control socket to team-signed peers
2025-12-12 01:22:24 +00:00
Peter Steinberger
f1ff24d634
web: default to self-only without config
2025-12-12 01:22:03 +00:00
Peter Steinberger
0242383ec3
test(gateway): cover port lock guard
2025-12-11 18:53:40 +00:00
Peter Steinberger
768887fc0f
style(pi): wrap mode arg lookup
2025-12-11 18:53:34 +00:00
Peter Steinberger
958c13e02d
mac: replace xpc with unix socket control channel
2025-12-11 16:31:15 +01:00
Peter Steinberger
f417b51fb6
chore(gateway): use ws bind as lock
2025-12-11 15:17:40 +00:00
Peter Steinberger
47a1f757a9
lint: format and stabilize gateway health
2025-12-10 18:00:33 +00:00
Peter Steinberger
27ad3b917f
chore(gateway): log pre-hello ws closures
2025-12-10 16:58:56 +00:00
Peter Steinberger
93a5784c58
feat(gateway): allow webchat port override
2025-12-10 16:55:17 +00:00
Peter Steinberger
e9fd73141d
health: gateway-only status and stable reconnect
2025-12-10 16:47:38 +00:00
Peter Steinberger
6c005b3d35
fix(session): ignore agent meta session id
2025-12-10 16:38:22 +00:00
Peter Steinberger
2967bc5988
health: stop direct baileys probes
2025-12-10 16:35:42 +00:00
Peter Steinberger
55772eec5a
gateway: force ws-only clients
2025-12-10 16:27:54 +00:00
Peter Steinberger
c2adda1cfe
chore: drop rpc->json fallback
2025-12-10 15:58:45 +00:00
Peter Steinberger
51d77aea2e
fix(auto-reply): acknowledge reset triggers
2025-12-10 15:55:20 +00:00
Peter Steinberger
8f456ea73b
fix(agent): send structured prompt to tau rpc
2025-12-10 15:52:39 +00:00
Peter Steinberger
6459582952
gateway: add webchat handshake logging
2025-12-10 15:32:34 +00:00
Peter Steinberger
3796882d22
webchat: improve logging and static serving
2025-12-10 15:32:29 +00:00
Peter Steinberger
4db69c8eac
fix(auto-reply): fall back to json when rpc prompt empty
2025-12-10 14:58:03 +00:00
Peter Steinberger
f6a86e5527
telegram: fix verbose log ordering
2025-12-10 14:33:09 +00:00
Peter Steinberger
063b35f1dc
mac: surface gateway auth failures
2025-12-10 14:32:54 +00:00
Peter Steinberger
b61147aed0
fix(auto-reply): guard empty rpc prompt
2025-12-10 14:26:03 +00:00
Peter Steinberger
fd3516bc82
fix(pi): skip -p when running rpc
2025-12-10 14:21:38 +00:00
Peter Steinberger
5e4a91f996
Auto-reply: reject empty inbound messages
2025-12-10 13:51:06 +00:00
Peter Steinberger
df4331da04
gateway: dedupe system-event presence
2025-12-10 11:48:17 +00:00
Peter Steinberger
fe3a983d35
mac: include instance id in presence beacons
2025-12-10 11:48:13 +00:00
Peter Steinberger
53c349cb86
RPC: auto-cancel hook UI prompts
2025-12-10 11:46:28 +00:00
Peter Steinberger
8f37f15a33
RPC: handle tau auto-compaction retries
2025-12-10 11:40:32 +00:00
Peter Steinberger
81385cf820
pi: parse turn_end streams
2025-12-10 11:31:28 +00:00
Peter Steinberger
cce65e19e1
mac: add attach-only gateway toggle
2025-12-10 11:31:28 +00:00
Peter Steinberger
c4b02645f5
fix: persist usage from rpc
2025-12-10 11:31:28 +00:00
Peter Steinberger
49e70746f0
webchat: show real ws errors
2025-12-10 11:31:28 +00:00
Peter Steinberger
00ace3bb63
test: add semver and gateway helpers coverage
2025-12-10 11:31:28 +00:00
Peter Steinberger
efde37eb36
test: add gateway/runtime utility coverage
2025-12-10 11:31:28 +00:00
Peter Steinberger
84499ab969
mac: drop yarn fallback
2025-12-10 03:49:25 +01:00
Peter Steinberger
5d26bb2566
gateway: include last input in presence events
2025-12-10 03:48:53 +01:00
Peter Steinberger
657450c40c
fix(voice): unify overlay send flow
2025-12-10 02:52:42 +01:00
Peter Steinberger
cf2b659491
mac: simplify package manager picker
2025-12-10 02:49:39 +01:00
Peter Steinberger
e9679ce993
chore(mac): align remote ssh controls
2025-12-10 02:48:46 +01:00
Peter Steinberger
68c5d61d60
mac: move debug toggles to footer
2025-12-10 02:48:19 +01:00
Peter Steinberger
c4f0236ec0
mac: inline gateway status row
2025-12-10 02:46:59 +01:00
Peter Steinberger
1839c144fa
mac: remove divider above active toggle
2025-12-10 02:44:56 +01:00
Peter Steinberger
d077936a21
mac: align web chat UI with web
2025-12-10 02:18:50 +01:00
Peter Steinberger
6c1638890c
chore(test): document force run and relax coverage scope
2025-12-10 01:06:44 +00:00
Peter Steinberger
7f0f789953
webchat: add centered boot loader
2025-12-10 01:04:34 +00:00
Peter Steinberger
83a2a7a1c2
mac: add swiftui web chat option
2025-12-10 02:03:59 +01:00
Peter Steinberger
70fb4d452e
mac: tidy menu and gateway support
2025-12-10 01:00:53 +00:00
Peter Steinberger
5ed1d4e178
test: drop obsolete reply session placeholder
2025-12-10 01:00:44 +00:00
Peter Steinberger
35834d3dba
webchat: handle bind errors gracefully
2025-12-10 01:00:34 +00:00
Peter Steinberger
260d9b9770
test: add test:force helper
2025-12-10 01:00:29 +00:00
Peter Steinberger
3907e9eedd
test: isolate gateway lock per run
2025-12-10 00:58:59 +00:00
Peter Steinberger
cf8b00890f
fix: stabilize health probe and gateway handshake
2025-12-10 00:52:43 +00:00
Peter Steinberger
f1fd25e95e
chore: update dependencies
2025-12-10 00:48:50 +00:00
Peter Steinberger
426503e062
infra: use flock gateway lock
2025-12-10 00:46:50 +00:00
Peter Steinberger
b1834b7cf8
mac: avoid spawning local gateway in remote mode
2025-12-10 01:44:03 +01:00
Peter Steinberger
27f9cd591d
mac: route remote mode through SSH
2025-12-10 01:43:59 +01:00
Peter Steinberger
5bbc7c8ba2
mac: silence proc_pidpath warning
2025-12-10 01:43:34 +01:00
Peter Steinberger
08f8f58971
mac: add browser webchat debug entry
2025-12-10 01:33:15 +01:00
Peter Steinberger
7871e705bf
mac: show full command and kill controls for ports
2025-12-10 01:24:05 +01:00
Peter Steinberger
1820308ba2
fix: expand gateway attach log
2025-12-10 00:19:18 +00:00
Peter Steinberger
a07229846f
mac: treat pnpm/bun processes as expected gateways
2025-12-10 01:10:50 +01:00
Peter Steinberger
a7e4656834
mac: drop legacy log path
2025-12-10 00:05:05 +00:00
Peter Steinberger
872d54a2dd
mac: guard ports and sweep stale tunnels
2025-12-10 01:04:37 +01:00
Peter Steinberger
496136b52c
style(webchat): add body padding class on error
2025-12-10 00:04:22 +00:00
Peter Steinberger
c4eff00ed7
mac: centralize log path lookup
2025-12-10 00:03:37 +00:00
Peter Steinberger
27d8aa0f04
style(webchat): pad error view
2025-12-10 00:02:51 +00:00
Peter Steinberger
bb057b1dad
fix: keep tools list stable
2025-12-10 00:02:18 +00:00
Peter Steinberger
3b9d84e2b1
mac: global outside-click monitor and highlight helper
2025-12-10 00:51:02 +01:00
Peter Steinberger
1a17de9d39
fix(webchat): serve root assets correctly
2025-12-09 23:50:28 +00:00
Peter Steinberger
f6ade5dc84
mac: add port diagnostics for gateway
2025-12-10 00:49:33 +01:00
Peter Steinberger
2116f19106
fix(mac): keep overlay on token mismatch
2025-12-10 00:48:15 +01:00
Peter Steinberger
b73a7e07d2
mac: open latest log file
2025-12-09 23:45:50 +00:00
Peter Steinberger
14d3a624d8
fix(webchat): load root path
2025-12-09 23:40:26 +00:00
Peter Steinberger
dd88345483
gateway: cache health snapshot
2025-12-09 23:39:02 +00:00
Peter Steinberger
e58d5a54b1
mac: toggle panel purely from visibility
2025-12-09 23:36:51 +01:00
Peter Steinberger
2a95a5bf8a
Add package manager selector and hide uninstalled tools
2025-12-09 22:32:20 +00:00
Peter Steinberger
0c4e67a951
mac: ensure panel toggle doesn't reopen
2025-12-09 23:32:01 +01:00
Peter Steinberger
78d41b8e41
test: cover chat attachments
2025-12-09 23:31:14 +01:00
Peter Steinberger
d5347176e1
mac: close panel on second click
2025-12-09 23:25:49 +01:00
Peter Steinberger
6d91dad8e4
mac: tie highlight to panel visibility
2025-12-09 23:20:16 +01:00
Peter Steinberger
1dd5c97ae0
feat: add ws chat attachments
2025-12-09 23:16:57 +01:00
Peter Steinberger
e80e5b0801
mac: revert webchat menu fallback
2025-12-09 23:15:35 +01:00
Peter Steinberger
052d8ba879
fix(macos): harden presence decode
2025-12-09 22:08:55 +00:00
Peter Steinberger
d08ca9585a
mac: clear status highlight via menu delegate
2025-12-09 23:02:02 +01:00
Peter Steinberger
50c33dfcdf
chore: bump pi deps for tau rpc
2025-12-09 21:53:00 +00:00
Peter Steinberger
42c3c2b804
fix: prevent stuck mac health checks
2025-12-09 21:53:00 +00:00
Peter Steinberger
f83eeac5e2
fix(mac): keep webchat panel alive
2025-12-09 21:53:00 +00:00
Peter Steinberger
d5517ede45
mac: clear highlight on panel close
2025-12-09 22:40:11 +01:00
Peter Steinberger
2339f1a01d
chore(mac): add separator before general toggles
2025-12-09 21:28:46 +00:00
Peter Steinberger
6129924eb2
chore: remove legacy rpc command
2025-12-09 21:28:39 +00:00
Peter Steinberger
fce9ded30a
feat(webchat): sync theme with system
2025-12-09 21:22:21 +00:00
Peter Steinberger
8489907cf5
feat(telegram): add typing cue
2025-12-09 21:14:10 +00:00
Peter Steinberger
84ccde268e
mac/webchat: remove panel padding
2025-12-09 21:14:10 +00:00
Peter Steinberger
c191df5434
fix: relaunch app after debug restart
2025-12-09 22:13:43 +01:00
Peter Steinberger
f49934a75b
mac: respect webchat disabled for left click
2025-12-09 22:11:10 +01:00
Peter Steinberger
be3326d0d9
chore(webchat): log url on gateway start
2025-12-09 21:10:49 +00:00
Peter Steinberger
7919019b67
fix(mac): disable smoothing and await watchdog
2025-12-09 22:09:25 +01:00
Peter Steinberger
89d856a487
fix(mac): snap critter drawing to pixels
2025-12-09 22:08:21 +01:00
Peter Steinberger
978a24ffab
fix(mac): keep ptt overlay until release
2025-12-09 22:08:17 +01:00
Peter Steinberger
bd41cf377a
feat(webchat): auto-start at root
2025-12-09 21:07:53 +00:00
Peter Steinberger
3ee3f7e30b
mac: add gateway reconnect watchdog
2025-12-09 21:07:39 +00:00
Peter Steinberger
a032614dc7
mac: make status rows disabled menu items
2025-12-09 22:02:15 +01:00
Peter Steinberger
0377d13d3d
mac: disable status rows in menu
2025-12-09 21:59:17 +01:00
Peter Steinberger
06fdfc2e14
mac icon: render 36px retina backing
2025-12-09 21:56:37 +01:00
Peter Steinberger
510552c5e6
mac: harden webchat panel
2025-12-09 21:43:54 +01:00
Peter Steinberger
6675c273fd
mac: panel highlight when webchat open
2025-12-09 21:41:24 +01:00
Peter Steinberger
9131a69983
Debug menu: add sessions icon and separator
2025-12-09 21:40:04 +01:00
Peter Steinberger
a8baf0ef45
chore(gateway): color ws direction logs
2025-12-09 20:37:01 +00:00
Peter Steinberger
5e4f32d808
chore(mac): include os version and locale in handshake
2025-12-09 20:37:01 +00:00
Peter Steinberger
5a8d18edf3
web: reuse active listener for sends
2025-12-09 20:37:01 +00:00
Peter Steinberger
f34b238713
Debug menu: session controls and thinking/verbose
2025-12-09 21:32:21 +01:00
Peter Steinberger
ad5c7d97ca
mac: left-click webchat panel
2025-12-09 21:29:21 +01:00
Peter Steinberger
c35f9c1315
docs: refresh gateway cli params
2025-12-09 20:28:10 +00:00
Peter Steinberger
e84ed61339
cli: gateway subcommands, drop ipc probes
2025-12-09 20:27:35 +00:00
Peter Steinberger
8265829105
Menu: add icons to debug submenu
2025-12-09 21:24:36 +01:00
Peter Steinberger
a76d00a08e
chore: drop gateway ipc remnants
2025-12-09 20:21:41 +00:00
Peter Steinberger
131864b940
gateway: drop ipc and simplify cli
2025-12-09 20:18:50 +00:00
Peter Steinberger
d33a3f619a
fix(mac): harden gateway lock and ip decoding
2025-12-09 20:12:54 +00:00
Peter Steinberger
1a0e57d926
Menu: add more debug utilities
2025-12-09 21:11:28 +01:00
Peter Steinberger
5e5845547e
gateway: improve conflict handling and logging
2025-12-09 20:07:24 +00:00
Peter Steinberger
0de944be28
telegram: show name and id in envelope
2025-12-09 19:56:18 +00:00
Peter Steinberger
5df438fd2a
fix: enforce gateway single instance
2025-12-09 19:40:01 +00:00
Peter Steinberger
6329f60dff
chore(mac): add divider before session toggles
2025-12-09 19:14:01 +00:00
Peter Steinberger
0bf9a87293
chore(mac): dedupe local gateway label
2025-12-09 19:13:46 +00:00
Peter Steinberger
6ae4c49c1a
fix(mac): encode gateway params with protocol AnyCodable
2025-12-09 19:10:19 +00:00
Peter Steinberger
c683ae69af
gateway: log provider errors verbosely
2025-12-09 19:10:10 +00:00
Peter Steinberger
ab9b12e883
gateway: enforce hello order and modern json
2025-12-09 19:09:06 +00:00
Peter Steinberger
c41b506741
mac: fix gateway hello types
2025-12-09 19:02:53 +00:00
Peter Steinberger
848180dc08
mac: fix local path string
2025-12-09 19:02:53 +00:00
Peter Steinberger
a7d39913fd
mac: fix actor call and label warnings
2025-12-09 19:02:53 +00:00
Peter Steinberger
85ca2152e4
feat(mac): reuse running gateway
2025-12-09 19:02:53 +00:00
Peter Steinberger
b11b33b63c
test(overlay): cover token guard outcomes
2025-12-09 19:51:51 +01:00
Peter Steinberger
239f58b584
fix(overlay): dismiss on token mismatch; keep gateway log clear helper
2025-12-09 19:50:05 +01:00
Peter Steinberger
474cb48a14
fix(ptt): dismiss empty overlay immediately on key up
2025-12-09 19:48:35 +01:00
Peter Steinberger
577b0dfe1d
mac: show local gateway path when overridden
2025-12-09 18:46:31 +00:00
Peter Steinberger
2918e00d33
fix(mac): restore gateway clear log
2025-12-09 18:44:22 +00:00
Peter Steinberger
ffc930b871
surface: envelope inbound messages for agent
2025-12-09 18:43:21 +00:00
Peter Steinberger
55bffeba4a
chore: add gateway env/process manager after rename
2025-12-09 19:38:19 +01:00
Peter Steinberger
2adb14c320
fix: improve app restart and gateway logs
2025-12-09 18:37:04 +00:00
Peter Steinberger
0d4bf1c15a
fix(ptt): ignore stale recognition callbacks
2025-12-09 19:17:16 +01:00
Peter Steinberger
a3bf2bdd8c
chore: rename relay to gateway
2025-12-09 18:00:01 +00:00
Peter Steinberger
bc3a14cde2
docs: add docs:list helper and front matter
2025-12-09 17:51:05 +00:00
Peter Steinberger
b3d4e5cfdf
mac: simplify degraded labels
2025-12-09 17:45:27 +00:00
Peter Steinberger
885355ce53
settings: clarify pause toggles gateway messaging
2025-12-09 17:40:59 +00:00
Peter Steinberger
a4d5b68134
mac: honor local relay path
2025-12-09 17:40:44 +00:00
Peter Steinberger
67f2bc1385
web: log disconnect error detail in reconnect loop
2025-12-09 17:38:49 +00:00
Peter Steinberger
d8fb2f9175
chore(mac): make package/restart skip ts relay
2025-12-09 17:36:24 +00:00
Peter Steinberger
fcc8d59588
fix(mac): avoid crash decoding gateway frames
2025-12-09 17:36:16 +00:00
Peter Steinberger
1f19ca1665
chore: drop runner shim and add committer helper
2025-12-09 17:24:25 +00:00
Peter Steinberger
d04f7fc6e9
msg: retry web/telegram sends and add regression tests
2025-12-09 17:23:04 +00:00
Peter Steinberger
f9370718bc
web: show surface + host/ip chips in chat UI
2025-12-09 17:23:00 +00:00
Peter Steinberger
8d888b426f
chore: format swift/ts and fix gateway lint
2025-12-09 17:11:25 +00:00
Peter Steinberger
b6bd39660f
IPC: rename relay socket to gateway.sock
2025-12-09 17:04:58 +00:00
Peter Steinberger
959ba94eca
macOS: add settings previews
2025-12-09 18:04:11 +01:00
Peter Steinberger
d5cd1058ab
Mac: surface gateway errors in remote test
2025-12-09 18:01:15 +01:00
Peter Steinberger
80c7b04831
Menu: add debug submenu actions
2025-12-09 17:57:21 +01:00
Peter Steinberger
7017756140
UI: unify refresh buttons
2025-12-09 17:54:12 +01:00
Peter Steinberger
d9a132b649
chore: update dependencies
2025-12-09 17:43:22 +01:00
Peter Steinberger
60a68aa136
Gateway: start providers and route sends to their surface
2025-12-09 16:38:43 +00:00
Peter Steinberger
464e4c1938
Gateway: honor verbose for Baileys and show log path
2025-12-09 16:33:04 +00:00
Peter Steinberger
796f630a7c
Status: color provider lines
2025-12-09 16:31:38 +00:00
Peter Steinberger
dc8f9e043d
Tests: cover gateway --force helpers
2025-12-09 16:31:28 +00:00
Peter Steinberger
6afcf43ff2
CLI: add gateway --force option
2025-12-09 16:28:26 +00:00
Peter Steinberger
e0ea7be499
Docs: rename relay command to gateway
2025-12-09 17:24:57 +01:00
Peter Steinberger
4bf968a45a
CLI: add gateway verbose flag
2025-12-09 17:17:58 +01:00
Peter Steinberger
a86963d62d
Debug: rename restart button to Gateway
2025-12-09 16:16:14 +00:00
Peter Steinberger
e40f9c9730
Mac: launch gateway and add relay installer
2025-12-09 16:15:53 +00:00
Peter Steinberger
96be7c8990
tests: cover agent sequencing, tick watchdog, presence fingerprint
2025-12-09 17:05:47 +01:00
Peter Steinberger
3ced3f4c82
ci/docs: enforce protocol check and deprecate control api
2025-12-09 17:03:05 +01:00
Peter Steinberger
72eb240c3b
gateway: harden ws protocol and liveness
2025-12-09 17:02:58 +01:00
Peter Steinberger
20d247b3f7
Mac: type agent events end-to-end
2025-12-09 15:38:22 +01:00
Peter Steinberger
318457cb2c
chore(swabble): apply swiftformat
2025-12-09 15:36:41 +01:00
Peter Steinberger
336c9d6caa
Mac: build GatewayProtocol target and typed presence handling
2025-12-09 15:35:06 +01:00
Peter Steinberger
a7737912b0
Mac: use typed GatewayFrame + forward-compatible Swift generator
2025-12-09 15:26:31 +01:00
Peter Steinberger
f244aba03d
Protocol: legacy shim file for Xcode references
2025-12-09 15:23:51 +01:00
Peter Steinberger
b0c196cf82
Protocol: add TypeBox-driven Swift generator
2025-12-09 15:21:16 +01:00
Peter Steinberger
cf5769753a
Protocol: lint fixes for client/program
2025-12-09 15:18:34 +01:00
Peter Steinberger
d1217e84c7
CLI: remove relay/heartbeat legacy commands
2025-12-09 15:06:44 +01:00
Peter Steinberger
172ce6c79f
Gateway: discriminated protocol schema + CLI updates
2025-12-09 15:01:13 +01:00
Peter Steinberger
2746efeb25
WebChat: loopback snapshot hydration
2025-12-09 14:41:55 +01:00
Peter Steinberger
b2e7fb01a9
Gateway: finalize WS control plane
2025-12-09 14:41:41 +01:00
Peter Steinberger
9ef1545d06
Coordinator: centralize voice sessions for wake and push-to-talk
2025-12-09 05:41:41 +01:00
Peter Steinberger
fc1d58b631
WebChat: fix packaged root resolution
2025-12-09 04:36:15 +00:00
Peter Steinberger
2ebad55a59
Relay: force app to run relay via system node
2025-12-09 04:36:05 +00:00
Peter Steinberger
d66a05dc41
RPC: route logs to stderr to keep stdout JSON clean
2025-12-09 04:30:22 +00:00
Peter Steinberger
998a5b080d
Update auto-reply and voice wake runtime
2025-12-09 04:15:01 +00:00
Peter Steinberger
39a0f54b0d
Runtime: drop bun support
2025-12-09 04:13:56 +00:00
Peter Steinberger
024a823c78
Runtime: delay restart inside actor; log RPC unexpected payload
2025-12-09 05:02:56 +01:00
Peter Steinberger
1bbb424322
Overlay: block new sessions while sending; delay runtime restart
2025-12-09 05:02:03 +01:00
Peter Steinberger
b04f04776b
fix(mac): make rpc parsing tolerate stray stdout
2025-12-09 05:01:50 +01:00
Peter Steinberger
f0860ec145
chore(instances): harden presence refresh and fix lint
2025-12-09 04:51:54 +01:00
Peter Steinberger
658e0c6b03
Presence: resilient local fallback
2025-12-09 04:48:21 +01:00
Peter Steinberger
49fa093767
Overlay: log token drops and immediate auto-send
2025-12-09 04:47:05 +01:00
Peter Steinberger
51aed3ca0a
chore(mac): apply swiftformat and lint fixes
2025-12-09 04:42:44 +01:00
Peter Steinberger
b9cc914729
Docs: clarify relay launch mechanism
2025-12-09 03:36:16 +00:00
Peter Steinberger
d084a37e11
feat(mac): tokenized voice overlay adoption
2025-12-09 04:35:13 +01:00
Peter Steinberger
cfd2c41c21
fix(rpc): keep stdout json-only
2025-12-09 04:34:11 +01:00
Peter Steinberger
9dee4c158d
chore(instances): log empty payloads and add local fallback
2025-12-09 04:29:34 +01:00
Peter Steinberger
6b8011228e
fix(presence): always seed self entry and log counts
2025-12-09 03:21:59 +00:00
Peter Steinberger
2cd27d0d4a
Relay: enforce single instance lock
2025-12-09 03:17:23 +00:00
Peter Steinberger
3dff09424d
VoiceWake: drop unused forward health check state
2025-12-09 03:12:37 +00:00
Peter Steinberger
8e15a6e798
Overlay: safety dismiss and logging; keep PTT final send
2025-12-09 04:04:45 +01:00
Peter Steinberger
2756e12762
VoiceWake: drop remote ssh config and harden template parsing
2025-12-09 03:04:08 +00:00
Peter Steinberger
4eb71bcd14
rpc: ensure worker is killed if it hangs on shutdown
2025-12-09 03:04:00 +00:00
Peter Steinberger
2177df51a8
feat(status): enrich session details
2025-12-09 03:00:10 +00:00
Peter Steinberger
40c8e4832a
WebChat: make tunnel restart handler hop to MainActor
2025-12-09 03:58:28 +01:00
Peter Steinberger
3377bd4ae5
PTT: wait for final transcript before send/dismiss
2025-12-09 03:57:08 +01:00
Peter Steinberger
38c4f4f76c
feat(instances): beacon on connect and relay self-entry
2025-12-09 03:57:08 +01:00
Peter Steinberger
280c7c851f
tests: cover voicewake template defaults
2025-12-09 02:52:04 +00:00
Peter Steinberger
af9ccf0c09
VoiceWake: route forwarding via agent rpc
2025-12-09 02:50:58 +00:00
Peter Steinberger
e7cdac90f5
mac: stop leaking ssh processes on quit
2025-12-09 02:50:58 +00:00
Peter Steinberger
7aefcab8b0
Health: clean degraded message; PTT hotkey monitors
2025-12-09 03:46:52 +01:00
Peter Steinberger
514b90ac69
VoiceWake: autoplay chime on selection
2025-12-09 03:42:03 +01:00
Peter Steinberger
dbcb97949f
macOS: centralize sound effect catalog/player
2025-12-09 03:42:03 +01:00
Peter Steinberger
76d559efc1
macOS: log control responses
2025-12-09 02:41:18 +00:00
Peter Steinberger
8d8584849c
RPC: fix presence imports
2025-12-09 02:39:41 +00:00
Peter Steinberger
59a2cbefcb
RPC: extract stdio loop and tests
2025-12-09 02:37:04 +00:00
Peter Steinberger
c568284f1b
Build: fix RPC sendable params and CLI imports
2025-12-09 03:33:16 +01:00
Peter Steinberger
a8b26570e0
macOS: include mail sounds in chime picker
2025-12-09 03:28:29 +01:00
Peter Steinberger
5a74b40ae4
macOS: broaden chime sound catalog
2025-12-09 03:27:17 +01:00
Peter Steinberger
04f595cd97
Control: route health/heartbeat over RPC stdio
2025-12-09 02:26:08 +00:00
Peter Steinberger
99a3102134
Docs: voice overlay plan and fix web mocks
2025-12-09 03:25:55 +01:00
Peter Steinberger
3a42979e53
Voice wake: log overlay lifecycle and enforce PTT cooldown
2025-12-09 03:20:52 +01:00
Peter Steinberger
912a53318e
fix(voicewake): snap overlay to top-right
2025-12-09 03:18:05 +01:00
Peter Steinberger
421401ae3f
Voice wake: drop stale recognition callbacks
2025-12-09 03:08:22 +01:00
Peter Steinberger
e15475449c
fix merge; add control logging
2025-12-09 01:46:09 +00:00
Peter Steinberger
31750b5ee5
style(macos): remove quit separator and resize settings
2025-12-09 02:28:05 +01:00
Peter Steinberger
bc92f6d4a4
feat(macos): add instances tab and presence beacons
2025-12-09 02:25:45 +01:00
Peter Steinberger
1969e78d54
feat: surface system presence for the agent
2025-12-09 02:25:37 +01:00
Peter Steinberger
317f666d4c
Voice wake: send or dismiss on release
2025-12-09 02:25:06 +01:00
Peter Steinberger
3fe68a051a
fix: block partial replies on external chat surfaces
2025-12-09 01:48:12 +01:00
Peter Steinberger
5bfecc6152
fix: stop partial replies for whatsapp/telegram surfaces
2025-12-09 01:41:05 +01:00
Peter Steinberger
e44ed2681f
refactor: type tau rpc stream events
2025-12-09 01:41:05 +01:00
Peter Steinberger
27a545f79d
chore: harden rpc assistant streaming types
2025-12-09 01:41:05 +01:00
Peter Steinberger
6b10f4241d
feat(macos): surface session activity in menu bar
2025-12-09 01:41:05 +01:00
Peter Steinberger
73cc34467a
control: log incoming health requests
2025-12-09 00:38:42 +00:00
Peter Steinberger
ec1ff52dfb
control: reconnect on EOF and relax rpc text parse
2025-12-09 00:29:31 +00:00
Peter Steinberger
2761c40781
test: ensure tool events emit without verbose
2025-12-09 01:24:16 +01:00
Peter Steinberger
e981d90209
fix: always emit tool events
2025-12-09 01:22:50 +01:00
Peter Steinberger
f965e1c3ff
chore: single-source working state from agent events
2025-12-09 01:17:01 +01:00
Peter Steinberger
5b5a79b90b
chore(mac): drop duplicate job-state tracking
2025-12-09 01:06:46 +01:00
Peter Steinberger
15729e9ea0
macos: log health timeout and control requests
2025-12-09 00:00:50 +00:00
Peter Steinberger
d9eb320bba
ci: test node and bun runtimes
2025-12-09 01:00:35 +01:00
Peter Steinberger
cba016df74
chore(mac): prefer host runtime for remote relay
2025-12-09 00:59:56 +01:00
Peter Steinberger
cf36f5a23b
chore: guard host runtime and simplify packaging
2025-12-09 00:59:56 +01:00
Peter Steinberger
34d2527606
chore: tidy agent event streaming types
2025-12-09 00:59:56 +01:00
Peter Steinberger
8e8e695db9
feat(mac): add agent events debug window
2025-12-09 00:59:56 +01:00
Peter Steinberger
9928f1b3c1
macOS: extract attributed string helper
2025-12-09 00:59:56 +01:00
Peter Steinberger
36c91c3984
relay: don't crash when webchat port is busy
2025-12-08 23:49:57 +00:00
Peter Steinberger
b7b1714f32
feat: forward tool/assistant events to agent bus
2025-12-09 00:44:30 +01:00
Peter Steinberger
2d1f1640f3
chore: ignore macOS swiftpm cache
2025-12-09 00:43:45 +01:00
Peter Steinberger
371a30f08b
feat: stream tool/job events over control channel
2025-12-09 00:31:39 +01:00
Peter Steinberger
40dd23337c
feat: broadcast agent events over control channel
2025-12-09 00:28:03 +01:00
Peter Steinberger
3114dfd39b
refactor(mac): split menubar UI into smaller files
2025-12-09 00:27:53 +01:00
Peter Steinberger
04b34adec6
macos: show detailed health failure
2025-12-08 23:20:14 +00:00
Peter Steinberger
594e837440
feat: emit job-state events from rpc
2025-12-09 00:18:14 +01:00
Peter Steinberger
c77fa12bda
fix(mac): stabilize voice wake visuals
2025-12-09 00:12:43 +01:00
Peter Steinberger
5674c9f4c2
Mac: clarify runtime comments
2025-12-09 00:08:19 +01:00
Peter Steinberger
bc01488a75
fix(mac): switch push-to-talk to right option
2025-12-08 23:50:31 +01:00
Peter Steinberger
c3c6880382
macos: timeout control health probes
2025-12-08 22:45:58 +00:00
Peter Steinberger
1f2f5858c0
docs: note Mac app for relay debugging
2025-12-08 23:37:46 +01:00
Peter Steinberger
22259a322d
macos: keep remote control tunnel alive
2025-12-08 23:28:03 +01:00
Peter Steinberger
06f59f4e8a
Build: update webchat bundle
2025-12-08 23:20:10 +01:00
Peter Steinberger
2b7adeb220
VoiceWake: track listening state for PTT
2025-12-08 23:17:11 +01:00
Peter Steinberger
05bd452f76
control: drop runtime export of type-only HeartbeatEventPayload
2025-12-08 23:15:33 +01:00
Peter Steinberger
a6426d0ac5
macos: swap bubble shadow for 1px border
2025-12-08 23:14:00 +01:00
Peter Steinberger
5dd5c9c605
macos: add inset margin so overlay shadow isn't clipped
2025-12-08 22:56:49 +01:00
Peter Steinberger
0e4b28ac25
macos: fail fast when SSH tunnel exits
2025-12-08 22:53:40 +01:00
Peter Steinberger
62fecdcaa8
VoiceWake: guard trigger chime
2025-12-08 22:52:51 +01:00
Peter Steinberger
440558c44f
macos: add soft shadow behind overlay bubble
2025-12-08 22:51:04 +01:00
Peter Steinberger
fa9a92f214
macos: deepen shadow on close pill
2025-12-08 22:45:40 +01:00
Peter Steinberger
c5af11f6bd
Remove overlay bar meter
2025-12-08 22:45:40 +01:00
Peter Steinberger
ad3254deb6
macos: restore overlay close button
2025-12-08 21:40:18 +00:00
Peter Steinberger
fce04b9424
macos: stabilize close hover and unclipped button
2025-12-08 22:38:51 +01:00
Peter Steinberger
2d512c714b
VoiceWake: button meter + fix label color
2025-12-08 22:38:30 +01:00
Peter Steinberger
6298c586fd
macos: stabilize control connection wait
2025-12-08 21:37:07 +00:00
Peter Steinberger
abca8535cf
macos: blink critter when overlay dismisses empty
2025-12-08 22:34:11 +01:00
Peter Steinberger
677374de86
macos: sync ears with overlay visibility
2025-12-08 22:31:03 +01:00
Peter Steinberger
92d015333a
VoiceWake: add level meter
2025-12-08 22:28:49 +01:00
Peter Steinberger
6c91304400
macos: refine speech noise floor tracking
2025-12-08 22:24:12 +01:00
Peter Steinberger
04b5002d8f
macos: polish voice overlay and remote command handling
2025-12-08 22:23:24 +01:00
Peter Steinberger
9bde7a6daa
macos: harden control channel connect continuation
2025-12-08 22:16:05 +01:00
Peter Steinberger
33b54f3d0c
ux: float close button outside bubble, stronger shadow
2025-12-08 22:11:38 +01:00
Peter Steinberger
c5b073702c
macos: control channel diagnostics and tunnel-based testing
2025-12-08 22:04:02 +01:00
Peter Steinberger
e38bdd0d2d
control: seed events, add tests, update remote doc
2025-12-08 22:03:46 +01:00
Peter Steinberger
9c54e48194
fix: avoid auto-send task init error
2025-12-08 22:02:03 +01:00
Peter Steinberger
12e048a7fb
ux: float close button outside bubble and reduce hover flicker
2025-12-08 21:59:05 +01:00
Peter Steinberger
11400e43dc
chore: sync webchat bundle and voice wake settings
2025-12-08 21:51:08 +01:00
Peter Steinberger
293b4960f3
macos: use control channel for health and heartbeat
2025-12-08 21:50:51 +01:00
Peter Steinberger
22996854f7
relay: add control channel and heartbeat stream
2025-12-08 21:50:24 +01:00
Peter Steinberger
71e58c768c
docs: add control channel reference
2025-12-08 21:50:16 +01:00
Peter Steinberger
bb3606b64f
VoiceWake: centralize send chime and guard play
2025-12-08 21:25:30 +01:00
Peter Steinberger
7a82777fc5
ux: add hover/ edit close button and keep overlay until escape or send
2025-12-08 21:22:04 +01:00
Peter Steinberger
ec046411f1
VoiceWake: skip send chime when nothing to send
2025-12-08 20:57:41 +01:00
Peter Steinberger
ffaf968940
VoiceWake: streamline chimes, default to Glass
2025-12-08 20:50:34 +01:00
Peter Steinberger
feb70aeb6b
VoiceWake: add chimes for trigger and send
2025-12-08 20:45:05 +01:00
Peter Steinberger
ded106b9e3
ux: keep window in edit, add escape to cancel; fix lint drift
2025-12-08 20:22:56 +01:00
Peter Steinberger
cfdcabc8b4
VoiceWake: sanitize triggers only when applying
2025-12-08 20:20:56 +01:00
Peter Steinberger
ab448988ff
RPC: stream heartbeat events to menu
2025-12-08 20:18:54 +01:00
Peter Steinberger
e3089d60ea
HeartbeatStore: fix main-actor cleanup
2025-12-08 20:17:38 +01:00
Peter Steinberger
34f892ae82
VoiceWake: keep empty trigger rows
2025-12-08 20:13:49 +01:00
Peter Steinberger
fbbf0ed41c
ux: top-align overlay content
2025-12-08 20:10:39 +01:00
Peter Steinberger
66a8780fa2
ui: strip label color attributes so text uses primary color
2025-12-08 20:00:36 +01:00
Peter Steinberger
2c610258d1
ux: use primary text color in display label
2025-12-08 19:57:29 +01:00
Peter Steinberger
f7430d74a7
ux: wrap label to overlay width, remove label background
2025-12-08 19:43:07 +01:00
Peter Steinberger
421d6db592
ux: keep vibrancy, brighten label, ensure wrapping
2025-12-08 19:36:48 +01:00
Peter Steinberger
1d385fd35a
ui: drop translucency for overlay background
2025-12-08 19:20:46 +01:00
Peter Steinberger
7cb31581d5
ux: brighten display label and wrap properly
2025-12-08 19:15:58 +01:00
Peter Steinberger
768d550ee2
ux: show vibrant label until edit, then switch to text view
2025-12-08 19:11:59 +01:00
Peter Steinberger
4fd7480557
chore: launch app in restart script instead of launch agent
2025-12-08 19:01:29 +01:00
Peter Steinberger
7c0f0a59eb
tweak: strengthen partial transcript tint
2025-12-08 18:54:02 +01:00
Peter Steinberger
93aeee1611
tweak: centralize overlay max/min heights
2025-12-08 18:52:19 +01:00
Peter Steinberger
86d9e1e816
fix: hide overlay scrollbar unless content overflows
2025-12-08 18:50:14 +01:00
Peter Steinberger
73211c900b
perf(mac): move blocking launchctl/webchat work off main
2025-12-08 18:42:13 +01:00
Peter Steinberger
a19d4c19d3
tweak: allow overlay to grow to 400px then scroll
2025-12-08 18:33:14 +01:00
Peter Steinberger
cf3b7f2c16
fix: keep overlay attributed colors and auto-resize
2025-12-08 18:28:17 +01:00
Peter Steinberger
2f21dd81b0
docs/macos: simplify sag install (auto-tap)
2025-12-08 18:19:54 +01:00
Peter Steinberger
db3b3ed9eb
fix: polish voice overlay and webchat lint
2025-12-08 17:32:34 +01:00
Peter Steinberger
9625d94aa0
fix(mac): surface webchat load failures and preflight reachability
2025-12-08 17:24:08 +01:00
Peter Steinberger
5dec7d534f
docs: document push-to-talk hotkey
2025-12-08 17:24:08 +01:00
Peter Steinberger
0317eec10d
feat(mac): add push-to-talk hotkey
2025-12-08 17:24:08 +01:00
Peter Steinberger
a34ab1d36e
Webchat: clean server build and add ws types
2025-12-08 16:21:56 +00:00
Peter Steinberger
7144a0fb9b
Webchat: push updates over WebSocket
2025-12-08 16:19:33 +00:00
Peter Steinberger
421924b73f
fix: restart webchat tunnel on main actor
2025-12-08 17:14:43 +01:00
Peter Steinberger
466236e32f
fix(mac): harden remote webchat tunnel and keep it alive
2025-12-08 17:14:43 +01:00
Peter Steinberger
636f2d659f
chore: tighten webchat types and formatting
2025-12-08 17:14:43 +01:00
Peter Steinberger
838a9c000c
fix: resize overlay on text updates and keep final tint
2025-12-08 17:14:43 +01:00
Peter Steinberger
7a7c59e91a
Webchat: poll session for messages/thinking
2025-12-08 16:14:12 +00:00
Peter Steinberger
1ac6ab4428
Agent: add thinkingOnce flag
2025-12-08 16:12:24 +00:00
Peter Steinberger
dc3c82ad40
Webchat: sync thinking level with session
2025-12-08 16:10:14 +00:00
Peter Steinberger
0f0a2dddfe
chore: use 5s silence before speech, 2s after
2025-12-08 17:06:12 +01:00
Peter Steinberger
c3f955d3f1
chore: fix lint warnings and formatting
2025-12-08 17:05:27 +01:00
Peter Steinberger
7b1832bd24
chore: extend voice capture hard stop to 120s
2025-12-08 16:58:38 +01:00
Peter Steinberger
148c9533ae
chore: use 2s silence or 5s max capture
2025-12-08 16:55:08 +01:00
Peter Steinberger
df96318662
fix(mac): run remote health with pnpm under zsh
2025-12-08 16:52:42 +01:00
Peter Steinberger
d9d0be0256
fix: finalize only after full 1s silence
2025-12-08 16:52:13 +01:00
Peter Steinberger
de70d82cea
fix(mac): surface health errors instead of pending
2025-12-08 16:50:20 +01:00
Peter Steinberger
81db44f584
feat: add outcome-based dismiss animations
2025-12-08 16:49:58 +01:00
Peter Steinberger
d733d246f0
chore: remove overlay shadow/border
2025-12-08 16:45:25 +01:00
Peter Steinberger
1c5170b759
fix: animate overlay resizing on updates
2025-12-08 16:44:44 +01:00
Peter Steinberger
367526f750
feat: show partial transcripts with subdued tint
2025-12-08 16:44:00 +01:00
Peter Steinberger
7a0830de15
feat: tint partial transcripts and stabilize delays
2025-12-08 16:41:33 +01:00
Peter Steinberger
a5fbfa3748
fix: delay logic waits for post-trigger content
2025-12-08 16:38:33 +01:00
Peter Steinberger
912a7a1781
test: cover trigger trimming for voice wake
2025-12-08 16:36:53 +01:00
Peter Steinberger
563701fed8
fix: trim overlay transcript to post-trigger
2025-12-08 16:35:03 +01:00
Peter Steinberger
414889e03b
feat: add adaptive voice wake delays
2025-12-08 16:34:06 +01:00
Peter Steinberger
8d2de036d5
feat: refine voice wake overlay animations
2025-12-08 16:34:06 +01:00
Peter Steinberger
764761cfa5
feat: add voice wake overlay
2025-12-08 16:34:06 +01:00
Peter Steinberger
90a0bb5acb
feat(cli): unify relay providers and heartbeat flag
2025-12-08 16:34:06 +01:00
Peter Steinberger
0e4379f075
Webchat: cap/ persist attachments and strip data URLs
2025-12-08 14:59:26 +00:00
Peter Steinberger
968c5dc4aa
Webchat: update bundled assets after attachment support
2025-12-08 14:48:03 +00:00
Peter Steinberger
fedb15d5d0
Webchat: inline attachments to agent RPC and fix status compile
2025-12-08 14:46:33 +00:00
Peter Steinberger
ccc6bf05e8
status: read token usage from pi session logs
2025-12-08 14:46:15 +00:00
Peter Steinberger
a40e56bcb7
Docs: webchat now served in-process, no CLI spawn
2025-12-08 14:15:03 +00:00
Peter Steinberger
52453eaeff
Webchat: run agent in-process for RPC
2025-12-08 14:14:00 +00:00
Peter Steinberger
ff3337feed
Webchat: resolve static root in packaged app
2025-12-08 14:07:20 +00:00
Peter Steinberger
cd30a99fae
feat(macos): add voice wake mic picker
2025-12-08 15:05:57 +01:00
Peter Steinberger
081460e59d
macOS webchat: use relay HTTP transport directly
2025-12-08 13:12:34 +00:00
Peter Steinberger
17a6d716ad
Webchat: auto-start server and simplify config
2025-12-08 13:12:34 +00:00
Peter Steinberger
d833de793d
Split clawdis node vs mac helper commands
2025-12-08 13:26:12 +01:00
Peter Steinberger
a6ff62c79c
SSH remote uses clawdis only
2025-12-08 13:20:55 +01:00
Peter Steinberger
92457f7fab
Remote web chat tunnel and onboarding polish
2025-12-08 12:50:37 +01:00
Peter Steinberger
17fa2f4053
refactor(cli): drop tmux helpers and update help copy
2025-12-08 12:43:13 +01:00
Peter Steinberger
bce84376d3
webchat: send via http rpc endpoint and show errors
2025-12-08 12:23:45 +01:00
Peter Steinberger
be87cdddeb
webchat: surface bootstrap errors in UI
2025-12-08 12:17:39 +01:00
Peter Steinberger
dc22661744
webchat: move serving to relay loopback and tunnel from mac app
2025-12-08 11:54:30 +01:00
Peter Steinberger
dc69d20ec9
docs: outline web chat move to relay server
2025-12-08 11:25:00 +01:00
Peter Steinberger
22ed7ea3f2
build: silence grammy type errors for mac packaging
2025-12-08 11:04:17 +01:00
Peter Steinberger
2112fa919a
webchat: fetch remote sessions via CLI and log missing history
2025-12-08 01:55:09 +01:00
Peter Steinberger
f65702a8a8
chore(ci): fix lint and swiftformat failures
2025-12-08 01:48:53 +01:00
Peter Steinberger
68d19d4717
webchat: load remote history from tau fallback and send to session
2025-12-08 01:36:00 +01:00
Peter Steinberger
a6e0ec38e7
VoiceWake: capture utterance and add prefix
2025-12-08 01:35:42 +01:00
Peter Steinberger
6415ae79be
webchat: make remote mode load history and send via rpc
2025-12-08 01:27:18 +01:00
Peter Steinberger
79b76fb5f4
ui: drop default sound picker; use cli per-notification sound
2025-12-08 00:56:36 +01:00
Peter Steinberger
42012389c4
health: surface ssh output when probe fails
2025-12-08 00:52:31 +01:00
Peter Steinberger
4b5c43f080
copy: rename menu toggle to Remote Clawdis Active when remote
2025-12-08 00:41:31 +01:00
Peter Steinberger
d16e5090a6
copy: capitalize send heartbeats menu label
2025-12-08 00:40:30 +01:00
Peter Steinberger
ddbe680a58
feat(macos): add Sparkle updates and release docs
2025-12-08 00:18:16 +01:00
Peter Steinberger
2f50b57e76
ui: remove duplicate health row in General
2025-12-08 00:17:29 +01:00
Peter Steinberger
dc291fa811
ui: move Clawdis active toggle to top
2025-12-08 00:16:25 +01:00
Peter Steinberger
a1d499ed64
copy: shorten tailscale tip
2025-12-08 00:14:58 +01:00
Peter Steinberger
629f2e0043
fix: stop voice wake tester after short post-trigger silence
2025-12-07 23:43:50 +01:00
Peter Steinberger
5d321c4dac
copy: rename recognition language label
2025-12-07 23:35:58 +01:00
Peter Steinberger
9d751e0c72
ui: place health row under remote picker and improve timeout message
2025-12-07 23:34:49 +01:00
Peter Steinberger
6f8fb561c6
ui: tidy tables, links, and hide redundant voice wake forwarder
2025-12-07 23:26:28 +01:00
Peter Steinberger
1019872832
ui: move health/cli info to Debug; add single health row in General
2025-12-07 23:22:54 +01:00
Peter Steinberger
091471293d
ui: fold remote mode label into picker
2025-12-07 23:21:00 +01:00
Peter Steinberger
d7281286ba
ui: reuse compact remote card in General and hide voice wake forwarder
2025-12-07 23:20:14 +01:00
Peter Steinberger
5cfda2803d
fix: remote test uses CLI path discovery again
2025-12-07 23:12:33 +01:00
Peter Steinberger
9ee7a14685
ui: make General tab scrollable
2025-12-07 23:06:10 +01:00
Peter Steinberger
40a6574b95
ui: align voice wake forwarding with remote mode
2025-12-07 23:04:51 +01:00
Peter Steinberger
891e1388ba
style: bump onboarding height to 840px
2025-12-07 22:58:05 +01:00
Peter Steinberger
0fba7d41a6
chore: refresh webchat bundle
2025-12-07 22:57:12 +01:00
Peter Steinberger
1595fb8739
docs: move grammY research note to docs/grammy.md
2025-12-07 22:53:58 +01:00
Peter Steinberger
ebc852b358
chore: update dependencies
2025-12-07 22:53:36 +01:00
Peter Steinberger
5f5846a08b
Telegram: enable grammY throttler and webhook tests
2025-12-07 22:52:57 +01:00
Peter Steinberger
4d3d9cca2a
Add Bun bundle docs and Telegram grammY support
2025-12-07 22:47:05 +01:00
Peter Steinberger
7b77e9f9ae
macOS: surface stderr in health failure text
2025-12-07 21:37:06 +00:00
Peter Steinberger
0f74e372ba
MenuBar: fix health label age string
2025-12-07 19:03:49 +01:00
Peter Steinberger
a3b99dc309
Utilities: add age helper for menu health label
2025-12-07 19:02:50 +01:00
Peter Steinberger
d73d571f19
Launch agent: disable autostart without killing running app
2025-12-07 19:01:14 +01:00
Peter Steinberger
8a8ac1ffe6
style: increase onboarding window height
2025-12-07 19:01:14 +01:00
Peter Steinberger
d463c82c95
build: add local node bin to restart script PATH
2025-12-07 19:01:14 +01:00
Peter Steinberger
558af7a454
chore: surface helper install status in onboarding
2025-12-07 19:01:14 +01:00
Peter Steinberger
d57ebb3c94
style: enlarge onboarding window to fit full permission list
2025-12-07 19:01:14 +01:00
Peter Steinberger
855976df84
style: compact remote setup card and move advanced ssh fields
2025-12-07 19:01:14 +01:00
Peter Steinberger
6c2a8d6047
style: increase onboarding content height
2025-12-07 19:01:14 +01:00
Peter Steinberger
38a856f7ff
style: tighten onboarding hero spacing
2025-12-07 19:01:14 +01:00
Peter Steinberger
fb2a7d8cd1
VoiceWake: add escaping regression tests
2025-12-07 19:01:14 +01:00
Peter Steinberger
b3f79e5b02
macOS: fix web chat agent PATH and surface stderr
2025-12-07 17:31:14 +00:00
Peter Steinberger
1722148333
macOS: show last health result with age in menu
2025-12-07 17:23:51 +00:00
Peter Steinberger
27e96999cf
VoiceWake: document escape path and reset stale forward command
2025-12-07 18:23:34 +01:00
Peter Steinberger
7efa152418
VoiceWake: document escape path and reset stale forward command
2025-12-07 18:23:34 +01:00
Peter Steinberger
2a45455c80
feat: add remote clawd toggle
2025-12-07 18:23:34 +01:00
Peter Steinberger
c06f49cb3e
macOS: merge status row and fix webchat bundle deps
2025-12-07 17:20:42 +00:00
Peter Steinberger
b837c68df8
VoiceWake: remove python hop; use escaped literal under /bin/sh
2025-12-07 18:03:25 +01:00
Peter Steinberger
f3ebb2e9ce
test(mac): cover voice wake helpers
2025-12-07 17:56:40 +01:00
Peter Steinberger
df9f72134b
refactor(mac): split voice wake settings
2025-12-07 17:55:07 +01:00
Peter Steinberger
4ff5004d7c
webchat: bypass api key prompts in embedded mode
2025-12-07 17:55:07 +01:00
Peter Steinberger
bdf3d60148
webchat: hide model selector in embedded UI
2025-12-07 17:55:07 +01:00
Peter Steinberger
e2c6546b61
auto-reply: enrich chat status
2025-12-07 16:53:33 +00:00
Peter Steinberger
1f0ee9837b
macOS: fix health shell timeout race
2025-12-07 16:53:32 +00:00
Peter Steinberger
71072f084e
VoiceWake: send transcript via python/base64 instead of stdin
2025-12-07 17:45:43 +01:00
Peter Steinberger
98651c2a14
webchat: bundle assets with rolldown
2025-12-07 17:44:37 +01:00
Peter Steinberger
74e5e5e182
docs(mac): document privacy-off logging
2025-12-07 17:35:13 +01:00
Peter Steinberger
16f9dbfe37
VoiceWake: include ssh cmd on failure
2025-12-07 17:30:45 +01:00
Peter Steinberger
12f74de9b3
VoiceWake: pipe transcript to ssh forwarder
2025-12-07 16:59:22 +01:00
Peter Steinberger
fec49e1e28
chore(webchat): increase server logging for module load debugging
2025-12-07 16:55:49 +01:00
Peter Steinberger
9dd9bb7092
chore(webchat): add server logging and ensure buildable
2025-12-07 16:49:08 +01:00
Peter Steinberger
9c07aab2d6
voice wake: log ssh command at info level
2025-12-07 16:43:18 +01:00
Peter Steinberger
41a84cef23
chore(webchat): wait for local server and add debug logging
2025-12-07 16:39:21 +01:00
Peter Steinberger
8942e3e78d
voice wake: log full ssh command for debug
2025-12-07 16:38:49 +01:00
Peter Steinberger
040fe58693
chore: format macOS sources
2025-12-07 16:35:58 +01:00
Peter Steinberger
45398b7660
voice wake: use clean PATH (no inherited junk)
2025-12-07 16:33:56 +01:00
Peter Steinberger
f3950a5a65
feat(macos): serve web chat over localhost to avoid cors
2025-12-07 16:30:10 +01:00
Peter Steinberger
6f6c5129d1
chore: bump version to 2.0.0
2025-12-07 16:28:57 +01:00
Peter Steinberger
139697b9cd
voice wake: keep default key when identity is blank
2025-12-07 16:23:35 +01:00
Peter Steinberger
ddd459426d
voice wake: show identity not found when configured
2025-12-07 16:18:42 +01:00
Peter Steinberger
3387c135ad
Icon: add ear holes on voice wake
2025-12-07 16:15:40 +01:00
Peter Steinberger
73133b61fb
chore(macos): allow file access for web chat modules
2025-12-07 16:14:13 +01:00
Peter Steinberger
ba0f594548
voice wake: surface ssh failures (missing key/no output)
2025-12-07 16:13:40 +01:00
Peter Steinberger
f4fa9bf51a
fix(macos): load web chat from bundled html
2025-12-07 16:13:40 +01:00
Peter Steinberger
9aea85a953
General: add bottom inset to quit button
2025-12-07 15:11:47 +00:00
Peter Steinberger
f878e5e635
fix(mac): keep pnpm health output json-safe
2025-12-07 15:09:56 +00:00
Peter Steinberger
4e2fb38d62
debug: hide helper subtext while sending
2025-12-07 15:47:30 +01:00
Peter Steinberger
ee845376b5
rpc: surface raw error lines and auto-start worker
2025-12-07 15:46:26 +01:00
Peter Steinberger
75234da135
Debug: surface detailed voice send errors
2025-12-07 14:41:45 +00:00
Peter Steinberger
7dc9434aec
chore(macos): enlarge about icon
2025-12-07 15:34:44 +01:00
Peter Steinberger
5986cf4254
docs: record current rpc protocol and heartbeat toggle
2025-12-07 15:34:02 +01:00
Peter Steinberger
f6db636473
Debug: make voice wake test follow config
2025-12-07 14:33:46 +00:00
Peter Steinberger
b30db08110
feat: add heartbeat toggle with live RPC control
2025-12-07 15:32:48 +01:00
Peter Steinberger
2dbef6105d
agent: allow deliver when json output
2025-12-07 15:16:55 +01:00
Peter Steinberger
eeee9625c1
chore(macos): tighten voice wake control widths
2025-12-07 15:09:16 +01:00
Peter Steinberger
76559b352b
debug: surface ssh error details in voice test
2025-12-07 15:07:56 +01:00
Peter Steinberger
a3bf0d6002
fix(macos): honor pnpm/node when locating clawdis for health
2025-12-07 15:07:38 +01:00
Peter Steinberger
96ae0dd23a
fix(macos): handle missing clawdis CLI for health check
2025-12-07 15:03:05 +01:00
Peter Steinberger
9c9e04c5a0
debug: add voice forward test button
2025-12-07 15:00:02 +01:00
Peter Steinberger
15381c7832
ci: use macos-latest with Xcode 26.1
2025-12-07 15:00:01 +01:00
Peter Steinberger
175f929023
macOS: widen voice wake label spacing
2025-12-07 13:57:05 +00:00
Peter Steinberger
a23846b3a1
chore(macos): simplify health status menu and messaging
2025-12-07 14:54:58 +01:00
Peter Steinberger
42c74e864a
chore(macos): align recognition language row styling
2025-12-07 14:52:43 +01:00
Peter Steinberger
809f5d6d8e
chore(macos): align mic level bar width
2025-12-07 14:52:05 +01:00
Peter Steinberger
ff41a61432
chore(macos): clean up CLI helper subtext
2025-12-07 14:49:56 +01:00
Peter Steinberger
28b531593a
fix(macos): resolve clawdis path for health check
2025-12-07 14:49:18 +01:00
Peter Steinberger
4d2f4f1be3
chore(macos): make debug settings scrollable
2025-12-07 14:48:12 +01:00
Peter Steinberger
f97415755b
chore(macos): remove focus ring on about icon
2025-12-07 14:46:54 +01:00
Peter Steinberger
67fa82cf14
agent: deliver via rpc and voice forward
2025-12-07 06:05:00 +01:00
Peter Steinberger
1d38f5a4d5
Revert "fix: auto-start rpc worker for agent calls"
...
This reverts commit e70f8471a8 .
2025-12-07 05:54:47 +01:00
Peter Steinberger
e70f8471a8
fix: auto-start rpc worker for agent calls
2025-12-07 05:54:15 +01:00
Peter Steinberger
093e737af9
fix: keep launch agent alive and inject PATH
2025-12-07 05:49:59 +01:00
Peter Steinberger
1ae0b44bc5
fix(health): reveal logs alerts when missing; align actions
2025-12-07 05:46:47 +01:00
Peter Steinberger
17aeec59a3
fix: raise voice wake forward timeout to 30s
2025-12-07 05:46:05 +01:00
Peter Steinberger
b20507ef0a
chore(health): kick off health refresh at app launch
2025-12-07 05:44:09 +01:00
Peter Steinberger
753995a91d
Docs: add no-real-data rule to AGENTS
2025-12-07 04:43:25 +00:00
Peter Steinberger
67c67dd86d
Docs: swap to obviously fake phone numbers
2025-12-07 04:42:58 +00:00
Peter Steinberger
fdc0b283d7
Docs: scrub personal phone example
2025-12-07 04:40:08 +00:00
Peter Steinberger
2abc51789e
UI: streamline relay status label
2025-12-07 04:39:45 +00:00
Peter Steinberger
1190b9c278
Health: strengthen probe tests
2025-12-07 04:39:24 +00:00
Peter Steinberger
3a8e049093
chore: fix test import and lint
2025-12-07 05:38:29 +01:00
Peter Steinberger
f32a647a20
test: cover command resolver fallbacks
2025-12-07 05:38:29 +01:00
Peter Steinberger
4645f512d1
fix: reuse resolver for agent rpc launch
2025-12-07 05:38:29 +01:00
Peter Steinberger
3d89999a06
docs: add voice wake forwarding tips to agents
2025-12-07 05:38:29 +01:00
Peter Steinberger
cb5c932447
Health: CLI probe and mac UI surfacing
2025-12-07 04:38:20 +00:00
Peter Steinberger
ddf8aef4f7
Settings: move session store path to Debug
2025-12-07 04:38:08 +00:00
Peter Steinberger
2714ed503b
CLI: add health probe command
2025-12-07 04:33:22 +00:00
Peter Steinberger
78d96355dd
Settings: inline heartbeat inputs
2025-12-07 04:32:28 +00:00
Peter Steinberger
bf429b7e87
Settings: add heartbeat controls
2025-12-07 04:30:24 +00:00
Peter Steinberger
2f44046622
chore(agent): start rpc worker at launch, fail if not running
2025-12-07 05:24:54 +01:00
Peter Steinberger
fb106967bc
fix(macos): guard unavailable speech recognizer
2025-12-07 05:22:20 +01:00
Peter Steinberger
32720bd372
feat(agent): add rpc status command and tests; rpc only path
2025-12-07 05:20:50 +01:00
Peter Steinberger
fb1de5c1c6
chore(agent): drop cli fallback, rpc only for sends
2025-12-07 05:16:16 +01:00
Peter Steinberger
69cb71ad7e
feat(agent): use persistent rpc worker for agent sends
2025-12-07 05:14:45 +01:00
Peter Steinberger
0a9b98ed67
feat(cli): add stdin/stdout rpc loop for agent sends
2025-12-07 05:10:58 +01:00
Peter Steinberger
e1c4a5989b
docs: outline RPC plan for agent CLI
2025-12-07 05:08:14 +01:00
Peter Steinberger
cac988f8e2
fix(webchat): wire agent CLI send into web chat view
2025-12-07 05:04:34 +01:00
Peter Steinberger
bbe92a3a40
Mac: fix agent XPC by invoking CLI agent
2025-12-07 04:03:06 +00:00
Peter Steinberger
a489550752
feat(cli): add agent send command and wire through XPC
2025-12-07 05:00:52 +01:00
Peter Steinberger
f1dbff1dd4
fix(voicewake): log ssh/cli failure instead of staying silent
2025-12-07 04:58:57 +01:00
Peter Steinberger
55ea0f398b
test(voicewake): cover trigger matching for runtime listener
2025-12-07 04:53:59 +01:00
Peter Steinberger
38abb044d0
feat(macos): run live voice wake listener and animate ears
2025-12-07 04:52:27 +01:00
Peter Steinberger
ca4e76b34f
test: add voice wake forwarder cache coverage
2025-12-07 04:52:26 +01:00
Peter Steinberger
55e0086958
fix: harden remote voice wake CLI lookup
2025-12-07 04:43:08 +01:00
Peter Steinberger
050ebb3b19
Mac: add relay restart button in Debug
2025-12-07 03:42:50 +00:00
Peter Steinberger
31f788eb5e
CLI: allow --provider flag for login/logout (default whatsapp)
2025-12-07 03:41:27 +00:00
Peter Steinberger
f23b16db2b
build: require signing identity for mac packaging
2025-12-07 04:38:45 +01:00
Peter Steinberger
060f80c239
feat: add icon animation setting
2025-12-07 04:38:45 +01:00
Peter Steinberger
6c3d3b98b8
chore: purge warelay references
2025-12-07 03:36:57 +00:00
Peter Steinberger
21dfbd0103
feat(macos): detect installed CLI helper
2025-12-07 04:35:34 +01:00
Peter Steinberger
1a10569f6d
Logging: use /tmp/clawdis for default pino logs
2025-12-07 03:32:37 +00:00
Peter Steinberger
33396ca9c1
Mac: debug log button shows path and opens in Finder
2025-12-07 03:29:58 +00:00
Peter Steinberger
36ba1ff790
Mac: debug log button falls back to legacy path
2025-12-07 03:20:04 +00:00
Peter Steinberger
fdfcff2bb5
Mac: link Debug log button to pino log
2025-12-07 03:15:30 +00:00
Peter Steinberger
c74c1a0c5f
fix: stabilize tools action width
2025-12-07 04:13:19 +01:00
Peter Steinberger
faca83e1e8
fix: ensure remote clawdis-mac path
2025-12-07 04:12:54 +01:00
Peter Steinberger
759ab54e59
VoiceWake: ssh check also verifies remote clawdis-mac
2025-12-07 04:01:00 +01:00
Peter Steinberger
3c61524f26
Mac: allow signed CLI + same-uid XPC clients
2025-12-07 02:48:24 +00:00
Peter Steinberger
40013c2b61
fix(mac): bundle WebChat resources when packaging
2025-12-07 03:36:47 +01:00
Peter Steinberger
5d5e7393f8
docs(mac): document webchat auto-open and debug flow
2025-12-07 03:34:49 +01:00
Peter Steinberger
71c5511e6c
chore(mac): add webchat auto-open flag and verbose logging
2025-12-07 03:31:03 +01:00
Peter Steinberger
ea83982062
Docs: add clawlog helper note
2025-12-07 03:30:24 +01:00
Peter Steinberger
cdbbdcba5f
Docs: describe mac XPC setup
2025-12-07 02:27:59 +00:00
Peter Steinberger
aeb708fe07
Mac: secure XPC and register mach service via launchd
2025-12-07 02:27:17 +00:00
Peter Steinberger
78c67ed53d
Mac: stabilize XPC and voice wake handling
2025-12-07 02:09:54 +00:00
Peter Steinberger
ea37ee6cb3
feat(mac): add automation permission
2025-12-07 02:34:21 +01:00
Peter Steinberger
2e67c5a045
VoiceWake: stabilize test card height
2025-12-07 02:33:32 +01:00
Peter Steinberger
752bc5a454
VoiceWake: align mic + level rows
2025-12-07 02:32:57 +01:00
Peter Steinberger
3a4bf8f213
VoiceWake: compact SSH test row
2025-12-07 02:32:05 +01:00
Peter Steinberger
bc20664c18
tools: add clawlog helper for unified logs
2025-12-07 02:25:55 +01:00
Peter Steinberger
e27690e894
VoiceWake: log detection, hold to 1s silence, ssh log clarity
2025-12-07 02:24:18 +01:00
Peter Steinberger
bac5ac18f7
fix: gate voice wake permissions
2025-12-07 02:19:50 +01:00
Peter Steinberger
e906b87450
VoiceWake: keep listening until silence, gate enable on permissions
2025-12-07 02:18:37 +01:00
Peter Steinberger
9d0415f9e9
VoiceWake: make tab content scrollable
2025-12-07 02:17:17 +01:00
Peter Steinberger
1d807911e4
VoiceWake: better ssh target parsing and error detail
2025-12-07 02:17:17 +01:00
Peter Steinberger
f51f8ffe45
scripts: make restart clean step resilient
2025-12-07 02:17:17 +01:00
Peter Steinberger
ea9930816f
Mac: disable KeepAlive; launch toggle controls agent
2025-12-07 01:13:48 +00:00
Peter Steinberger
699cb92e86
Mac: let launch checkbox toggle launchd agent
2025-12-07 01:09:49 +00:00
Peter Steinberger
f4f4f2d314
Mac: run via launchd agent with mach service
2025-12-07 01:05:05 +00:00
Peter Steinberger
374472deda
VoiceWake: add SSH connectivity check UI
2025-12-07 02:03:54 +01:00
Peter Steinberger
b27f0dd490
Settings: keep tabs fixed, only content scrolls
2025-12-07 02:03:54 +01:00
Peter Steinberger
141d2b5626
VoiceWake: add SSH forwarder tests
2025-12-07 02:03:54 +01:00
Peter Steinberger
cf0f44823a
VoiceWake: add SSH forward target
2025-12-07 02:03:54 +01:00
Peter Steinberger
6355113af9
chore(mac): move relay status row directly under Active toggle
2025-12-07 02:03:54 +01:00
Peter Steinberger
00ef7ec522
Mac: align app version with package.json
2025-12-07 01:00:47 +00:00
Peter Steinberger
9497a4cb5a
CLI: fix --version by reading app Info.plist
2025-12-07 00:59:37 +00:00
Peter Steinberger
0f71667625
CLI: add --version flag
2025-12-07 00:55:33 +00:00
Peter Steinberger
8b20e0166d
CLI: add --help and usage
2025-12-07 00:53:22 +00:00
Peter Steinberger
567644dabd
Mac: privileged CLI helper install via osascript
2025-12-07 00:50:56 +00:00
Peter Steinberger
9ef8cdadf6
Mac: lighten tool cards
2025-12-07 00:17:54 +00:00
Peter Steinberger
c911568306
Mac: remove Tools & MCP header
2025-12-07 00:16:39 +00:00
Peter Steinberger
ce02f798e4
Mac: fix voice wake actor crash; add mic entitlement
2025-12-07 00:10:29 +00:00
Peter Steinberger
21bb2fb03f
Mac: add mic entitlement to signing helper
2025-12-06 23:52:54 +00:00
Peter Steinberger
11311d07e5
mac: tidy About metadata layout
2025-12-07 00:48:05 +01:00
Peter Steinberger
4426bf2615
Docs: note SIGN_IDENTITY for mac signing
2025-12-06 23:45:17 +00:00
Peter Steinberger
515e973964
Mac: fix permission prompt crash
2025-12-06 23:31:56 +00:00
Peter Steinberger
0a6b934ac1
mac: show build metadata in About
2025-12-07 00:30:58 +01:00
Peter Steinberger
b2e3013898
mac: add signing helper and document debug bundle
2025-12-07 00:30:58 +01:00
Peter Steinberger
757cedc233
fix: remove legacy relay references
2025-12-06 23:21:25 +00:00
Peter Steinberger
ab316b348a
docs: update relay run mode
2025-12-07 00:16:32 +01:00
Peter Steinberger
7b7c4bd116
chore: fix swiftlint after split
2025-12-07 00:14:03 +01:00
Peter Steinberger
82e751a153
macOS: split AppMain into focused modules
2025-12-07 00:10:35 +01:00
Peter Steinberger
c5c50a2141
fix(mac): bundle web chat UI deps
2025-12-07 00:05:38 +01:00
Peter Steinberger
9c32e630a0
docs: add 500 LOC cap to guardrails
2025-12-06 23:59:08 +01:00
Peter Steinberger
02e26996c1
fix(mac): run relay with cwd set to configured project root
2025-12-06 23:57:40 +01:00
Peter Steinberger
b25b72ae19
chore(mac): rename relay root label to Clawdis project root
2025-12-06 23:56:23 +01:00
Peter Steinberger
ff36375581
feat(mac): show relay attention badge without dimming paused state
2025-12-06 23:54:56 +01:00
Peter Steinberger
c9f5edbc1d
feat(mac): make relay project root configurable from Debug tab
2025-12-06 23:51:34 +01:00
Peter Steinberger
ec00e0a952
fix(mac): run pnpm from project root and set PNPM_HOME for relay
2025-12-06 23:49:59 +01:00
Peter Steinberger
51a4b86495
fix(mac): resolve relay executable via common paths and pnpm fallback
2025-12-06 23:48:44 +01:00
Peter Steinberger
c3866b7d6b
docs: document debug signing and bundle id
2025-12-06 23:46:25 +01:00
Peter Steinberger
6dafca79be
build: sign debug app and use stable bundle id
2025-12-06 23:46:19 +01:00
Peter Steinberger
7aca8d2d1c
fix(mac): harden relay spawn path and show status
2025-12-06 23:45:16 +01:00
Peter Steinberger
7daef74fc6
chore: move relay status below toggles
2025-12-06 23:44:20 +01:00
Peter Steinberger
58d0f3053d
feat(mac): show relay run indicator in menu
2025-12-06 23:43:36 +01:00
Peter Steinberger
649f644c75
chore: reorder settings tabs
2025-12-06 23:41:21 +01:00
Peter Steinberger
ad2a26611a
chore: move model reload to debug tab
2025-12-06 23:40:50 +01:00
Peter Steinberger
89bb7d0211
fix(macos): avoid voice tester crash
2025-12-06 23:39:13 +01:00
Peter Steinberger
b3564bf2b4
chore(mac): guard Darwin import for relay manager
2025-12-06 23:26:29 +01:00
Peter Steinberger
16f452cf2e
feat(macos): add tools tab installers
2025-12-06 23:25:17 +01:00
Peter Steinberger
56cedad707
chore: remove bin/warelay.js
2025-12-06 23:17:01 +01:00
Peter Steinberger
4b6325908b
feat: unify main session and icon cues
2025-12-06 23:16:23 +01:00
Peter Steinberger
460d8fc094
feat(mac): add child relay process manager
2025-12-06 22:05:14 +01:00
Peter Steinberger
c435236ceb
mac: streamline model config UI
2025-12-06 21:39:25 +01:00
Peter Steinberger
39254229a0
mac: fix notification prompt and center onboarding toggle
2025-12-06 21:38:21 +01:00
Peter Steinberger
6182b205c8
mac: fix web chat boot in WKWebView
2025-12-06 21:33:35 +01:00
Peter Steinberger
e528b439bc
build: add mac icon pipeline
2025-12-06 21:00:32 +01:00
Peter Steinberger
629140d66c
docs: document macOS Voice Wake and on-device processing
2025-12-06 05:24:27 +01:00
Peter Steinberger
46ed4f2de1
docs: clarify Voice Wake runs on-device
2025-12-06 05:23:28 +01:00
Peter Steinberger
46d55a8ada
fix: harden model catalog parsing
2025-12-06 05:21:07 +01:00
Peter Steinberger
5e6af3d732
fix: add Config tab title case
2025-12-06 05:17:57 +01:00
Peter Steinberger
0d07c58989
fix: expose Config tab in settings
2025-12-06 05:15:15 +01:00
Peter Steinberger
6f80be0653
mac: add webview debug logging
2025-12-06 05:13:33 +01:00
Peter Steinberger
1916e688a6
feat: load PI model catalog and add dropdown in Config tab
2025-12-06 05:10:21 +01:00
Peter Steinberger
07e56ddeb5
docs: note bundled web chat assets
2025-12-06 05:03:51 +01:00
Peter Steinberger
88c8009116
feat: move CLI config into its own Settings tab
2025-12-06 05:03:03 +01:00
Peter Steinberger
42d843297d
mac: bundle web chat assets
2025-12-06 05:01:28 +01:00
Peter Steinberger
15cdeeddaf
feat: add config editor for clawdis model and session store
2025-12-06 04:27:50 +01:00
Peter Steinberger
3c13a265bc
mac: add web chat bridge and docs
2025-12-06 04:14:14 +01:00
Peter Steinberger
93eec9ac3c
mac: expand settings layout and dock toggle
2025-12-06 04:11:31 +01:00
Peter Steinberger
df7dbff683
ui: align live level row with mic picker
2025-12-06 04:08:26 +01:00
Peter Steinberger
2e6265963b
chore: align lint/format configs with peekaboo defaults
2025-12-06 04:07:22 +01:00
Peter Steinberger
b88b18df93
fix: apply dock icon preference at launch
2025-12-06 04:04:23 +01:00
Peter Steinberger
fbf5333b39
chore: run formatters and lint
2025-12-06 04:03:48 +01:00
Peter Steinberger
c6e3b490f5
ci: add swiftlint/swiftformat for mac app
2025-12-06 04:02:43 +01:00
Peter Steinberger
19677f0622
ci: add macOS app build
2025-12-06 03:56:49 +01:00
Peter Steinberger
a8932c2c25
feat: add additional voice wake languages + clean locale labels
2025-12-06 03:55:47 +01:00
Peter Steinberger
f93e33d9de
fix: ignore cancellation and keep mic meter during test
2025-12-06 03:55:47 +01:00
Peter Steinberger
649e6efc4a
fix: decouple voice tester from main actor
2025-12-06 03:55:47 +01:00
Peter Steinberger
a7d3619ec4
fix: avoid audio tap isolation crash
2025-12-06 03:55:47 +01:00
Peter Steinberger
daca3a5fc9
fix: stabilize voice wake test
2025-12-06 03:55:47 +01:00
Peter Steinberger
135a52020c
fix: run speech tap and handlers on safe queues
2025-12-06 03:55:47 +01:00
Peter Steinberger
bf21ed7282
feat: add language picker for Voice Wake
2025-12-06 03:55:47 +01:00
Peter Steinberger
b5f65e3304
chore: gate Voice Wake on macOS 26
2025-12-06 03:55:47 +01:00
Peter Steinberger
45400a1758
fix: show live transcript in voice wake test
2025-12-06 03:55:47 +01:00
Peter Steinberger
acc88bc2b4
tweak: faster mic meter response
2025-12-06 03:55:47 +01:00
Peter Steinberger
98b0595275
fix: pause mic meter while running voice wake test
2025-12-06 03:55:47 +01:00
Peter Steinberger
4efecfdfa0
feat: add live mic meter to Voice Wake
2025-12-06 03:55:47 +01:00
Peter Steinberger
b5afb9d3ab
feat: add mic selection to Voice Wake settings
2025-12-06 03:55:47 +01:00
Peter Steinberger
6a1d58d4e7
mac: fix voice wake mic picker build
2025-12-06 03:55:47 +01:00
Peter Steinberger
d2a3db4c78
mac: add app icon and tidy voice picker
2025-12-06 03:55:47 +01:00
Peter Steinberger
f207788c0a
refactor: make voice wake tester an actor
2025-12-06 03:55:46 +01:00
Peter Steinberger
84b44069c8
fix: run voice wake permission callbacks off the main actor
2025-12-06 03:55:46 +01:00
Peter Steinberger
09ed3f37db
fix: keep voice wake permission callbacks on main actor
2025-12-06 03:55:46 +01:00
Peter Steinberger
f444604e7c
feat: surface mic and speech permissions
2025-12-06 03:55:46 +01:00
Peter Steinberger
e1c9885566
chore: vendor swabble and add speech usage strings
2025-12-06 03:55:46 +01:00
Peter Steinberger
4e7d905783
mac: lock onboarding page width to 640
2025-12-06 03:55:46 +01:00
Peter Steinberger
cb35e3a766
mac: add sessions tab to settings
2025-12-06 03:55:46 +01:00
Peter Steinberger
67fe5ed699
chore(mac): widen settings and keep critter static when paused
2025-12-06 03:55:46 +01:00
Peter Steinberger
e863fd78d6
CLI: compact sessions table output
2025-12-06 00:49:21 +00:00
Peter Steinberger
4ea2518e79
mac: align settings window layout
2025-12-06 01:33:28 +01:00
Peter Steinberger
b508ab240f
fix(mac): stop critter animation when paused
2025-12-06 01:29:53 +01:00
Peter Steinberger
c545ec727c
chore(mac): rely on status item disable for dimming
2025-12-06 01:27:20 +01:00
Peter Steinberger
f290b9a145
fix(mac): align restart/package to use .build
2025-12-06 01:23:54 +01:00
Peter Steinberger
fa1eb9bf25
fix(mac): rebuild into .build-local and clean cache
2025-12-06 01:21:31 +01:00
Peter Steinberger
3a32b83181
chore(mac): label toggle as Clawdis Active
2025-12-06 01:17:25 +01:00
Peter Steinberger
2e393b7d5c
docs: note trimmy-style restart and dimming
2025-12-06 01:15:42 +01:00
Peter Steinberger
12e5b8124e
chore(mac): rebuild and relaunch like trimmy
2025-12-06 01:15:01 +01:00
Peter Steinberger
26e939c1eb
fix(mac): dim menubar icon like trimmy
2025-12-06 01:07:15 +01:00
Peter Steinberger
f09390a412
mac: fix settings window size persistence
2025-12-06 00:56:06 +01:00
Peter Steinberger
3067807802
mac: trimmy-style padding and debug toggle
2025-12-06 00:55:10 +01:00
Peter Steinberger
60f4c9f5b3
mac: tighten onboarding card layout
2025-12-06 00:52:22 +01:00
Peter Steinberger
b0ecafcb8d
mac: bring onboarding layout closer to vibetunnel
2025-12-06 00:50:22 +01:00
Peter Steinberger
ddfb76e9e0
fix: bundle pi dependency and directive handling
2025-12-06 00:49:46 +01:00
Peter Steinberger
6f27f742fe
feat(mac): add critter ear/leg wiggles
2025-12-06 00:49:30 +01:00
Peter Steinberger
c1a64301ce
mac: lock settings window size
2025-12-06 00:46:24 +01:00
Peter Steinberger
1ee690e87c
mac: match trimmy about layout
2025-12-06 00:44:22 +01:00
Peter Steinberger
28e0dbc02f
fix: harden directive handling
2025-12-05 23:43:30 +00:00
Peter Steinberger
a2604a36bc
mac: tighten settings layout
2025-12-06 00:42:41 +01:00
Peter Steinberger
d031c5c7fa
mac: auto-show onboarding on first run
2025-12-06 00:40:09 +01:00
Peter Steinberger
5d01b32c10
mac: polish onboarding and lifecycle
2025-12-06 00:38:02 +01:00
Peter Steinberger
4fe651079c
fix(mac): align critter legs
2025-12-06 00:38:02 +01:00
Peter Steinberger
a573ea4aeb
chore: open settings from menu and restart packaged app
2025-12-06 00:38:02 +01:00
Peter Steinberger
13704d9da5
chore: add settings shortcut and restart packaging
2025-12-06 00:38:02 +01:00
Peter Steinberger
73a1e137e6
feat: trimmy-style settings tabs and CLI helper bundling
2025-12-06 00:38:02 +01:00
Peter Steinberger
0ec9c6c3cf
fix(mac): show critter menubar icon
2025-12-06 00:38:02 +01:00
Peter Steinberger
4aa275e13c
feat(mac): animate menubar icon
2025-12-06 00:38:02 +01:00
Peter Steinberger
b557a73c3f
feat: richer mac settings panes and template icon
2025-12-06 00:38:02 +01:00
Peter Steinberger
b66098ea20
chore: bundle mac app and custom menu icon
2025-12-06 00:38:02 +01:00
Peter Steinberger
d0cefecd0d
chore: add mac build+run helper
2025-12-06 00:38:02 +01:00
Peter Steinberger
38a4e9806f
chore: ignore mac build artifacts
2025-12-06 00:38:02 +01:00
Peter Steinberger
3c64a57c84
revert prompt-too-long fallback and keep inline directives
2025-12-05 23:18:03 +00:00
Peter Steinberger
36b0796976
fix: handle prompt-too-long by resetting session and continuing inline directives
2025-12-05 23:01:37 +00:00
Peter Steinberger
3241d81ce5
fix: allow inline directives to continue and add mixed-message test
2025-12-05 22:57:52 +00:00
Peter Steinberger
d7a188fb34
fix: broaden prompt-echo guard and add heartbeat directive test
2025-12-05 22:56:07 +00:00
Peter Steinberger
5b217b2042
fix: suppress heartbeat directive acks and add coverage
2025-12-05 22:54:17 +00:00
Peter Steinberger
4cb2a92037
fix: avoid echoing prompts when rpc returns empty
2025-12-05 22:52:21 +00:00
Peter Steinberger
24d90c17c2
fix: ignore directives inside history blocks
2025-12-05 22:49:41 +00:00
Peter Steinberger
c95c6d72e9
test: cover directive parsing and abort/restart prefixes
2025-12-05 22:29:49 +00:00
Peter Steinberger
99b174f495
fix: avoid directive hits inside URLs and add tests
2025-12-05 22:28:36 +00:00
Peter Steinberger
5949ef0e2c
chore: rename package to clawdis
2025-12-05 23:19:46 +01:00
Peter Steinberger
d75d64df64
chore: ignore macOS .DS_Store globally
2025-12-05 23:19:04 +01:00
Peter Steinberger
a5164df293
feat: add mac companion app
2025-12-05 23:18:47 +01:00
Peter Steinberger
690113dd73
Add bundled pi default and session token reporting
2025-12-05 23:18:43 +01:00
Peter Steinberger
fe87160b19
chore: add system marker to directives and abort
2025-12-05 21:37:11 +00:00
Peter Steinberger
fffe1be521
docs: note directive short-circuit
2025-12-05 21:30:01 +00:00
Peter Steinberger
dc02bcee74
fix: normalize directive triggers and short-circuit
2025-12-05 21:29:41 +00:00
Peter Steinberger
e7a9313135
chore: remove twilio and expand pi cli detection
2025-12-05 21:13:23 +00:00
Peter Steinberger
5492845659
feat: stream turn completions and tighten rpc timeout
2025-12-05 21:13:17 +00:00
Peter Steinberger
29dfe89137
chore: redact long texts in web logs
2025-12-05 19:21:23 +00:00
Peter Steinberger
0da3f84a2e
fix: ignore rpc toolcall deltas to avoid duplicate replies
2025-12-05 19:16:03 +00:00
Peter Steinberger
c25b0c1a66
docs: update for web-only pi rpc
2025-12-05 19:04:09 +00:00
Peter Steinberger
7c7314f673
chore: drop twilio and go web-only
2025-12-05 19:03:59 +00:00
Peter Steinberger
869cc3d497
Route pi agent prompts via RPC stdin
2025-12-05 18:34:05 +00:00
Peter Steinberger
f315bf074b
fix: harden pi rpc prompt handling
2025-12-05 18:24:45 +00:00
Peter Steinberger
d33f9ddf44
docs: add repo link to homepage
2025-12-05 17:51:11 +00:00
Peter Steinberger
fcf0c28132
chore: make pi-only rpc with fixed sessions
2025-12-05 17:50:02 +00:00
Peter Steinberger
b3e50cbb33
Switch to clawdis RPC mode and complete rebrand
2025-12-05 17:22:53 +00:00
Peter Steinberger
20cb709ae3
chore: organize imports after rebrand
2025-12-04 18:02:51 +00:00
Peter Steinberger
916a41ed60
branding: default to clawdis paths and launchd label
2025-12-04 18:01:30 +00:00
Peter Steinberger
9797a9993a
docs: document agent CLI and changelog
2025-12-04 17:55:38 +00:00
Peter Steinberger
04ce98148d
web: fix mentioned JID extraction typing
2025-12-04 17:54:51 +00:00
Peter Steinberger
34eb75f634
auto-reply: honor /new after timestamp prefixes
2025-12-04 17:54:20 +00:00
Peter Steinberger
05b76281f7
CLI: add agent command for direct agent runs
2025-12-04 17:54:20 +00:00
Eng. Juan Combetto
4a35bcec21
fix: resolve lint errors (unused vars, imports, formatting)
...
- Prefix unused test variables with underscore
- Remove unused piSpec import and idleMs class member
- Fix import ordering and code formatting
2025-12-04 16:15:17 +00:00
Eng. Juan Combetto
518af0ef24
config: support clawdis.json path for rebranding
...
- Add CONFIG_PATH_CLAWDIS (~/.clawdis/clawdis.json) as preferred path
- Keep CONFIG_PATH_LEGACY (~/.warelay/warelay.json) for backward compatibility
- Update loadConfig() to check clawdis.json first, fallback to warelay.json
- Fix TypeScript type error in extractMentionedJids (null handling)
Part of the warelay → clawdis rebranding effort.
2025-12-04 16:15:17 +00:00
Peter Steinberger
a155ec0599
auto-reply: handle group think/verbose directives
2025-12-04 02:29:32 +00:00
Peter Steinberger
80979cf4d0
🦞 Add backlinks to clawd.me, soul.md, steipete.me
2025-12-03 15:46:29 +00:00
Peter Steinberger
a27ee2366e
🦞 Rebrand to CLAWDIS - add docs, update README
...
- New README with CLAWDIS branding
- docs/index.md - Main landing page
- docs/configuration.md - Config guide
- docs/agents.md - Agent integration guide
- docs/security.md - Security lessons (including the find ~ incident)
- docs/troubleshooting.md - Debug guide
- docs/lore.md - The origin story
EXFOLIATE!
2025-12-03 15:45:43 +00:00
Peter Steinberger
7bc56d7cfe
test: cover verbose directive in group batches
2025-12-03 15:45:43 +00:00
Peter Steinberger
088bdb3313
fix: allow directive-only toggles inside group batches
2025-12-03 15:45:43 +00:00
Peter Steinberger
89d49cd925
chore: bump version to 1.4.0
2025-12-03 15:45:43 +00:00
Peter Steinberger
84f8d8733e
docs: note media-only mention fix
2025-12-03 15:45:43 +00:00
Peter Steinberger
07f323222b
fix(web): capture mentions from media captions
2025-12-03 15:45:43 +00:00
Peter Steinberger
a321bf1a90
fix(web): surface media fetch failures
2025-12-03 15:45:43 +00:00
Peter Steinberger
92a0763a74
changelog: note verbose tool emoji/previews
2025-12-03 15:45:43 +00:00
Peter Steinberger
e878780808
auto-reply: single emoji per verbose tool line
2025-12-03 15:45:43 +00:00
Peter Steinberger
cb5f1fa99d
auto-reply: emoji + result preview for verbose tool calls
2025-12-03 15:45:43 +00:00
Peter Steinberger
b55ac994ea
feat(web): prime group sessions with member roster
2025-12-03 15:45:43 +00:00
Peter Steinberger
3a8d6b80e0
auto-reply: surface tool args from rpc start events
2025-12-03 15:45:43 +00:00
Peter Steinberger
3354a68373
Create CNAME
2025-12-03 16:44:03 +01:00
Peter Steinberger
edc894f6c7
fix(web): annotate group replies with sender
2025-12-03 13:25:34 +00:00
Peter Steinberger
f68714ec8e
fix(web): unwrap ephemeral/view-once and keep mentions
2025-12-03 13:15:46 +00:00
Peter Steinberger
7be9352a3a
test(web): ensure group messages carry sender + bypass allowFrom
2025-12-03 13:12:05 +00:00
Peter Steinberger
3a782b6ace
fix(web): let group pings bypass allowFrom
2025-12-03 13:11:01 +00:00
Peter Steinberger
47d0b6fc14
changelog: note logging capture and verbose trace
2025-12-03 13:09:29 +00:00
Peter Steinberger
8204351d67
fix(web): allow group replies past allowFrom
2025-12-03 13:08:54 +00:00
Peter Steinberger
4c3635a7c0
logging: route console output into pino
2025-12-03 13:07:47 +00:00
Peter Steinberger
7ea43b0145
fix(web): detect self number mentions in group chats
2025-12-03 12:43:20 +00:00
Peter Steinberger
6afe6f4ecb
feat(web): add group chat mention support
2025-12-03 12:35:18 +00:00
Peter Steinberger
273f2b61d0
Docs: document /restart WhatsApp command
2025-12-03 12:16:51 +00:00
Peter Steinberger
0824873ffb
Add /restart WhatsApp command to restart warelay
2025-12-03 12:14:32 +00:00
Peter Steinberger
8f99b13305
Pi: stream tool results faster (0.5s, flush after 5)
2025-12-03 12:08:58 +00:00
Peter Steinberger
9253702966
Pi: stream assistant text during RPC runs
2025-12-03 11:50:49 +00:00
Peter Steinberger
3958450223
Tau RPC: resolve on agent_end or exit
2025-12-03 11:34:00 +00:00
Peter Steinberger
cc596ef011
Pi: resume Tau sessions with --continue
2025-12-03 11:33:51 +00:00
Peter Steinberger
8220b11770
Tau RPC: wait for agent_end when tools run
2025-12-03 11:29:12 +00:00
Peter Steinberger
62c54cd47c
Web: simplify logout message
2025-12-03 11:04:12 +00:00
Peter Steinberger
e34d0d69aa
Chore: satisfy lint after tool-meta refactor
2025-12-03 10:42:10 +00:00
Peter Steinberger
597e7e6f13
Refactor: extract tool meta formatter + debouncer
2025-12-03 10:30:01 +00:00
Peter Steinberger
b460fd61bd
Verbose: shorten meta paths when aggregating
2025-12-03 10:26:41 +00:00
Peter Steinberger
c9b5df8184
Verbose: collapse tool meta paths by directory
2025-12-03 10:24:41 +00:00
Peter Steinberger
341ecf3bbe
Docs: note 1s tool coalescing window
2025-12-03 10:19:10 +00:00
Peter Steinberger
b6b5144ddf
Verbose: slow tool batch window to 1s
2025-12-03 10:13:02 +00:00
Peter Steinberger
deac5ff585
Verbose: shorten home paths in tool meta
2025-12-03 10:12:27 +00:00
Peter Steinberger
38a03ff2c8
Verbose: batch rapid tool results
2025-12-03 10:11:41 +00:00
Peter Steinberger
527bed2b53
Verbose: include tool arg metadata in prefixes
2025-12-03 09:57:41 +00:00
Peter Steinberger
318166f8b0
Verbose: send tool result metadata only
2025-12-03 09:40:05 +00:00
Peter Steinberger
394c751d7d
Tau RPC: resolve on agent_end
2025-12-03 09:39:26 +00:00
Peter Steinberger
86d707ad51
Docs: note streaming verbose tool results
2025-12-03 09:22:43 +00:00
Peter Steinberger
c3792db0e5
Auto-reply: stream verbose tool results via tau rpc
2025-12-03 09:21:31 +00:00
Peter Steinberger
16e42e6d6d
Auto-reply: show tool results before main reply in verbose mode
2025-12-03 09:14:10 +00:00
Peter Steinberger
53c1674382
Chore: format + lint fixes
2025-12-03 09:09:34 +00:00
Peter Steinberger
85917d4769
Docs: mention verbose hints
2025-12-03 09:08:03 +00:00
Peter Steinberger
ae0d35c727
Auto-reply: add verbose session hint
2025-12-03 09:07:17 +00:00
Peter Steinberger
086dd284d6
Auto-reply: add /verbose directives and tool result replies
2025-12-03 09:04:37 +00:00
Peter Steinberger
8ba35a2dc3
Auto-reply: treat prefixed think directives as directive-only
2025-12-03 08:57:30 +00:00
Peter Steinberger
48dfb1c8ca
Auto-reply: ack think directives
2025-12-03 08:54:38 +00:00
Peter Steinberger
5a83a44112
Docs: document thinking levels
2025-12-03 08:45:30 +00:00
Peter Steinberger
58520859e5
Auto-reply: add thinking directives
2025-12-03 08:45:23 +00:00
Peter Steinberger
4faba0fe8b
Changelog: heartbeat array handling
2025-12-03 01:03:59 +00:00
Peter Steinberger
c4b0155cc2
Format: align thinking helpers
2025-12-03 01:02:10 +00:00
Peter Steinberger
38b18202fc
Heartbeat: guard optional heartbeatCommand
2025-12-03 00:45:27 +00:00
Peter Steinberger
0f17a7d828
Heartbeat: normalize reply arrays for twilio/web
2025-12-03 00:43:28 +00:00
Peter Steinberger
9da5b9f4bb
Heartbeat: normalize array replies
2025-12-03 00:40:19 +00:00
Peter Steinberger
a7fdc7b992
Auto-reply: allow array payloads in signature
2025-12-03 00:35:57 +00:00
Peter Steinberger
f519e22e6d
CI: fix command-reply payload typing
2025-12-03 00:33:58 +00:00
Peter Steinberger
ecac4dd72a
Auto-reply: format and lint fixes
2025-12-03 00:30:05 +00:00
Peter Steinberger
b6c45485bc
Auto-reply: smarter chunking breaks
2025-12-03 00:25:01 +00:00
Peter Steinberger
ec46932259
web: handle multi-payload replies
2025-12-02 23:46:11 +00:00
Peter Steinberger
10182f1182
limits: chunk replies for twilio/web
2025-12-02 23:10:16 +00:00
Peter Steinberger
cfaec9d608
auto-reply: support multi-text RPC outputs
2025-12-02 23:03:55 +00:00
Peter Steinberger
0f6157a49d
logging: emit agent/session meta at command start
2025-12-02 21:30:28 +00:00
Peter Steinberger
1df6373cb1
revert: mark system prompt sent on first turn
2025-12-02 21:23:56 +00:00
Peter Steinberger
ea32cd85fe
chore: cut 1.3.1 in changelog
2025-12-02 21:13:47 +00:00
Peter Steinberger
716524c151
docs: note media cleanup and tau rpc typing
2025-12-02 21:13:21 +00:00
Peter Steinberger
96722bba08
ci: fix lint and tau rpc typing
2025-12-02 21:12:51 +00:00
Peter Steinberger
4e20a20927
fix(media): clean up files after response finishes
2025-12-02 21:10:18 +00:00
Peter Steinberger
a0d1004909
test(media): add redirect coverage and update changelog
2025-12-02 21:09:26 +00:00
Peter Steinberger
ccab950d16
Merge branch 'fix/media-replies'
2025-12-02 21:07:45 +00:00
Peter Steinberger
2018c90ae2
chore: tidy claude prompt and drop npm lock
2025-12-02 21:07:37 +00:00
Joao Lisboa
793360c5bb
style: fix biome formatting
2025-12-02 21:07:13 +00:00
Joao Lisboa
d8b1a38350
style: fix biome lint errors
2025-12-02 21:07:13 +00:00
Joao Lisboa
499a3e3227
style: fix biome formatting
2025-12-02 21:07:13 +00:00
Joao Lisboa
73a9fdca2a
fix: send Claude identity prefix on first session message
...
The systemSent variable was being set to true before being passed to
runCommandReply, causing the identity prefix to never be injected.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-12-02 21:07:13 +00:00
Joao Lisboa
06dd9b8ed8
fix: follow redirects when downloading Twilio media
...
node:https request() doesn't follow redirects by default, causing
Twilio media URLs (which 302 to CDN) to save placeholder/metadata
instead of actual images.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-12-02 21:07:13 +00:00
Joao Lisboa
a86cb932cf
chore: user-agnostic Claude identity and tests
...
- Use ~/Clawd instead of hardcoded /Users/steipete/clawd
- Add MEDIA: syntax instructions to identity prefix
- Update tests to check for 'scratchpad' instead of specific path
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-12-02 21:07:13 +00:00
Joao Lisboa
2fae0a9f47
fix: media serving and id consistency
...
- server.ts: Replace sendFile with manual readFile+send to fix
NotFoundError when serving media (sendFile failed even after stat)
- store.ts: Return id with file extension so it matches actual filename
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-12-02 21:07:13 +00:00
Joao Lisboa
2ec9192010
fix: use export type for type-only re-exports
...
Fixes build error with isolatedModules.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-12-02 21:06:27 +00:00
Peter Steinberger
202eff984d
docs: update agent guidance and changelog
2025-12-02 20:10:43 +00:00
Peter Steinberger
b172b538fc
perf(pi): reuse tau rpc for command auto-replies
2025-12-02 20:09:51 +00:00
Peter Steinberger
a34271adf9
chore: credit media fix contributor
2025-12-02 18:38:02 +00:00
Peter Steinberger
2cf134668c
fix(media): block symlink traversal
2025-12-02 18:37:15 +00:00
Joao Lisboa
b94b220156
Fix path traversal vulnerability in media server
...
The /media/:id endpoint was vulnerable to path traversal attacks.
Since this endpoint is exposed via Tailscale Funnel (unlike the
WhatsApp webhook which requires Twilio signature validation),
attackers could directly request paths like /media/%2e%2e%2fwarelay.json
to access sensitive files in ~/.warelay/ (e.g. warelay.json), or even
escape further to the user's home directory via multiple ../ sequences.
Fix: validate resolved paths stay within the media directory.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-12-02 19:33:21 +01:00
Peter Steinberger
26921cbe68
chore(logs): rotate daily and prune after 24h
2025-12-02 17:11:43 +00:00
Peter Steinberger
8844674825
chore(security): purge session store on logout
2025-12-02 16:33:44 +00:00
Peter Steinberger
c9fbe2cb92
chore(security): harden ipc socket
2025-12-02 16:09:40 +00:00
Peter Steinberger
2b941ccc93
Changelog: note multi-agent and batching
...
Co-authored-by: RealSid08 <RealSid08@users.noreply.github.com >
2025-12-02 11:11:50 +00:00
Peter Steinberger
ed080ae988
Tests: cover agents and fix web defaults
...
Co-authored-by: RealSid08 <RealSid08@users.noreply.github.com >
2025-12-02 11:08:00 +00:00
Peter Steinberger
f31e89d5af
Agents: add pluggable CLIs
...
Co-authored-by: RealSid08 <RealSid08@users.noreply.github.com >
2025-12-02 11:07:46 +00:00
Peter Steinberger
52c311e47f
chore: bump version to 1.3.0
2025-12-02 07:54:49 +00:00
Peter Steinberger
5b54d4de7a
feat(web): batch inbound messages
2025-12-02 07:54:13 +00:00
Peter Steinberger
96152f6577
Add typing indicator after IPC send
...
After sending via IPC, automatically show "composing" indicator so
user knows more messages may be coming from the running session.
2025-12-02 06:58:17 +00:00
Peter Steinberger
e881b3c5de
Document exclamation mark escaping workaround for Claude Code
...
Add symlink CLAUDE.md -> AGENTS.md for Claude Code compatibility.
2025-12-02 06:52:56 +00:00
Peter Steinberger
e86b507da7
Add IPC to prevent Signal session corruption from concurrent connections
...
When the relay is running, `warelay send` and `warelay heartbeat` now
communicate via Unix socket IPC (~/.warelay/relay.sock) to send messages
through the relay's existing WhatsApp connection.
Previously, these commands created new Baileys sockets that wrote to the
same auth state files, corrupting the Signal session ratchet and causing
the relay's subsequent sends to fail silently.
Changes:
- Add src/web/ipc.ts with Unix socket server/client
- Relay starts IPC server after connecting
- send command tries IPC first, falls back to direct
- heartbeat uses sendWithIpcFallback helper
- inbound.ts exposes sendMessage on listener object
- Messages sent via IPC are added to echo detection set
2025-12-02 06:31:07 +00:00
Peter Steinberger
2fc3a822c8
web: isolate session fixtures and skip heartbeat when busy
2025-12-02 06:17:16 +00:00
Peter Steinberger
1b0e1edb08
Update changelog with error message and test isolation fixes
2025-12-02 05:59:31 +00:00
Peter Steinberger
d107b79c63
Fix test corrupting production sessions.json
...
The test 'falls back to most recent session when no to is provided' was
using resolveStorePath() which returns the real ~/.warelay/sessions.json.
This overwrote production session data with test values, causing session
fragmentation issues.
Changed to use a temp directory like other tests.
2025-12-02 05:54:31 +00:00
Peter Steinberger
c5ab442f46
Fix empty result JSON dump and missing heartbeat prefix
...
Bug fixes:
- Empty result field handling: Changed truthy check to explicit type
check (`typeof parsed?.text === "string"`) in command-reply.ts.
Previously, Claude CLI returning `result: ""` would cause raw JSON
to be sent to WhatsApp.
- Response prefix on heartbeat: Apply `responsePrefix` to heartbeat
alert messages in runReplyHeartbeat, matching behavior of regular
message handler.
2025-12-02 04:29:17 +00:00
Peter Steinberger
c5677df56e
Increase watchdog timeout to 30 minutes
...
Changed from 10 to 30 minutes to avoid false positives when
heartbeatMinutes is set to 10. The watchdog should be significantly
longer than the heartbeat interval to account for:
- Network latency
- Slow command responses
- Brief connection hiccups
With heartbeatMinutes=10, a 30-minute watchdog gives 3x buffer before
triggering auto-restart.
2025-11-30 18:03:19 +00:00
Peter Steinberger
21ba0fb8a4
Fix test isolation to prevent loading real user config
...
Tests were picking up real ~/.warelay/warelay.json with emojis and
prefixes (like "🦞 "), causing test assertions to fail. Added proper
config mocks to all test files.
Changes:
- Mock loadConfig() in index.core.test.ts, inbound.media.test.ts,
monitor-inbox.test.ts
- Update test-helpers.ts default mock to disable all prefixes
- Tests now use clean config: no messagePrefix, no responsePrefix,
no timestamp, allowFrom=["*"]
This ensures tests validate core behavior without user-specific config.
The responsePrefix feature itself is already fully config-driven - this
only fixes test isolation.
2025-11-30 18:00:57 +00:00
Peter Steinberger
69319a0569
Add auto-recovery from stuck WhatsApp sessions
...
Fixes issue where unauthorized messages from +212652169245 (5elements spa)
triggered Bad MAC errors and silently killed the event emitter, preventing
all future message processing.
Changes:
1. Early allowFrom filtering in inbound.ts - blocks unauthorized senders
before they trigger encryption errors
2. Message timeout watchdog - auto-restarts connection if no messages
received for 10 minutes
3. Health monitoring in heartbeat - warns if >30 min without messages
4. Mock loadConfig in tests to handle new dependency
Root cause: Event emitter stopped firing after Bad MAC errors from
decryption attempts on messages from unauthorized senders. Connection
stayed alive but all subsequent messages.upsert events silently failed.
2025-11-30 17:53:32 +00:00
Peter Steinberger
37d8e55991
Skip responsePrefix for HEARTBEAT_OK responses
...
Preserve exact match so warelay recognizes heartbeat responses
and doesn't send them as messages.
2025-11-29 06:02:21 +00:00
Peter Steinberger
8d20edb028
Simplify timestampPrefix: bool or timezone string, default true
...
- timestampPrefix: true (UTC), false (off), or 'America/New_York'
- Removed separate timestampTimezone option
- Default is now enabled (true/UTC) unless explicitly false
2025-11-29 05:29:29 +00:00
Peter Steinberger
7564c4e7f4
Generalize prefix config: messagePrefix + responsePrefix
...
Replaces samePhoneMarker/samePhoneResponsePrefix with:
- messagePrefix: prefix for all inbound messages
- Default: '[warelay]' if no allowFrom, else ''
- responsePrefix: prefix for all outbound replies
Also adds timestamp options:
- timestampPrefix: boolean to enable [Nov 29 06:30] format
- timestampTimezone: IANA timezone (default UTC)
Updated README with new config table entries.
2025-11-29 05:27:58 +00:00
Peter Steinberger
26e02a9b8b
Add timestampPrefix config for datetime awareness
...
New config options:
- timestampPrefix: boolean - prepend timestamp to messages
- timestampTimezone: string - IANA timezone (default: UTC)
Format: [Nov 29 06:30] - compact but informative
Helps AI assistants stay aware of current date/time.
2025-11-29 05:25:53 +00:00
Peter Steinberger
25ec133574
Add samePhoneResponsePrefix config option
...
Automatically prefixes responses with a configurable string when in
same-phone mode. This helps distinguish bot replies from user messages
in the same chat bubble.
Example config:
"samePhoneResponsePrefix": "🦞 "
Will prefix all same-phone replies with the lobster emoji.
2025-11-29 05:24:01 +00:00
Peter Steinberger
d88ede92b9
feat: same-phone mode with echo detection and configurable marker
...
Adds full support for self-messaging setups where you chat with yourself
and an AI assistant replies in the same WhatsApp bubble.
Changes:
- Same-phone mode (from === to) always allowed, bypasses allowFrom check
- Echo detection via bounded Set (max 100) prevents infinite loops
- Configurable samePhoneMarker in config (default: "[same-phone]")
- Messages prefixed with marker so assistants know the context
- fromMe filter removed from inbound.ts (echo detection in auto-reply)
- Verbose logging for same-phone detection and echo skips
Tests:
- Same-phone allowed without/despite allowFrom configuration
- Body prefixed only when from === to
- Non-same-phone rejected when not in allowFrom
2025-11-29 04:52:21 +00:00
Peter Steinberger
5bafe9483d
chore: release 1.2.2
2025-11-28 08:17:22 +01:00
Peter Steinberger
4e3663b4d4
chore: move heartbeat notes to unreleased 1.2.2
2025-11-28 08:14:51 +01:00
Peter Steinberger
12d7be7cad
feat(heartbeat): allow manual message and dry-run for web/twilio
2025-11-28 08:14:07 +01:00
Peter Steinberger
84f2595349
docs: note changelog not needed for pure tests
2025-11-28 08:13:59 +01:00
Peter Steinberger
c11abc1134
chore: release 1.2.1
2025-11-28 08:11:07 +01:00
Peter Steinberger
f63bdda628
docs: document mime-first media handling
2025-11-28 08:07:53 +01:00
Peter Steinberger
7d6a4f5204
fix(media): sniff mime and keep extensions
2025-11-28 08:07:53 +01:00
Peter Steinberger
f871869c79
Fix broken link: claude-config.md -> clawd.md
2025-11-28 05:19:43 +00:00
Peter Steinberger
8ebe72951f
docs: Add Twitter automation and music recognition examples
...
- Added Twitter automation patterns using Peekaboo + AppleScript
- Documented JS injection for reliable button clicks on Twitter's dynamic UI
- Added audd.io music recognition API example
- These are the techniques Clawd uses to reply to tweets autonomously
2025-11-27 21:00:28 +00:00
Peter Steinberger
8d4b31a301
Expand heartbeat capabilities in docs
2025-11-27 19:09:30 +01:00
Peter Steinberger
8912b3e035
Rename claude-config.md to clawd.md, update credits
...
- Renamed docs/claude-config.md → docs/clawd.md
- Credits now include Clawd (they/them) as co-author
2025-11-27 19:07:35 +01:00
Peter Steinberger
f5d7057042
Add browser-tools CLI and example tweets to docs
...
- Added browser-tools to CLI tools table (lightweight DevTools CLI)
- Added browser-tools usage section for web scraping
- Added "See It In Action" section with 3 example tweets
- Links to agent-scripts repo
2025-11-27 18:59:01 +01:00
Peter Steinberger
6d7e620430
Release 1.2.0
2025-11-27 18:52:26 +01:00
Peter Steinberger
0cc732dce3
Docs: refresh 1.2.0 changelog; fix webhook host import
2025-11-27 18:46:46 +01:00
Peter Steinberger
8acd82aa0d
Add gowa WhatsApp MCP to power user add-ons
2025-11-27 18:45:05 +01:00
Peter Steinberger
7377c676fd
Add WhatsApp screenshot to claude-config.md
...
Shows Clawd in action in the "Meet Clawd" section
2025-11-27 18:43:24 +01:00
Peter Steinberger
9b3c4db10d
Heartbeat defaults and ws guard; format
2025-11-27 18:37:30 +01:00
Peter Steinberger
49ada54f6d
Docs: add useful CLI tools section (spotify-player, TTS, etc.)
2025-11-27 18:33:38 +01:00
Peter Steinberger
c43cdc5ac3
Docs: new Clawd session intro with personality and powers
2025-11-27 18:32:47 +01:00
Peter Steinberger
e1bd9976b3
Docs: explain two-phone setup for dedicated AI number
2025-11-27 18:29:41 +01:00
Peter Steinberger
a888564251
Docs: mention Claude Code reuses existing subscription
2025-11-27 18:28:51 +01:00
Peter Steinberger
e2ccde6434
Fix: warelay lowercase
2025-11-27 18:27:09 +01:00
Peter Steinberger
e88ff78816
Add Peekaboo and mcporter links to recommended tools
2025-11-27 18:26:40 +01:00
Peter Steinberger
5bc151fdca
Redact phone number from example config
2025-11-27 18:24:12 +01:00
Peter Steinberger
f0a5cdc6e4
Add warning disclaimer to claude-config.md
2025-11-27 18:23:56 +01:00
Peter Steinberger
85f53a4174
Fix WebSocket crash + heartbeat default 10min + docs refresh
...
- Wrap Baileys connection.update listeners in try-catch to prevent
unhandled exceptions from crashing the relay process
- Add WebSocket-level error handlers in session.ts
- Add global unhandledRejection/uncaughtException handlers in index.ts
- Make listener.onClose error-safe with .catch() in auto-reply.ts
- Change default heartbeat from 30min to 10min
- Rewrite claude-config.md with personality, better explain personal
assistant features, add recommended MCPs section
2025-11-27 18:21:14 +01:00
Peter Steinberger
549ad272fc
Docs: link Clawd setup and current config
2025-11-27 18:17:17 +01:00
Peter Steinberger
537348d995
Update README.md
2025-11-27 18:14:54 +01:00
Peter Steinberger
d4580d1a31
Fix CI: type gaps and hasMedia check
2025-11-27 18:14:20 +01:00
Peter Steinberger
93a103dde5
Tests: cover identity prefix gating
2025-11-27 04:40:03 +01:00
Peter Steinberger
9e6ad97cfb
Claude prompt: only prepend on first turn
2025-11-27 03:53:13 +01:00
Peter Steinberger
8d995a8529
Heartbeat: add ultrathink marker
2025-11-27 03:15:51 +01:00
Peter Steinberger
f869cd4b79
Heartbeat: shorten prompt to token
2025-11-27 02:48:23 +01:00
Peter Steinberger
26b087c1b4
Heartbeat: honor session override
2025-11-26 18:32:25 +01:00
Peter Steinberger
63bf4683c5
Heartbeat: allow session-id override (with test)
2025-11-26 18:28:02 +01:00
Peter Steinberger
73456a68d7
Fix heartbeat CLI import for recipients resolution
2025-11-26 18:22:28 +01:00
Peter Steinberger
aa6637b47a
Heartbeat: session-id override and safer fallback
2025-11-26 18:19:54 +01:00
Peter Steinberger
8f6e43fd66
Changelog: bump to 1.2.0 unreleased
2025-11-26 18:18:13 +01:00
Peter Steinberger
ebce6ef263
Docs: show --all heartbeat example
2025-11-26 18:17:30 +01:00
Peter Steinberger
c20a266a11
Heartbeat: harden targeting and support lid mapping
2025-11-26 18:15:57 +01:00
Marcus Neves
b825f141f3
fix: add @lid format support and allowFrom wildcard handling
...
- Add support for WhatsApp Linked ID (@lid) format in jidToE164()
- Use existing lid-mapping-*_reverse.json files for LID resolution
- Fix allowFrom wildcard '*' to actually allow all senders
- Maintain backward compatibility with @s.whatsapp.net format
Fixes issues where:
- Messages from newer WhatsApp versions are silently dropped
- allowFrom: ['*'] configuration doesn't work as documented
2025-11-26 18:03:12 +01:00
Peter Steinberger
7e5b3958cc
CLI: rename heartbeat tmux helper and log file path
2025-11-26 18:00:23 +01:00
Peter Steinberger
deded848ee
Heartbeat: add relay helper and fix CLI tests
2025-11-26 17:49:34 +01:00
Peter Steinberger
117161e6ff
docs: document heartbeat idle override and tests
2025-11-26 17:31:56 +01:00
Peter Steinberger
98d52edcc9
test: cover heartbeat skip preserving session timestamp
2025-11-26 17:29:12 +01:00
Peter Steinberger
135d930c99
feat: add heartbeat idle override and preserve session freshness
2025-11-26 17:26:17 +01:00
Peter Steinberger
e6c78df975
chore: add verbose heartbeat session logging
2025-11-26 17:21:59 +01:00
Peter Steinberger
3749797434
chore: log heartbeat session snapshot
2025-11-26 17:20:48 +01:00
Peter Steinberger
507ed25289
chore: log heartbeat fallback and add test
2025-11-26 17:12:28 +01:00
Peter Steinberger
0d5e5f8dee
fix: heartbeat falls back to last session contact
2025-11-26 17:08:43 +01:00
Peter Steinberger
3998933b30
docs: document heartbeat triggers
2025-11-26 17:05:09 +01:00
Peter Steinberger
271004bf60
feat: add heartbeat cli and relay trigger
2025-11-26 17:04:43 +01:00
Peter Steinberger
c9e2d69bfb
docs: open 1.1.x unreleased section
2025-11-26 03:33:44 +01:00
Peter Steinberger
c194247dab
test(auto-reply): cover cwd timeout hint and queue meta
2025-11-26 03:03:13 +01:00
Peter Steinberger
a48420d85f
docs: finalize web refactor and coverage
2025-11-26 02:54:43 +01:00
Peter Steinberger
5c66e8273b
chore: update changelog and surface web relay settings
2025-11-26 02:43:24 +01:00
Peter Steinberger
5992e629c3
web: add reconnect logging + troubleshooting doc
2025-11-26 02:41:10 +01:00
Peter Steinberger
765d67cd18
web: extract reconnect helpers and add tests
2025-11-26 02:39:31 +01:00
Peter Steinberger
baf20af17f
web: add heartbeat and bounded reconnect tuning
2025-11-26 02:34:43 +01:00
Peter Steinberger
e482e7768b
chore: commit pending cli/web test tweaks
2025-11-26 02:19:45 +01:00
Peter Steinberger
8682352edb
docs: trim changelog to user-facing auto-reply changes
2025-11-26 02:19:21 +01:00
Peter Steinberger
ef1222ff31
chore: drop refactor note
2025-11-26 02:18:57 +01:00
Peter Steinberger
0145f3a585
docs: note auto-reply helper split
2025-11-26 02:18:39 +01:00
Peter Steinberger
4a8bb56a1e
chore(auto-reply): include cwd in timeout message
2025-11-26 02:18:16 +01:00
Peter Steinberger
ce5b02a9ad
test(auto-reply): add helper coverage and docs
2025-11-26 02:09:50 +01:00
Peter Steinberger
5c8ce41e12
refactor(auto-reply): split reply helpers
2025-11-26 02:03:51 +01:00
Peter Steinberger
a2586b8b06
feat(web): add logout command and tests
2025-11-26 01:29:02 +01:00
Peter Steinberger
1fd4485716
Auto-reply: refresh typing indicator every 8s
2025-11-26 01:27:51 +01:00
Peter Steinberger
b029ab933e
chore(tests): organize web test imports
2025-11-26 01:24:34 +01:00
Peter Steinberger
e0b28b6718
test(web): split provider web suite
2025-11-26 01:23:34 +01:00
Peter Steinberger
4dd2f3b7f7
refactor(web): split provider module
2025-11-26 01:16:54 +01:00
Peter Steinberger
e5f677803f
chore: format to 2-space and bump changelog
2025-11-26 00:53:53 +01:00
Peter Steinberger
a67f4db5e2
chore: format + lint
2025-11-26 00:30:30 +01:00
Peter Steinberger
8a01dc7f4c
style: normalize indentation to 2 spaces
2025-11-26 00:15:10 +01:00
Peter Steinberger
e107f115e2
chore: bump version to 1.1.0
2025-11-26 00:11:42 +01:00
Peter Steinberger
af8af4881b
docs/tests: typing interval docs and coverage
2025-11-26 00:10:38 +01:00
Peter Steinberger
d871dad85f
feat: keep typing indicators alive during commands
2025-11-26 00:05:11 +01:00
Peter Steinberger
5b83d30887
test: cover sendSystemOnce default
2025-11-25 23:57:41 +01:00
Peter Steinberger
2e3b8a03aa
feat: send session prompt once
2025-11-25 23:52:38 +01:00
Peter Steinberger
d924b7d283
docs: document media caps and tidy web tests
2025-11-25 23:43:57 +01:00
Peter Steinberger
e0425ad3e1
feat: support audio/video/doc media caps and transcript context
2025-11-25 23:21:35 +01:00
Peter Steinberger
5dced02a20
docs: clarify transcript prompt and config
2025-11-25 23:14:23 +01:00
Peter Steinberger
e642f128ae
feat: transcribe audio and surface transcript to prompts
2025-11-25 23:13:22 +01:00
Peter Steinberger
7d0ae151e8
feat: optional audio transcription via CLI
2025-11-25 23:06:54 +01:00
Peter Steinberger
f945e284e1
test: cover media formats + doc resize cap
2025-11-25 22:23:06 +01:00
Peter Steinberger
7166efef08
docs: document media resize config
2025-11-25 22:16:09 +01:00
Peter Steinberger
a81689e902
chore: approve build scripts
2025-11-25 20:11:36 +01:00
Peter Steinberger
0a0418b973
web: compress auto-reply media
2025-11-25 20:09:03 +01:00