Yume 0.42.0
Added
- Claude Fable 5.1 (
claude-fable-5-1, 1M context, $10/$50 MTok) is the new default model. Its CLI floor is enforced by the server rather than hidden client-side like every previous model gate: a CLI below 2.1.251 answers with a hard 400 naming the required version, and because 5.1 is also the default, a too-old CLI would fail every turn rather than merely hiding a picker entry. The selected model is therefore reconciled in both directions, dropping to Fable 5 on a known-too-old CLI and returning to 5.1 once it is upgraded, and never guessing when the version is unknown. Fable 5.1 also bills cache reads at a quarter of the usual rate, so it carries its own pricing entry instead of inheriting the Fable family's and overbilling cached input fourfold - Gemini 3.7 Flash in the model picker ($0.75/$3.75 introductory through 2026-12-31), plus Gemini 3.6 Flash and 3.5 Flash-Lite available off by default. The rolling
gemini-flash-latestalias now tracks 3.7 - Child-process panel: every process yume has spawned, grouped by what it belongs to, with strays that outlived their session called out separately and stoppable. Prompted by measurement rather than theory, a naive walk from our own process both over-counted live work and missed 36 orphaned shells holding 147 processes and 34 listening ports, the oldest three days old. Foreground commands now record their own process id the moment they start, which is the only way a process that survives turn-end cleanup stays attributable to the tab that created it
- An idle-output watchdog for wedged commands. A foreground bash command was bounded only by the 15 minute wall clock, so one that hung held the turn hostage for a full quarter hour and looked exactly like a command that was merely slow (the report was "a plain grep took 300s+"). A command that produces no output for two minutes is now stopped and returns what it managed to produce, with an explicit note that the result may be incomplete. Output written to the live stream counts as progress, which matters because a working pipeline like
cmd | tail -100is completely silent until it finishes, and killing those is the exact failure the watchdog must not cause - The chat composer now grows to fit the pane, up to 12 lines, instead of stopping at a fixed five, and shrinks again when the window does
Fixed
- The task progress bar was frozen at zero for every session using the CLI's task system, and had been since those tools shipped. The CLI numbers tasks sequentially per session and announces a new one only in the text of its result, never as a structured object, but yume invented its own random ids and waited for a structured field that does not exist anywhere in the CLI's output, so no update ever matched. The bar now mirrors the CLI's own numbering and re-anchors from the result text. Its previous tests passed because they asserted the invented ids round-tripped to themselves
- The turn footer named the wrong model, and billed the turn to it. Claude's result event carries no model field at all, so the name was derived from per-model token counts, which aggregate every model billed during the turn including subagents, and which exclude cached input. A warm Opus main chain therefore lost to a freshly spawned Sonnet explorer by a single token, so an Opus turn reported "sonnet 5" and its cost landed under Sonnet at Sonnet rates. The model that actually answered is now read from the CLI's own assistant messages
- The context bar stayed pinned at full forever after compacting via the plugin form of the command. The chat input rewrites
/compactinto its namespaced form, so an exact string test never matched, and the bar then refused every later, legitimately smaller total. Compaction also could not be detected mid-turn without tearing the session down: the detector matched the turn's own startup and assistant messages, clearing streaming, dropping the session id and overwriting the summary - Floating elements drifted off screen as the UI was zoomed. Browser zoom splits the page into two coordinate systems: measurements come back already scaled, but a pixel written to an element's position is scaled again on render, including for elements pinned to the viewport. Tooltips, all context-bar popovers, four context menus, both autocompletes, the tab drop indicator and drag handling were writing measured coordinates straight back, so the error grew with the coordinate and showed up first as bottom-right popovers hanging off the screen. Viewport-relative sizes stop capping correctly under zoom for the same reason and were replaced in four places
- The window grew by its own frame on every launch. The size a window reports includes its frame, but the setter consumes the inner area and there is no outer setter, so with yume's frameless window the hidden shadow border was re-added each time, growing the remembered window by 32x18 pixels per launch until it outgrew its monitor and the fit-to-screen clamp began dragging the origin. The visible symptom was position, not size, which is why it read as "reopens slightly offset" and was never diagnosed as a sizing bug
- The Claude CLI's own updater was overwriting a pinned, healthy version overnight, replacing a working 2.1.216 with a build whose 1M context window collapses to 200k. The setting meant to prevent this is ignored for native installs, so the updater is now disabled explicitly on every CLI yume spawns. Relatedly, the context regression range is now closed at both ends, so 2.1.237 and newer are no longer demoted, which would otherwise have made Fable 5.1 unreachable
- Sonnet 5 was billed at $3/$15 from 2026-09-01, a scheduled price rise that Anthropic cancelled. It bills at the standard $2/$10 again
- Thinking blocks shifted by one line every time live reasoning sealed into its final form, snapping everything below it, because the streaming and settled views trimmed trailing whitespace differently
- Fira Code's ligatures reappeared inside the message composer and every other text input. Turning them off at the root is not enough, since the browser's own stylesheet for form controls resets the property outright and a declared value beats an inherited one
/contextwas being run for Gemini, Codex and Kiro sessions, which cannot answer it, feeding a non-UUID session id to the Claude CLI- The taskbar spinner stopped while work continued in a background tab, and disappeared entirely for sessions with no project name
- A pure insertion or deletion rendered as a diff against a blank line
- Claude CLI detection accepted a binary it had found but could not actually run, and missed installs placed by several version managers and Windows package managers
Changed
- The Fleet panel is disabled.
Cmd+Shift+F, its command palette entry and its shortcut listing are all removed. The component is left in the codebase but is unreachable - Subprocesses launched by the app are now bounded. The standard runner had no timeout, no cap on captured output and left grandchildren behind, so a hung helper could stall a UI action indefinitely; every call site now runs under a deadline with output capped and the whole process tree killed on expiry. Hook execution was rewritten alongside it, since writing to a hook's input and then waiting for it to exit could deadlock, and its timeout did not cover startup at all
- The build toolchain moves from Node 18, which is past end of life, to Node 24. The bundled runtime is now downloaded once through a shared, checksum-verified path that validates what it extracted, replacing two copies of a downloader that piped an unchecked response straight into tar
- Version consistency is now a hard gate rather than a convention: 18 release-bearing version sources and 11 injection paths are verified on every build and as the first step of the release workflow, so a partial bump fails immediately instead of shipping a build that disagrees with itself about what it is
- Build and signing scripts no longer pass arguments through a shell, so signing credentials and paths cannot be reinterpreted by it, and a failed signature verification now aborts the build instead of being swallowed by a pipeline's exit code
- Codex sessions now show real file diffs. Its JSON protocol reports which file changed but never the patch text, so yume captures the file before the edit and reconstructs the before and after itself. Codex to-do lists render as real task lists, and transcripts no longer place tool results before the calls that produced them, which matters when handing a conversation to another provider
- Unknown flags and unknown provider, permission-mode or effort values passed to the multi-provider shim now fail loudly instead of being silently ignored
- Groundwork for an Antigravity provider is present but shipped disabled, and is not usable. Antigravity's terms forbid third-party tools driving it with an Antigravity login, and the integration is additionally incomplete
Note: this build is unsigned on Windows and macOS. Windows SmartScreen and macOS Gatekeeper will warn on first launch.