Commit Graph

3972 Commits

Author SHA1 Message Date
Peter Steinberger
439f172ae2 docs: refresh and simplify docs 2026-01-08 23:07:20 +01:00
Peter Steinberger
b1101b4d9e docs: fix Mintlify parse error 2026-01-08 23:05:26 +01:00
Peter Steinberger
d968d7ffc5 test: add DM elevated regression coverage 2026-01-08 22:58:15 +01:00
Peter Steinberger
7a5585ab4c fix: tighten group elevated targeting 2026-01-08 22:57:18 +01:00
Peter Steinberger
f5f76ee2b7 fix: align env config schema 2026-01-08 22:57:18 +01:00
Peter Steinberger
f4fca5f0e0 feat: allow inline env vars in config 2026-01-08 22:57:18 +01:00
Peter Steinberger
2e1ba5a73e fix(doctor): run legacy migrations in non-interactive 2026-01-08 21:37:22 +00:00
Peter Steinberger
81686f676a refactor(cron): centralize telegram targets + delivery helpers 2026-01-08 21:36:53 +00:00
Peter Steinberger
3601d57f3c fix: avoid synthesizing agent defaults 2026-01-08 22:26:29 +01:00
Peter Steinberger
39cf84c262 feat: enable adaptive context pruning by default 2026-01-08 22:23:03 +01:00
Peter Steinberger
16a1632399 fix: normalize gateway cli option strings 2026-01-08 22:18:06 +01:00
Peter Steinberger
b2038ab5f9 fix: honor non-interactive legacy migrations 2026-01-08 22:13:57 +01:00
Peter Steinberger
897ab9dfe5 test(cron): cover telegram topic delivery (#478) (thanks @nachoiacovino) 2026-01-08 21:13:39 +00:00
Nacho Iacovino
72699ded91 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
873b582586 fix: resolve WhatsApp LID inbound mapping 2026-01-08 22:08:54 +01:00
Peter Steinberger
02b791092d docs: add beginner paths for docker and linux vps 2026-01-08 21:56:47 +01:00
Josh Palmer
fb349cc97c 🤖 codex: add changelog entry for #210 2026-01-08 21:54:04 +01:00
Josh Palmer
0f607e528c 🤖 codex: strip empty assistant blocks from history (#210) 2026-01-08 21:53:33 +01:00
Peter Steinberger
a60a091e9d feat(doctor): audit config + state permissions 2026-01-08 21:51:34 +01:00
Peter Steinberger
f44f840057 docs: clarify sandboxing config option 2026-01-08 21:51:21 +01:00
Peter Steinberger
814b1430d2 docs: add sandboxing page and cross-links 2026-01-08 21:49:26 +01:00
Peter Steinberger
8706f8da2b feat(doctor): add repair/force flows 2026-01-08 21:47:35 +01:00
Peter Steinberger
69a579aca9 docs(cron): clarify jobId vs id 2026-01-08 21:43:22 +01:00
Peter Steinberger
bdedcb870a docs(cron): rewrite cron jobs documentation 2026-01-08 21:39:03 +01:00
Peter Steinberger
964568105e refactor(telegram): centralize target parsing 2026-01-08 21:38:59 +01:00
Peter Steinberger
991635af9c style(cli): format daemon config warnings 2026-01-08 21:38:54 +01:00
Peter Steinberger
8e2d6d14a1 fix(doctor): handle missing service readCommand 2026-01-08 21:38:51 +01:00
Peter Steinberger
dc848aef25 docs: clarify doctor + launchd service guidance 2026-01-08 21:34:28 +01:00
Peter Steinberger
b8b0994a44 feat(doctor): audit supervisor config + docs 2026-01-08 21:28:48 +01:00
Peter Steinberger
4f5256da7c docs(changelog): note PR #483 (thanks @AbhisekBasu1) 2026-01-08 20:26:18 +00:00
Peter Steinberger
ebbb61249b style(cron): format telegram target tests 2026-01-08 21:23:07 +01:00
Peter Steinberger
86f4f76a83 fix(cron): parse telegram targets with prefixes (thanks @mitschabaude-bot) 2026-01-08 21:23:07 +01:00
Gregor's Bot
adbbb84932 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
Peter Steinberger
edba086703 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
c9ca2f4bf9 docs: note systemd unit alignment (#479) - thanks @azade-c 2026-01-08 21:16:19 +01:00
Azade
ee875dc148 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
Peter Steinberger
afcb6536ee refactor: normalize skills UI status keys 2026-01-08 20:13:24 +00:00
Peter Steinberger
06a05f28e4 docs(changelog): follow-up #516 (thanks @YuriNachos) 2026-01-08 21:08:34 +01:00
Peter Steinberger
35f7e3455d refactor(outbound): centralize telegram account defaults 2026-01-08 21:05:01 +01:00
Peter Steinberger
c0905d883c 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
ae23f96d5d docs: add changelog for skill install feedback (PR #445, thanks @pkrmf) 2026-01-08 20:04:13 +00:00
Peter Steinberger
f55f822703 style: format gateway-cli log lines 2026-01-08 20:04:10 +00:00
Marc Terns
8f7ba3d349 UI: improve skill install feedback 2026-01-08 20:01:38 +00:00
Peter Steinberger
16d8017528 fix: restore hidden gateway-daemon alias 2026-01-08 19:54:23 +00:00
Peter Steinberger
840e712153 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
3d0e1cf925 Merge branch 'main' into fix/heartbeat-telegram-account-id 2026-01-08 20:48:29 +01:00
Peter Steinberger
6ddfb1d0e1 fix(heartbeat): telegram accountId + cron jobId compat (#516, thanks @YuriNachos) 2026-01-08 20:47:22 +01:00
Yurii Chukhlib
2f817543eb 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
db93ec0465 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
0e0bd9cd16 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