Commit Graph

656 Commits

Author SHA1 Message Date
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
Charles Packer
7974ea64da fix(tui): restore clickable ADE/usage links in agent info bar (#1173) 2026-02-26 15:01:40 -08:00
Shubham Naik
1a630cedc9 improve streaming resilience for remote mode (#1171) 2026-02-26 15:01:13 -08:00
jnjpng
728555480a fix: normalize animated logo frame width (#1172)
Co-authored-by: Letta <noreply@letta.com>
2026-02-26 14:39:51 -08:00
jnjpng
6347538071 fix(stream): capture SDK parse diagnostics for fallback stream errors (#1148)
Co-authored-by: Letta <noreply@letta.com>
2026-02-26 14:26:52 -08:00
Charles Packer
18fa693c9b feat: queue tui integration (#1164)
Co-authored-by: Letta <noreply@letta.com>
2026-02-26 11:34:37 -08:00
Devansh Jain
2c243151c6 refactor: remove parseArgs value casts in subcommands (#1157) 2026-02-25 20:15:15 -08:00
Devansh Jain
a0fffeae35 refactor: type parsed flag values and remove entrypoint casts (#1153) 2026-02-25 19:48:02 -08:00
Devansh Jain
c8fb2cc3b1 refactor: unify CLI flag parsing across interactive and headless (#1137)
Co-authored-by: cpacker <packercharles@gmail.com>
2026-02-25 18:29:56 -08:00
jnjpng
17a70d6586 fix: update agentState.model on model switch for immediate status bar refresh (#1149)
Co-authored-by: Letta <noreply@letta.com>
2026-02-25 18:10:59 -08:00
jnjpng
bf324ded90 feat: add telemetry tracking for stream resume attempts (#1144)
Co-authored-by: Letta <noreply@letta.com>
2026-02-25 17:16:01 -08:00
Charles Packer
bb778d65a2 fix(tui): deduplicate model list by handle in /model selector (#1139)
Co-authored-by: Letta <noreply@letta.com>
2026-02-25 17:04:59 -08:00
Charles Packer
7a48ac4f25 fix(tui): use canonical agent.model handle for status bar display name (#1140)
Co-authored-by: Letta <noreply@letta.com>
2026-02-25 17:04:51 -08:00
Charles Packer
2c7d445766 fix(tui): remove s:/t: suffixes from footer status bar (#1145)
Co-authored-by: Letta <noreply@letta.com>
2026-02-25 17:04:06 -08:00
cthomas
8b088079df chore: log prestream error in debug mode (#1143) 2026-02-25 16:36:03 -08:00
jnjpng
57f6a07335 fix: include server error detail in post-stream trackError (#1138) 2026-02-25 14:46:37 -08:00
jnjpng
d220af7919 fix(telemetry): add trackError to approval and interrupt error paths (#1136) 2026-02-25 14:24:06 -08:00