Releases: letta-ai/letta-code
Releases · letta-ai/letta-code
Release v0.25.7
What's Changed
- fix(subagents): restrict memory subagent file tools by @kl2806 in #2189
- fix(tui): guard tool-call terminal states by @cpacker in #2188
- fix(local): align compaction formatting with API by @cpacker in #2190
- chore: bump version to 0.25.7 by @github-actions[bot] in #2191
Full Changelog: v0.25.6...v0.25.7
Release v0.25.6
What's Changed
- refactor(cli): refactor CLI App layout by @cpacker in #2166
- test(wiring): auto-discover interactive app source files by @cpacker in #2175
- fix(tui): share terminal theme cache in bundled CLI by @cpacker in #2176
- fix(channels): notify chats when turns fail by @just-cameron in #2101
- fix(cli): add update aliases by @cpacker in #2174
- fix(local): retry transient provider stream failures by @cpacker in #2178
- fix(local): compact on overflow and usage triggers by @cpacker in #2179
- fix(resume): preserve tool backfill on local resume by @cpacker in #2183
- fix(tui): syntax highlight markdown code blocks by @cpacker in #2186
- fix(tui): render retry events as status lines by @cpacker in #2187
- chore: bump version to 0.25.6 by @github-actions[bot] in #2180
Full Changelog: v0.25.5...v0.25.6
Release v0.25.5
What's Changed
- chore: remove broken CI cleanup artifacts by @kianjones9 in #2156
- fix(local): route commands through backend abstraction by @cpacker in #2158
- fix(local): repair image paste and MemFS paths by @cpacker in #2160
- fix(local): route message search through backend by @cpacker in #2161
- feat(skills): support slash skill invocation by @sarahwooders in #2157
- chore(cli): remove blocks subcommand by @cpacker in #2163
- feat(cli): always show all skill source tabs in /skills dialog by @sarahwooders in #2159
- fix(tui): add vertical padding to user highlights by @cpacker in #2162
- fix(local): guard unsupported image history by model modality by @cpacker in #2164
- fix(cli): preserve bash preview prompt spacing by @cpacker in #2168
- fix(local): allow no-memfs sessions by @cpacker in #2169
- feat(telegram): improve channel response routing by @just-cameron in #2151
- fix(listener): parse pong lifecycle frames by @just-cameron in #2099
- fix(channels): dedupe Discord ingress by message id by @just-cameron in #2081
- fix(local): propagate backend mode to subagents by @cpacker in #2167
- feat(ws): support local backend in websocket listener mode by @cpacker in #2171
- fix(local): support sliding-window compaction by @cpacker in #2170
- test(channels): stabilize Telegram media group test by @cpacker in #2173
- chore: bump version to 0.25.5 by @github-actions[bot] in #2172
Full Changelog: v0.25.4...v0.25.5
Release v0.25.4
What's Changed
- fix: normalize llm_error stream stop reasons by @jnjpng in #2124
- Add ci-failure-detector agent skill by @kianjones9 in #2150
- fix(local): Fix local ChatGPT OAuth requests by @cpacker in #2149
- chore: bump version to 0.25.4 by @github-actions[bot] in #2154
Full Changelog: v0.25.3...v0.25.4
Release v0.25.3
What's Changed
- chore(ci): enable review for all authors, add PR context to prompt by @carenthomas in #2145
- fix: wrap /btw in approval recovery by @jnjpng in #2133
- fix: openrouter retry by @AriWebb in #2108
- feat(local): enable local provider connections by @cpacker in #2126
- feat(local): Add local backend CLI flag by @cpacker in #2147
- chore: bump version to 0.25.3 by @github-actions[bot] in #2148
Full Changelog: v0.25.2...v0.25.3
Release v0.25.2
What's Changed
- feat(cli): client-side conversation titles + opt-in AI title generation by @kianjones9 in #2122
- feat(ci): add Amelia as automated PR code reviewer by @carenthomas in #2127
- fix(ci): use stock phrases for review outcomes by @carenthomas in #2135
- fix: include agent relationships in retrieveAgent re-fetches by @carenthomas in #2134
- fix: auto-enable memfs for existing agents in headless mode by @carenthomas in #2128
- fix(listener): gate post-stop approval recovery by @just-cameron in #2103
- fix(memfs): repair malformed memory remotes by @sarahwooders in #2138
- fix: show Cloudflare transient error instead of generic LLM API error by @carenthomas in #2136
- refactor(review): streamline review prompt, add tracking_comment, update action to @v0 by @carenthomas in #2139
- chore(prompts): sync source_codex.md to gpt-5.5 by @kl2806 in #2141
- chore: bump version to 0.25.2 by @carenthomas in #2144
Full Changelog: v0.25.1...v0.25.2
Release v0.25.1
What's Changed
- docs(tools): clarify Edit path expansion by @kl2806 in #2088
- fix(permissions): unblock memory-mode subagents on commit flows by @devanshrj in #2092
- fix(reflection): fix reflection subagent memfs cwd by @kl2806 in #2083
- feat(local): add local MemFS support by @cpacker in #2076
- feat(listener): repair split websocket channels on current main by @4shub in #2096
- feat: delete memory file ws by @AriWebb in #2098
- fix(permissions): expand memory git allowlist by @kl2806 in #2093
- fix(permissions): allow memory-scoped bash redirects by @kl2806 in #2089
- chore: remove unused minimax/zai/openrouter provider stubs by @carenthomas in #2109
- chore: drop unused highlight.js direct dependency by @carenthomas in #2114
- feat(permissions): instructive memory-mode denial reasons by @devanshrj in #2107
- Update CODEOWNERS to include @carenthomas by @kianjones9 in #2123
- feat(local): add local compaction by @cpacker in #2106
- chore: remove unused ApprovalDialogRich component by @carenthomas in #2110
- chore: remove unused OAuth callback-server by @carenthomas in #2111
- chore: remove unused project-settings module by @carenthomas in #2112
- chore: remove unused AsciiArt component and asciiUtils helper by @carenthomas in #2113
- refactor(settings): remove unused localSharedBlockIds from ProjectSettings by @carenthomas in #2115
- refactor(settings): remove deprecated globalSharedBlockIds from Settings by @carenthomas in #2116
- chore: remove unused UserMessage component by @carenthomas in #2117
- chore: remove unused AssistantMessage component by @carenthomas in #2118
- chore: remove unused ErrorMessage component by @carenthomas in #2119
- chore: remove unused ReasoningMessage component by @carenthomas in #2120
- fix(api): standardize forkConversation on query params (fixes /btw on default conversation) by @carenthomas in #2121
- fix(approvals): validate missing tool args before permissions by @kl2806 in #2090
- chore: bump version to 0.25.1 by @github-actions[bot] in #2105
Full Changelog: v0.25.0...v0.25.1
What's Changed
- docs(tools): clarify Edit path expansion by @kl2806 in #2088
- fix(permissions): unblock memory-mode subagents on commit flows by @devanshrj in #2092
- fix(reflection): fix reflection subagent memfs cwd by @kl2806 in #2083
- feat(local): add local MemFS support by @cpacker in #2076
- feat(listener): repair split websocket channels on current main by @4shub in #2096
- feat: delete memory file ws by @AriWebb in #2098
- fix(permissions): expand memory git allowlist by @kl2806 in #2093
- fix(permissions): allow memory-scoped bash redirects by @kl2806 in #2089
- chore: remove unused minimax/zai/openrouter provider stubs by @carenthomas in #2109
- chore: drop unused highlight.js direct dependency by @carenthomas in #2114
- feat(permissions): instructive memory-mode denial reasons by @devanshrj in #2107
- Update CODEOWNERS to include @carenthomas by @kianjones9 in #2123
- feat(local): add local compaction by @cpacker in #2106
- chore: remove unused ApprovalDialogRich component by @carenthomas in #2110
- chore: remove unused OAuth callback-server by @carenthomas in #2111
- chore: remove unused project-settings module by @carenthomas in #2112
- chore: remove unused AsciiArt component and asciiUtils helper by @carenthomas in #2113
- refactor(settings): remove unused localSharedBlockIds from ProjectSettings by @carenthomas in #2115
- refactor(settings): remove deprecated globalSharedBlockIds from Settings by @carenthomas in #2116
- chore: remove unused UserMessage component by @carenthomas in #2117
- chore: remove unused AssistantMessage component by @carenthomas in #2118
- chore: remove unused ErrorMessage component by @carenthomas in #2119
- chore: remove unused ReasoningMessage component by @carenthomas in #2120
- fix(api): standardize forkConversation on query params (fixes /btw on default conversation) by @carenthomas in #2121
- fix(approvals): validate missing tool args before permissions by @kl2806 in #2090
- chore: bump version to 0.25.1 by @github-actions[bot] in #2105
Full Changelog: v0.25.0...v0.25.1
Release v0.25.0
What's Changed
- fix(cli): split streamed reasoning blocks on new otid by @jnjpng in #2044
- fix(channels): Telegram photo MIME type preservation by @just-cameron in #2050
- fix(tui): avoid NBSP cursor placeholder by @cpacker in #2013
- perf(listener): cache secrets hydration by @cpacker in #2055
- perf(agent): cache client skills payload by @cpacker in #2056
- perf(listener): preserve bootstrap reminders on reconnect by @cpacker in #2057
- perf(listener): avoid duplicate image normalization by @cpacker in #2059
- perf(listener): process idle input directly by @cpacker in #2060
- perf(listener): reuse metadata during tool prep by @cpacker in #2058
- perf(listener): warm state after sync by @cpacker in #2061
- refactor(api): add backend seam for lifecycle calls by @cpacker in #2064
- feat(api): add local backend implementation by @cpacker in #2065
- feat(local): compile MemFS system prompts by @cpacker in #2066
- refactor(listener): extract branch and secret commands by @cpacker in #2067
- refactor(listener): extract model toolset commands by @cpacker in #2069
- refactor(listener): extract cron commands by @cpacker in #2070
- refactor(listener): extract settings commands by @cpacker in #2071
- refactor(listener): extract skill and agent commands by @cpacker in #2072
- refactor(listener): split client modules by @cpacker in #2077
- fix(memfs): hydrate local state from agent tags by @sarahwooders in #2084
- feat(prompts): align Letta system prompt with Context Constitution by @sarahwooders in #2040
- feat(cli): add set-max-context command by @cpacker in #2082
- chore: bump version to 0.25.0 by @github-actions[bot] in #2085
Full Changelog: v0.24.13...v0.25.0
Release v0.24.13
What's Changed
- feat(channel): support dynamic channel plugins by @cpacker in #2021
- fix(reflection): trim launch context and clarify the system prompt by @devanshrj in #2031
- test: harden mock module isolation checks by @cpacker in #2033
- feat(ws): write + sync memory file command by @christinatong01 in #2030
- refactor(api): add API backend facade by @cpacker in #2034
- refactor(api): route headless lifecycle through backend by @cpacker in #2035
- refactor(api): route stream-json controls through backend by @cpacker in #2036
- test(api): make fake headless backend stateful by @cpacker in #2037
- fix: k2.6 output tokens by @AriWebb in #2042
- feat: secrets in lcd by @AriWebb in #2046
- feat(cron): add LETTA_DISABLE_CRON_SCHEDULER opt-out + quiet failed-c… by @4shub in #2047
- feat(file-search): always skip .letta/worktrees in @-mention / quick-… by @4shub in #2049
- fix: desktop listener registers with local env server when channels a… by @4shub in #2052
- chore: bump version to 0.24.13 by @github-actions[bot] in #2054
Full Changelog: v0.24.12...v0.24.13
Release v0.24.12
What's Changed
- fix(ws): Add override for unsupported 1 by @4shub in #2024
- fix(channels): harden Discord delivery error replies by @just-cameron in #2022
- chore: bump version to 0.24.12 by @github-actions[bot] in #2027
Full Changelog: v0.24.11...v0.24.12