Commit Graph

382 Commits

Author SHA1 Message Date
Cameron
30c74a716c feat(discord): thread-only groups with auto-thread mentions + reaction gating (#540)
Co-authored-by: Letta Code <noreply@letta.com>
2026-03-09 16:32:38 -07:00
Cameron
d038c1361a fix: reduce per-event stream log noise and add regression test (#539)
Co-authored-by: Letta Code <noreply@letta.com>
2026-03-09 16:19:11 -07:00
Cameron
d23f0f9328 fix: harden voice memo delivery diagnostics (#536)
Co-authored-by: Letta Code <noreply@letta.com>
2026-03-09 13:22:26 -07:00
Cameron
7da991206f test: cover sendToAgent no-source directive filtering 2026-03-09 13:14:25 -07:00
Cameron
cf47522bf6 fix: skip non-targeted directives when no source adapter context
When sendToAgent() has no valid sourceChannel (e.g. webhook/feed
triggers), filter directives to only those that carry explicit
channel/chat targets. Prevents non-targeted directives (react, voice,
untargeted send-file) from executing against an arbitrary first-registered
adapter.

Written by Cameron ◯ Letta Code

"Simplicity is prerequisite for reliability." -- Edsger Dijkstra
2026-03-09 13:10:40 -07:00
Cameron
542ec8ce45 fix: execute directives in background flows, reject partial send-file targeting
Two fixes from PR review:

1. sendToAgent() now parses and executes directives from agent responses.
   Previously, directives were only executed in processMessage() (foreground),
   so <send-message> and targeted <send-file> never fired from heartbeats,
   cron, or webhook contexts. Targeted directives resolve their own adapter;
   non-targeted directives use source context from the trigger if available.

2. send-file with only one of channel/chat (partial targeting) is now
   rejected with a warning instead of silently falling back to the
   triggering chat, which could send to an unintended destination.

Written by Cameron ◯ Letta Code

"Be conservative in what you send, be liberal in what you accept."
-- Jon Postel
2026-03-09 12:29:20 -07:00
Cameron
f7d8005be4 feat: add <send-message> directive and cross-channel targeting for <send-file>
Adds a new `<send-message>` directive that lets the agent proactively
send text messages to any connected channel:chat, and extends
`<send-file>` with optional `channel`/`chat` attributes for targeted
file delivery. Both work from any context including heartbeats and cron.

Written by Cameron ◯ Letta Code

"The question of whether a computer can think is no more interesting
than the question of whether a submarine can swim." -- Edsger Dijkstra
2026-03-09 12:01:53 -07:00
Ezra
d7ab7f1c4b fix: reduce log spam from pre-foreground event buffering (#529)
Co-authored-by: Letta Code <noreply@letta.com>
2026-03-07 13:42:57 -08:00
Cameron
467f890371 docs: document /api/v1/chat/async endpoint (#518) 2026-03-06 17:39:20 -08:00
Cameron
acfd8dbeab fix: convert markdown bold/italic to HTML in Telegram thinking blocks (#523) 2026-03-06 17:33:45 -08:00
Cameron
7c3ab04494 Low-risk simplification pass: bot pipeline, startup, API, onboarding, provider sync (#520) 2026-03-06 17:20:24 -08:00
Cameron
b3634d0f29 fix: align API key guidance links to project keys page (#519)
Co-authored-by: Letta Code <noreply@letta.com>
2026-03-06 15:24:27 -08:00
Cameron
77fc7005e8 test: add Docker image build check to CI (#516)
Co-authored-by: Letta Code <noreply@letta.com>
2026-03-06 14:47:12 -08:00
Cameron
ead65ff1e7 fix: restore public store and invalidateSession on LettaBot (#515) 2026-03-06 12:04:05 -08:00
Cameron
c71c45150e feat: add ignoreBotReactions config toggle for Discord (#508) 2026-03-06 12:03:42 -08:00
Cameron
e80c5b4dd6 fix: prevent non-foreground run events leaking into user response stream (#513) 2026-03-06 11:51:05 -08:00
Cameron
761de6d716 feat: add set-conversation command (CLI, API, channel, portal) (#512) 2026-03-06 11:30:06 -08:00
Cameron
53c24bcdc7 fix: resolve WhatsApp LID to phone number for inbound DMs (#510) 2026-03-06 11:07:32 -08:00
Cameron
9da79aef09 fix: enable link preview generation for WhatsApp outbound messages (#511) 2026-03-06 11:04:46 -08:00
Jason Carreira
0fa3173e73 fix: create new conversation for per-channel mode instead of resuming default (#503)
Co-authored-by: Letta Code <noreply@letta.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-06 10:54:56 -08:00
Cameron
bcbe6dff9b fix: prevent reasoning text from leaking as response on LLM API errors (#509) 2026-03-06 10:14:16 -08:00
dependabot[bot]
ba1ef7ab6e chore(deps): bump @letta-ai/letta-client from 1.7.10 to 1.7.11 (#490)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-06 09:52:24 -08:00
Cameron
ef2302b2aa fix: strip variation selectors in Telegram emoji reactions (#499) 2026-03-06 09:34:18 -08:00
Cameron
c018369cae fix: serialize all sendToAgent calls and use per-key canUseTool callbacks (#501) 2026-03-05 17:57:04 -08:00
Cameron
c964ca3826 refactor: extract shared channel utilities (access control, emoji, message splitting) (#492) 2026-03-05 11:20:57 -08:00
Cameron
7173d2e2c4 fix: use sender phone number as userId for WhatsApp group messages (#491) 2026-03-05 10:37:06 -08:00
Cameron
9bf19ebab4 feat: ChatGPT subscription connect flow (#487) 2026-03-05 10:16:35 -08:00
Cameron
bb0ccd65e1 docs: consolidate voice documentation into docs/voice.md (#485) 2026-03-04 16:18:37 -08:00
Cameron
025fd38d5f feat: add per-group daily message limits (dailyLimit + dailyUserLimit) (#484) 2026-03-04 12:55:49 -08:00
Ezra
a9cab72426 feat: add POST /api/v1/chat/async endpoint for fire-and-forget messages (#329) 2026-03-04 11:45:09 -08:00
dustindoan
587621d9e4 fix: close API server on shutdown to prevent EADDRINUSE (#477)
Co-authored-by: Dustin Doan <dustin@myhealthspan.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 11:40:58 -08:00
Vedant0200
87aaa779bf Update README to use local preview image (#481) 2026-03-04 11:30:52 -08:00
Cameron
cb563d617b fix: detect and recover from stuck 409 PENDING_APPROVAL errors (#478) 2026-03-03 15:37:36 -08:00
Nouamane Benbrahim
94b7eea127 feat: unified lettabot initialization via lettactl (agents.yml) (#393)
Co-authored-by: Cameron <cameron@pfiffer.org>
2026-03-03 14:13:13 -08:00
Cameron
743cb1fbc9 fix: add diagnostic logging when agent skips lettabot-message CLI in silent mode (#476) 2026-03-03 12:32:50 -08:00
Cameron
ef13c3d8ab fix: add resolveEmailPrompt tests and consolidate prompt builders (#474) 2026-03-03 11:59:59 -08:00
Jason Carreira
e7f6e85880 feat(polling): add custom prompt support for Gmail email polling (#471)
Co-authored-by: Letta Code <noreply@letta.com>
2026-03-03 11:24:58 -08:00
Cameron
3b23777b02 docs: note that skills CLI commands are directory-scoped (#473) 2026-03-03 11:16:29 -08:00
Cameron
ae25c8d349 fix: add code formatting to /model command output (#472) 2026-03-03 11:13:12 -08:00
dependabot[bot]
a2e46f7420 chore(deps): bump @letta-ai/letta-client from 1.7.9 to 1.7.10 (#469)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-03 11:10:45 -08:00
Cameron
19cc80f59d fix: discover ~/.letta/skills/ in sync wizard and enable command (#468) 2026-03-02 18:59:16 -08:00
Cameron
dac3ae4a05 fix: raise default heartbeat interval to 4h, add cost warning in wizard (#467) 2026-03-02 18:36:58 -08:00
Cameron
72c2abacc0 feat: skills disable command + sync wizard pre-checks installed skills (#465) 2026-03-02 17:30:04 -08:00
Cameron
37d979cbe1 chore: remove accidentally committed lettabot-agent.json.bak (#464) 2026-03-02 17:17:14 -08:00
Cameron
355c96a493 fix: include WORKING_DIR/.skills/ in PATH when spawning session subprocess (#462) 2026-03-02 17:08:16 -08:00
Cameron
00b6f00446 fix: include bundled skills/ dir in skills status and sync discovery (#461) 2026-03-02 17:06:08 -08:00
Cameron
0dd462b60d fix: make heartbeat routing orthogonal to conversation mode (#463) 2026-03-02 16:56:16 -08:00
Cameron
3fc6585815 fix: resolve TS errors in result-guard.test.ts mock sendMessage types (#460) 2026-03-02 16:10:04 -08:00
Cameron
01edde976a docs: add skills architecture and authoring guide (#455) 2026-03-02 15:41:19 -08:00
Cameron
c37638d7ce fix: add message chunking to Discord adapter and log delivery failures (#459) 2026-03-02 14:53:08 -08:00