ML.ai CodeReference
Limitations
Everything ML.ai deliberately does not do this release, grouped by policy exclusion, parked, or experimental.
Every limitation here has a stated reason. None of them are "we haven't gotten to it yet" unless labeled that way explicitly.
Excluded by policy
Blocked at the network or feature layer, with a specific reason each.
| Feature | Status | Why |
|---|---|---|
| Terminal UI | Excluded | ML.ai is an editor extension; shell output already appears in the activity row for the command that produced it |
| Interactive PTY / terminal streaming | Excluded | No user-facing surface this release |
| Session sharing | Excluded | Publishes conversation content to a public URL; verified live, blocked in both directions |
| Engine self-upgrade | Excluded | The engine is versioned together with the extension |
| Shell-expression command templates | Excluded | Would execute shell code with no approval gate: the exact thing the approval flow exists to prevent |
| Universal / Linux / Windows ARM64 / Windows 32-bit packages | Excluded | Not built this release; the engine bundle has native binaries, and each platform package has to be built on its own target |
| Browser-hosted VS Code | Excluded | Not supported |
Parked
Deliberately not surfaced, each for a specific blocking reason, not effort alone.
| Feature | Status | Why |
|---|---|---|
| Price / cost metering | Parked | The engine's routing doesn't supply reliable billing data; ML.ai won't estimate one and present it as fact |
| Symbol search | Parked | The engine's handler unconditionally returns an empty array, and surfacing it would read as a false "no symbols" claim about your project |
| Manual compaction control | Parked | The underlying engine route is a stub in this build |
| Model-facing background shell commands | Parked | The job runner exists and is used internally, but exposing it to the model is gated on durable job status, restart recovery, and owner-bound get/wait/cancel tools: preconditions, not an omission |
| Subtask commands without a reported event stream | Parked | The engine runs some commands as isolated background tasks with no subtask event stream; output would be lost or dumped as an unstructured wall of text. /review shipped once its output path was wired up; this row now covers only what's left unsurfaced. |
| Guaranteed proposed diffs for shell/MCP mutations | Parked | ML.ai can't know in advance what an arbitrary command or third-party tool will actually change |
| A durable learned-memory product | Parked | Out of scope this phase |
| Language-server / formatter configuration | Parked | Not surfaced when the engine reports none available |
Experimental, off by default
Experimental features exist and can be turned on, but ship off because of a specific, stated risk.
| Feature | Setting | Why off by default |
|---|---|---|
| Code mode | ml-ai.experimental.codeMode | Delegation behavior has only been measured with this off; requires a restart to take effect |
| Worktrees / workspaces / project copies / sync | ml-ai.experimental.workspaces | Can move or delete uncommitted work; some routes report false success; ordinary single-folder workflows don't need it |
| Isolated runs in a worktree | Same flag, delegate-picker option | Inherits the same worktree risk |
Shipped
For contrast, the core loop (chat, edits, commands, permission prompts, the command safety classifier, MCP, background runs) is Shipped and not gated behind any flag.