Skip to content

v0.6.3

Choose a tag to compare

@plombeer31 plombeer31 released this 17 Sep 17:09
· 409 commits to main since this release

23 PRs on top of v0.6.2 — the harness release: Fusion and local models that finish the task, and tools that stop damaging the user's work.

Fusion that delivers

  • Workers see the request. Every brief quotes the operator's original request; briefs up to 32K chars; a worker's reads are confined to its working directory and the fan-out's write scope (#426).
  • Task status is ground truth, not the worker's reply. A task that declared files and wrote nothing is no_changes; a reply on the forced final step is max_steps; the delegate result opens with a status table for every task and the call reports all_ok / partial / all_failed (#426, #428, #431).
  • A contract between the parts of a fan-out. fusion.delegate takes owners, provides, requires, inputs and checks; parts run in waves ordered by requires → provides; one refusal names every problem at once (#431, #439, #459).
  • Check before you accept. New read-only verify.syntax and verify.run (command, service or headless page) run against a throwaway copy of the working directory; contract checks run through them (#432).
  • No more wasted workers. Worker time limits come from measured throughput; a worker is handed back only after it stalls, never mid-generation; reasoning effort and output caps reach the provider; llm.runMode.fusion.cloudWorkers caps a cloud fan-out; /runmode status says what will actually run (#434, #439).
  • A stalled review must act. A Fusion orchestrator that keeps reading without delegating gets one notice, then can only fusion.delegate or reply (llm.runMode.fusion.reviewStallSteps, #459).

Local models

  • The KV cache survives long turns. Prompts only append between history cuts, sessions keep their llama-server slot across steps and resumes, context and fan-out width are sized from the GGUF header and a throughput probe, sliding-window models launch with --swa-full (#429, #436).
  • Bounded thinking. localModels.reasoningBudgetTokens (default 1,500) caps the reasoning prelude before each tool call; localModels.thinking: off now applies to every prompt (#453).
  • Per-request grammar and tool roles. A local orchestrator can no longer generate calls the gate would refuse; workers and orchestrators get their own tool sets (#430).
  • Families without a hand-built profile render through llama-server's own chat template (localModels.useServerTemplate, #435).

Cloud providers

  • Native multi-turn messages for OpenRouter, OpenAI-compatible, AIMLAPI and Gemini, with Anthropic cache_control breakpoints, cache-capable routes for Google models and cached tokens on the usage record (#433).
  • Reasoning fields and tagged tool calls parsed for every OpenAI-compatible kind; o* / gpt-5 models no longer get temperature / max_tokens (#433).
  • Provider errors told apart: exhausted credit stops the turn resumably, retry hints are honoured up to 180 s, a context-length rejection learns the window, repacks and retries once (#435).

Tools that protect your work

  • Your files are safe. Replacing a pre-existing file saves the previous bytes and says so; os.fs.restore brings them back; a file the request names as an input is not replaced without overwrite: true (#438, #459).
  • Long shell commands detach instead of hanging. After tools.shell.defaultTimeoutMs (10 min) the agent gets the output so far and a job id to wait, kill or keep (#452).
  • Reads outside the working directory ask first through the approval ladder (fs_read_outside; agent.readScope: unrestricted to opt out) (#452).
  • Calls carrying model control markers or unknown argument keys are refused with the expected keys; batched writes run whole under auto-approval; .js/.json writes are parse-checked; os.fs.grep { literal: true } (#427, #435, #438).
  • A reply batched with work tools is a progress note, not the end of the turn (#453).
  • Bigger defaults for today's contexts: 200 conversation pairs, 32K batch results, 8K render cap, 60 worker steps (#437).

Also

  • Atomic Chat (local) provider preset; an External llama.cpp URL on :1337 opens the wizard on it (#424).
  • Re-run first-time setup any time: /onboarding (alias /setup), the Setup menu row "Run first-time setup again…", or atomic-agent tui --onboarding. Providers, keys, models, sessions and memory are untouched, and backing out writes nothing (#425).
  • Downvoted profile facts, pinned ones included, now leave ### profile as memory.voting.profileFilterThreshold promised (#423).
  • Model downloads no longer hang at 9x%. A connection the CDN throttles is swapped for a fresh one, and connections that finish their slice take over the rest of a slow one (#462).
  • A message typed while a turn is running is labelled YOU · steered into the running turn, so the turn's answer is no longer read as its reply; [try again] on a stopped turn re-sends the turn's own request, not the steer (#461).
  • The forced reply after a wandering loop stop says what actually happened instead of "a no-progress loop after 12 blocked attempts" (#460, refs #458).

Config migrates automatically to v69; values you set yourself are kept.