Changelog

Every Neumann release, newest first. The desktop app updates itself — this is what each one changed.

0.1.43Latest

A new editor, and a composer that remembers

A new editor, composer additions, and a correctly versioned bundle.

Editor

  • The editor now runs on Monaco, bringing faster large-file handling and more accurate syntax highlighting.
  • Terminal effects and mouse reporting are handled server-side, so the terminal stays responsive under heavy output.
  • Diff review picks up refinements to how changes are laid out and navigated.

Composer

  • Prompt stash keeps prompts you reuse a click away instead of retyping them.
  • Traits let you attach standing instructions to a thread from the composer.
  • Appearance settings now list the fonts actually installed on your machine rather than a fixed set.

Interface

  • Buttons respond to your press, swapped icons cross-fade instead of spinning, and headings no longer strand a single word on their own line.
  • Links clear their descenders, and screenshots carry a hairline edge that survives on any background.

Under the hood

  • The bundle now carries a valid build version. Every previous release set it to the marketing version, which begins with a zero — a form Apple rejects, so tooling reported the build version as missing or invalid.

Editor, agent, and cloud reliability

Reliability and polish across the editor, agents, and cloud runs.

Editor

  • Vim search matches are recalculated when the buffer changes, so stale highlights no longer point at moved text.
  • Direct normal-mode commands are guarded against empty lines in large-file mode.
  • The gutter scroll wheel uses the scrollable element directly instead of reading computed styles on every event.
  • Folding recalculates only for the file you are looking at, not every open buffer.

Agents and runs

  • A failed turn records a single error instead of one per signal when the CLI also exits non-zero.
  • Attachment uploads retry on HTTP errors and tell you when only some files made it.
  • The workspace diff no longer races when you switch workspaces mid-request.
  • Search clears its spinner when you empty the query while a request is still in flight.
  • Creating a workspace retries when git reports the branch already exists.

Cloud

  • Run submissions check idempotency before quota, so a retried request cannot be rejected for capacity it already holds.
  • Git command output streams through a capped reader, bounding memory on large repositories.

Security

  • OAuth client changes are restricted to admins.

Profile stats and a Skills catalog

Settings after the rework: grouped sections, one row per setting.

Settings had grown to twenty sections, each with its own layout. This release cuts that to thirteen and gives every one of them the same shape: a plain row per setting, label and description on the left, control on the right.

What moved

  • Theme, fonts, and layout are one Appearance section instead of three.
  • Profile gains real numbers — threads, runs, and time worked, read from your own conversation history rather than an estimate.
  • A Skills catalogue lists the skills discovered on your machine, renders each one's definition, and lets you turn a skill off without deleting it.

Nothing was removed. The settings that lived in the seven folded-away sections are all still there, just grouped with the ones they belong to.

The real fix for stale UI after an update

Updating no longer leaves you looking at the previous build's interface. The desktop pins a fixed local port, and WebKit was caching that origin's HTML and script chunks across versions, so a fresh bundle still rendered the old UI. The shell now clears the WebView network cache once per version change before the window opens.

Deliver the port-eviction fix

Ships the port-eviction fix from 0.1.38, which itself reached installs as a stale bundle.

Evict an older server squatting the port

After an update, the previous version's local server often stayed alive on the fixed port, and the new instance deferred to it — so you kept talking to the old process. The launcher now defers only to a server reporting the same version and evicts an older one.

The static web UI is served with Cache-Control: no-cache, so the webview revalidates instead of guessing.

Stop caching the static UI

The static UI is served with no-cache headers, so an update is picked up instead of being served from the webview's heuristic cache.

Account dropdown and composer chip fixes

A reworked account dropdown, calmer Agent and Task settings, and composer chip fixes.

The cloud dashboard on the web now matches the desktop app, including the composer's chip row above the input and a round send button.

Chip polish and settings cards

Chip polish throughout, and settings cards applied consistently across every section.

A calmer Agent settings section

The Agent settings section was rebuilt as plain rows to match the rest of the simplified settings.