Commit Graph

7750 Commits

Author SHA1 Message Date
Peter Steinberger
3ce03936bd build: refresh control-ui dist + release docs 2026-01-24 12:51:32 +00:00
Peter Steinberger
129b405337 docs: clarify node host sizing 2026-01-24 12:50:22 +00:00
Peter Steinberger
4988dcd6eb docs: add node vs ssh faq 2026-01-24 12:48:29 +00:00
hsrvc
df91a31e60 fix: preserve Telegram topic (message_thread_id) in sub-agent announcements
When native slash commands are executed in Telegram topics/forums, the
originating topic context was not being preserved. This caused sub-agent
announcements to be delivered to the wrong topic.

Root cause: Native slash command context did not set OriginatingChannel
and OriginatingTo, causing session delivery context to fallback to the
user's personal ID instead of the group ID + topic.

Fix: Added OriginatingChannel and OriginatingTo to native slash command
context, ensuring topic information is preserved for sub-agent announcements.

Related session fields:
- lastThreadId: preserved via MessageThreadId
- lastTo: now correctly set to group ID via OriginatingTo
- deliveryContext: includes threadId for proper routing
2026-01-24 12:26:29 +00:00
Peter Steinberger
2bffefdb67 fix: preserve agent id casing 2026-01-24 12:23:44 +00:00
Peter Steinberger
6ae794bb1c fix: align bluebubbles outbound group sessions 2026-01-24 12:23:26 +00:00
Peter Steinberger
bed6ba566e docs: reorder 2026.1.23 changelog 2026-01-24 12:10:59 +00:00
Peter Steinberger
0953043c9a fix: log discord deploy error details 2026-01-24 12:10:59 +00:00
Peter Steinberger
116482fdb6 fix: align agent id normalization 2026-01-24 12:10:08 +00:00
Peter Steinberger
dd6fba317e chore: tune fly deployment defaults 2026-01-24 11:58:25 +00:00
Peter Steinberger
dd5375883a fix: normalize session keys and outbound mirroring 2026-01-24 11:57:11 +00:00
Peter Steinberger
1db868b0fa chore: update protocol artifacts 2026-01-24 11:28:24 +00:00
Luke
f4b0648a50 fix(agents): treat provider request-aborted as timeout for fallback (#1576)
* fix(agents): treat request-aborted as timeout for fallback

* test(e2e): add provider timeout fallback
2026-01-24 11:27:24 +00:00
Peter Steinberger
6da32b91a4 fix: guard cli session update 2026-01-24 11:21:34 +00:00
Peter Steinberger
4c29bfd376 chore: suppress remaining deprecation warnings 2026-01-24 11:16:46 +00:00
Peter Steinberger
bc33f09d5f test: cover explicit mention gating across channels 2026-01-24 11:09:33 +00:00
Peter Steinberger
5fc41c5fc5 fix: enforce explicit mention gating across channels 2026-01-24 11:09:33 +00:00
Peter Steinberger
26147b37f4 fix: resolve session ids in session tools 2026-01-24 11:09:11 +00:00
Peter Steinberger
bca761f4b7 fix: persist session usage metadata on suppressed replies 2026-01-24 11:05:02 +00:00
Peter Steinberger
634ae20480 chore: update fly config defaults 2026-01-24 10:58:55 +00:00
Peter Steinberger
85c9d25dc6 chore: filter noisy warnings 2026-01-24 10:48:33 +00:00
Peter Steinberger
3f5200f4ca chore: update deps and test timeout 2026-01-24 10:30:30 +00:00
Peter Steinberger
826814aebe feat: add TTS hint to system prompt 2026-01-24 10:25:42 +00:00
Peter Steinberger
b3182cdc94 docs: fix redirects and help links 2026-01-24 10:21:05 +00:00
Peter Steinberger
6f061172af fix: show voice mode in status 2026-01-24 10:03:19 +00:00
Peter Steinberger
e606ca1841 fix: avoid Discord /tts conflict 2026-01-24 09:58:06 +00:00
Peter Steinberger
227f7cf761 docs: consolidate faq under help 2026-01-24 09:49:38 +00:00
Peter Steinberger
e92b05f2cb feat: default TTS model overrides on (#1559) (thanks @Glucksberg)
Co-authored-by: Glucksberg <80581902+Glucksberg@users.noreply.github.com>
2026-01-24 09:42:32 +00:00
Peter Steinberger
aae71ab3af docs: restore faq and fix redirect 2026-01-24 09:39:24 +00:00
Peter Steinberger
ad7cfceff0 docs(fly): update guide with deployment lessons
- Increase recommended memory to 2GB (512MB/1GB OOM)
- Add OOM symptoms (SIGABRT, v8 allocation errors)
- Fix lock file path (/data/gateway.*.lock)
- Add complete config example with failover, auth, bindings
- Document Discord token from env var vs config
- Add machine update commands for command/memory changes
- Add config writing tips (echo+tee, sftp caveats)

Learned from FLAWD deployment debugging.
2026-01-24 09:36:54 +00:00
Peter Steinberger
a3f5fefaeb docs: move cross-context faq to troubleshooting 2026-01-24 09:36:44 +00:00
Peter Steinberger
3cfa7b4511 docs: expand heartbeat visibility config examples 2026-01-24 09:31:04 +00:00
Peter Steinberger
1b37c54f9f fix: document tools invoke + honor main session key (#1575) (thanks @vignesh07) 2026-01-24 09:29:32 +00:00
Vignesh Natarajan
aea52aeff2 docs(lobster): document clawd.invoke tool allowlisting 2026-01-24 09:29:32 +00:00
Vignesh Natarajan
b46914ea01 gateway: add /tools/invoke HTTP endpoint 2026-01-24 09:29:32 +00:00
Peter Steinberger
d6eeb609ad docs: add cross-context messaging faq 2026-01-24 09:28:59 +00:00
Peter Steinberger
440b8e1905 docs: add oauth refresh troubleshooting 2026-01-24 09:21:15 +00:00
Peter Steinberger
6669be2afa fix: document heartbeat visibility controls (#1452) (thanks @dlauer) 2026-01-24 09:07:03 +00:00
Dave Lauer
a5399580a4 feat(heartbeat): add configurable visibility for heartbeat responses
Add per-channel and per-account heartbeat visibility settings:
- showOk: hide/show HEARTBEAT_OK messages (default: false)
- showAlerts: hide/show alert messages (default: true)
- useIndicator: emit typing indicator events (default: true)

Config precedence: per-account > per-channel > channel-defaults > global

This allows silencing routine heartbeat acks while still surfacing
alerts when something needs attention.
2026-01-24 09:07:03 +00:00
Peter Steinberger
e7ab0e69a2 fix(hooks): emit message_received metadata 2026-01-24 08:56:16 +00:00
Peter Steinberger
54f8ec168c fix: harden discord rate-limit handling 2026-01-24 08:43:28 +00:00
Peter Steinberger
0a0755768e docs: changelog msteams probe (#1574) (thanks @Evizero) 2026-01-24 08:35:10 +00:00
Christof
b9f4a47364 fix(msteams): remove remaining /.default postfix (#1574)
This fixes the msteams probe which otherwise incorrectly assumes teams is not working.

The @microsoft/agents-hosting SDK's MsalTokenProvider automatically appends /.default to all scope strings in its token acquisition methods (acquireAccessTokenViaSecret, acquireAccessTokenViaFIC, acquireAccessTokenViaWID, acquireTokenWithCertificate in msalTokenProvider.ts). This is consistent SDK behavior, not a recent change.

The current code is including .default in scope URLs, resulting in invalid double suffixes like https://graph.microsoft.com/.default/.default. I am not sure how the .default postfixed worked in the past for you if I am honest.

This was confirmed to cause Graph API authentication errors. Removing the .default suffix from our scope strings allows the SDK to append it correctly, resolving the issue. I confirmed it manually on my teams setup

Before: we pass .default -> SDK appends -> double .default (broken)
After: we pass base URL -> SDK appends -> single .default (works)

Co-authored-by: Christof Salis <c.salis@vertifymed.com>
2026-01-24 08:30:34 +00:00
Peter Steinberger
5f5a6aa6a5 fix: show tool error fallback for tool-only replies 2026-01-24 08:17:50 +00:00
Peter Steinberger
668cd829b5 fix: gate openai reasoning downgrade on model switches (#1562) (thanks @roshanasingh4) 2026-01-24 08:16:42 +00:00
Peter Steinberger
310d06ca27 fix: harden gateway lock validation (#1572) (thanks @steipete) 2026-01-24 08:15:07 +00:00
Peter Steinberger
b4b767e7ae docs(fly): comprehensive deployment guide with real-world learnings
Based on actual Flawd deployment experience:
- Proper fly.toml configuration with all required settings
- Step-by-step guide following exe.dev doc format
- Troubleshooting section with common issues and fixes
- Config file creation via SSH
- Cost estimates
2026-01-24 08:15:07 +00:00
Peter Steinberger
9313ac2d64 docs(fly): add configuration guidance for bind mode, memory, and troubleshooting 2026-01-24 08:15:07 +00:00
Peter Steinberger
2fed9b9a95 fix: handle PID recycling in container gateway lock
In containers, PIDs can be recycled quickly after restarts. When a container
restarts, a different process might get the same PID as the previous gateway,
causing the lock check to incorrectly think the old gateway is still running.

This fix adds isGatewayProcess() which verifies on Linux that the PID actually
belongs to a clawdbot gateway by checking /proc/PID/cmdline. If the cmdline
doesn't contain 'clawdbot' or 'gateway', we assume the lock is stale.

Fixes gateway boot-loop in Docker/Fly.io deployments.
2026-01-24 08:15:07 +00:00
Peter Steinberger
15ae7d2672 feat: add Fly.io deployment support
- Add fly.toml configuration for Fly.io deployment
- Add docs/platforms/fly.md with deployment guide
- Uses London (lhr) region by default
- Includes persistent volume for data storage
2026-01-24 08:15:07 +00:00