Commit Graph

672 Commits

Author SHA1 Message Date
Charles Packer
603e5941d8 refactor: replace ADE /agents/ links with /chat/ and centralize URL building [LET-7798] (#1254)
Co-authored-by: Letta Code <noreply@letta.com>
2026-03-04 15:45:42 -08:00
Charles Packer
654fc2d213 rename: letta remote -> letta server with remote as alias (#1265)
Co-authored-by: Letta Code <noreply@letta.com>
2026-03-04 15:44:53 -08:00
cthomas
2edbe0566d feat: add letta/auto and letta/auto-fast model support (#1259)
Co-authored-by: Letta Code <noreply@letta.com>
2026-03-04 12:16:30 -08:00
Devansh Jain
52e7a5af3a feat: split init into shallow and deep tiers [LET-7770] (#1258) 2026-03-03 22:56:58 -08:00
cthomas
4111c546d3 fix: migrate default conversation API usage to SDK 1.7.11 pattern (#1256)
Co-authored-by: Letta Code <noreply@letta.com>
2026-03-03 22:48:49 -08:00
Devansh Jain
a284a31f97 feat(cli): auto-init agent memory on first message [LET-7779] (#1231) 2026-03-03 20:08:30 -08:00
jnjpng
853762dea3 fix: align headless 409 busy retry with TUI exponential backoff (#1253)
Co-authored-by: Letta Code <noreply@letta.com>
2026-03-03 18:36:21 -08:00
jnjpng
0c5c766721 feat(statusline): expose agent ID, conversation ID, and last run ID in payload (#1249) 2026-03-03 16:33:07 -08:00
Devansh Jain
fd59b8c46b feat: agent-aware rename via command-io hints [LET-7755] (#1250) 2026-03-03 16:12:53 -08:00
cthomas
28ba2e7e1f fix: add guard for default conversation id (#1245) 2026-03-03 14:42:35 -08:00
Charles Packer
d038695244 feat(connect): unify provider connect flows across TUI and CLI (#1243)
Co-authored-by: Letta Code <noreply@letta.com>
2026-03-03 13:26:26 -08:00
Devansh Jain
be7606824b fix: make Shift+Tab enter plan mode before auto-approve (#1197) 2026-03-03 12:58:07 -08:00
Charles Packer
9372605cf2 fix: re-register environment instead of crashing (#1235)
Co-authored-by: Letta <noreply@letta.com>
2026-03-03 12:56:06 -08:00
Ari Webb
d6d39fe0cf fix: persist /model selection for default conversations (#1239)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 12:52:00 -08:00
Devansh Jain
200390ca33 fix(tui): show background subagent notifications immediately when idle (#1242) 2026-03-03 12:36:55 -08:00
Devansh Jain
a1a7419396 feat(statusline): expose background agents in status line payload (#1234) 2026-03-02 17:39:14 -08:00
Devansh Jain
a01bfa696d feat(tui): background agent status indicator in footer (#1233) 2026-03-02 17:29:56 -08:00
jnjpng
60aca976de fix(cli): preserve model across new conversations (#1228)
Co-authored-by: Letta Code <noreply@letta.com>
2026-03-02 13:24:59 -08:00
amysguan
3f189ed0c8 feat(tui): add /compaction mode selector command (#1141) 2026-03-02 11:28:37 -08:00
cpacker
04dcff9c33 feat(remote): always-on session log to ~/.letta/logs/remote/
Every `letta remote` session now writes a log file to
~/.letta/logs/remote/{timestamp}.log regardless of --debug mode.
All WS events, lifecycle transitions, and errors are captured.
--debug still prints to console on top. Log path printed at startup.
Old logs auto-pruned (keeps last 10).

🐛 Generated with [Letta Code](https://letta.com)

Co-Authored-By: Letta <noreply@letta.com>
2026-03-01 13:50:54 -08:00
cpacker
393ab7bddf refactor(remote): extract shared registerWithCloud() helper
Registration HTTP logic was duplicated three times across listen.ts
(initial + re-register) and listen.tsx. Extracted into
listen-register.ts with proper error handling for non-JSON responses,
response shape validation, and 5 focused tests. Removes ~110 lines
of duplication.

🐛 Generated with [Letta Code](https://letta.com)

Co-Authored-By: Letta <noreply@letta.com>
2026-03-01 11:53:45 -08:00
cpacker
ac4621d91d fix: json catching 2026-02-28 23:04:56 -08:00
cpacker
f65a23d092 fix(remote): handle non-JSON responses from registration endpoint
When `letta remote` connects before the cloud API is running (e.g.
ngrok returning HTML error pages), the `.json()` call on the response
threw an unhandled SyntaxError causing a hard exit with "Failed to
parse JSON". Now both register and re-register paths catch JSON parse
failures and surface actionable error messages indicating the server
may not be running.

🐛 Generated with [Letta Code](https://letta.com)

Co-Authored-By: Letta <noreply@letta.com>
2026-02-28 15:56:32 -08:00
Devansh Jain
27d145d0ea feat: silence reflection subagent from primary agent context (#1221) 2026-02-27 20:07:55 -08:00
Devansh Jain
35962f7bc7 feat: make /init a background subagent (#1208) 2026-02-27 19:35:19 -08:00
Devansh Jain
ba6df7a9ed feat: add silent flag to SubagentState for display filtering (#1220) 2026-02-27 19:08:51 -08:00
Charles Packer
e4c2893f60 feat: add --debug flag for plain-text logging (#1215)
Co-authored-by: Letta <noreply@letta.com>
2026-02-27 18:01:46 -08:00
jnjpng
f42fcad3fa fix: recover run_id for stream resume after early disconnect (#1212)
Co-authored-by: Letta <noreply@letta.com>
2026-02-27 17:48:33 -08:00
jnjpng
ec3cbbcaee fix: silence Cloudflare retry status message in terminal UI (#1214)
Co-authored-by: Letta <noreply@letta.com>
2026-02-27 17:02:05 -08:00
cthomas
e0cea19c9f feat: debug log file for diagnostics (#1211)
Co-authored-by: Letta <noreply@letta.com>
2026-02-27 16:49:26 -08:00
jnjpng
265b96e007 fix: normalize Cloudflare HTML errors in telemetry (#1210)
Co-authored-by: Letta <noreply@letta.com>
2026-02-27 15:54:40 -08:00
cthomas
c5c4687dc4 fix: skip agents.messages.reset in /clear for named conversations (#1209)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 15:48:02 -08:00
cthomas
81a826440c fix: skip conversation API call for default conversation in /model and /reasoning (#1207)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 15:39:52 -08:00
cthomas
0d5dab198a feat: use conversations endpoint for default conversation (#1206) 2026-02-27 15:37:15 -08:00
cthomas
841e2332f3 feat: show update notification in TUI and footer (#1204) 2026-02-27 15:03:47 -08:00
cthomas
1a245d74d3 fix: resume stream from seq 0 when no seq_id was received (#1198) 2026-02-27 14:05:31 -08:00
cthomas
74687a063f fix: skip conversation model sync for default conversation (#1190)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-27 10:59:20 -08:00
Charles Packer
03de29f3d3 fix(plan): avoid first-try plan-file path misses in codex apply_patch (#1187) 2026-02-26 22:07:24 -08:00
jnjpng
986cb7dc79 fix: handle Cloudflare HTML 5xx errors gracefully (#1179)
Co-authored-by: Letta <noreply@letta.com>
2026-02-26 18:26:09 -08:00
Charles Packer
70fac1d1f3 fix(queue): harden TUI dequeue display trim and override submit guard (#1183) 2026-02-26 18:12:54 -08:00
paulbettner
30decee222 fix(plan): restore pre-plan permission mode reliably (#1170) 2026-02-26 18:01:48 -08:00
Ari Webb
3f4c689d61 feat: persist session usage details (#1050) 2026-02-26 18:00:48 -08:00
amysguan
6707af5930 feat(tui): add self modes to /compact (#1119)
Co-authored-by: Amy Guan <amy@letta.com>
2026-02-26 18:00:23 -08:00
Sarah Wooders
0025c387ec fix(cli): keep /model and /reasoning conversation-scoped (#1178) 2026-02-26 17:58:42 -08:00
Sarah Wooders
c5a8871be7 fix(model-selector): remove free-tier lock emojis (#1176) 2026-02-26 17:58:32 -08:00
jnjpng
932147b642 fix: pretty-print ChatGPT usage_limit_reached errors with reset time (#1177)
Co-authored-by: Letta <noreply@letta.com>
2026-02-26 17:15:40 -08:00
Charles Packer
462d14edce feat(queue): QueueRuntime TUI cutover — remove messageQueue array as source of truth (#1168)
Co-authored-by: Letta <noreply@letta.com>
2026-02-26 16:57:42 -08:00
Devansh Jain
6967f9dcc9 feat: make reasoning tab cycling opt-in (default off) (#1175) 2026-02-26 15:42:52 -08:00
jnjpng
d184bd8aef fix: update tab-cycle mode glyphs (#1174)
Co-authored-by: Letta <noreply@letta.com>
2026-02-26 15:32:22 -08:00
cpacker
872630ad65 fix: ui cleanup 2026-02-26 15:25:50 -08:00