Letta Code versions 0.31.4 through 0.31.12 changed how the agent harness stores memory, runs work on remote computers, connects Model Context Protocol tools, and launches subagents. The release range spans August 27 through September 3, 2026. Most changes affect the harness around an agent rather than the language model itself.
The largest shift is architectural. Memory became more configurable and more strictly validated, remote execution began following live runtime state, and several separate MCP commands became one interface. The channel adapters changed less: Slack gained custom emoji discovery, while the shared server stopped sending operational logs into the status interface.
Memory became a validated file system
Version 0.31.4 introduced configurable memory layouts. Later releases added configurable size limits, shared-memory frontmatter validation, complete root-layout prompts, and more accurate token estimates for MemFS v2 core files.
The practical change is that memory structure can now vary without making validation optional. A layout controls where identity, project knowledge, and supporting material live. Limits constrain how much content may occupy those surfaces. Markdown and frontmatter checks reject malformed files before they enter the retained context system.
Committed shared-memory changes also gained automatic Git pushing. This turns a local commit into a synchronization event for repositories attached to more than one agent. The behavior still depends on a successful commit and configured remote; it does not make uncommitted edits public or shared.
Remote work follows runtime liveness
Several headless-execution changes replaced fixed waiting assumptions with observed runtime state. Before this series, an environment-routed turn could stop waiting after a ten-minute deadline even if work remained active. The revised path watches the runtime-status record and continues while the remote turn shows activity.
Environment-routed turns now carry the client tool allowlist. This keeps the remote execution context aligned with the tools the originating client intended to expose. Teleport also gained repairs for default conversations and failed handoffs: a failed move resumes the source environment instead of leaving the conversation stranded between computers.
The command-line vocabulary now standardizes remote routing around computers. The same concept covers a connected physical machine and a provisioned Cloud sandbox. Subagents use the same computer parameter when the backend supports it.
Subagents became background work
Subagent launches are background-only in this release range. The parent receives a task identifier and can continue working while the child runs. A subagent can also target another connected computer or a fresh Cloud sandbox.
Two narrower fixes preserve the requested execution contract. Forked subagents now honor explicit model overrides, and the computer selector appears only on backends that can route work to another machine. These changes reduce a recurring ambiguity in which a tool schema advertised an execution option the current backend could not perform.
MCP moved behind one CLI
The Model Context Protocol interface was consolidated into a unified letta mcp command. It supports server discovery, tool listing, schema inspection, tool search, and invocation. Hosted stdio tools use the same interface, and a bundled skill teaches agents how to discover and call available tools.
The older letta cloud-mcp command was removed. Client-local tools are now deferred to the unified CLI rather than represented through a separate cloud-specific path. The consolidation gives agents one discovery surface and lets the runtime provide a compact reminder about connected servers without injecting every tool schema into every turn.
Browser use and feedback became built-in workflows
Browser automation became a built-in skill. It gives agents a standard route for rendered-page interaction, screenshots, form input, and other tasks that need a real browser rather than plain HTTP retrieval.
Agents also gained a built-in feedback submission workflow. Reports now carry source and client metadata, and the reporting instructions require enough context to reproduce the problem. Behavioral corrections are routed toward agent memory edits instead of being misclassified as product defects.
Runtime and provider repairs
The series includes two ChatGPT account fixes. Completed OAuth state now persists correctly in the app server. Plan rotation is scoped to the active turn, so one turn's fallback decision does not leak into unrelated work.
Shell permission matching also became more conservative. Commands ending in an incomplete && or || expression are treated as unparseable rather than accidentally matching an allow rule. Invalid reflection models now pause retries instead of producing a repeated failure loop.
At the server interface, operational log records no longer appear as user-facing status output. This separates process diagnostics from the concise state a client uses to show whether work is active. The release also removed a retired core-runtime request header.
Channel changes were narrow
The channel layer received fewer changes than the memory and remote-execution layers. Slack can now discover a workspace's custom emoji and expose them through the message action contract. The common channel gateway and Discord, Telegram, Signal, and Bluesky adapters did not receive a comparable rewrite in this version range.
That distinction matters when updating a long-running listener. Rebuilding and restarting the listener makes the broader harness changes available to channel-originated turns, but it does not imply that every messaging adapter changed. The listener consumes the same memory, subagent, MCP, permission, and remote-execution machinery as the command-line client.
Reading the release range
The 0.31.4–0.31.12 series is best read as consolidation around persistent agents. Memory gained stronger structure and admission checks. Remote work gained clearer computer routing and liveness tracking. MCP gained one interface. Subagents gained a consistent asynchronous lifecycle.
The public comparison contains the exact commits and code changes. This page groups them by the part of an agent system they change; it does not replace the source history or current product documentation.