v0.4.2
Steer context in tasks, not tokens
One task is a thing you asked plus everything the agent did answering it. agent.conversationMaxPairs (1–100, default 20) says how many the prompt carries, and the context panel now has a selector for it:
context · 13.6k of 128k window · 11%
prompt scaffold 5.9k 5% ==========
conversation 6 <1%
free 106.2k 83%
────────────────────────────────────────────
tasks per turn − 20 + sent each turn (1-100)
Every figure above the selector recalculates as you move it, so the cost of the choice is on screen while you make it. Click −/+ or press -/+. This replaces the old transcript line, the capped by … sentence and the set auto (a) button.
Tokens remain the ceiling underneath — a task has no bounded size, so N tasks can still exceed a window, and whichever limit cuts more wins.
⚠️ Behaviour change
History is now capped at 20 tasks by default, where previously only the 32k token cap applied. A long, cheap history that used to survive whole will be trimmed. Set agent.conversationMaxPairs to 100 to effectively turn it off:
atomic-agent config set agent.conversationMaxPairs 100
Fixed
set autocould shrink the transcript 30× — with no window known it fell back totokenBudget * 0.35= 1050 tokens, taking the transcript from 32,000 to 1,050, the opposite of what it promised.- Cloud models had no context window at all in the prompt budget — it came only from the llama-server
/propsprobe, so no window clamp was ever applied off the local path. The model catalogue now reaches the budget. config set agent.approvalLevelcould never succeed — the one safety-critical key rejected the value it had just been given.Retry-Aftercould corrupt a redirect URL inos.http.request, turning a plain 429-with-redirect into ablockedresult.- The approval prompt advertised keys that did nothing — the hint strip said
y/nwhile onlyctrl+y/ctrl+dworked. - The uninstall dialog did not hold the keyboard — the confirmation word landed in the composer behind it, and Esc opened the operator menu on its way out.
- Plan mode: the composer hint could never render, and the plan buttons were mouse-only. They answer to
ctrl+y/ctrl+b/ctrl+dnow.
Reliability
A dead socket is a transport failure rather than a tool bug (#262) · a closed pipe or vanished tty no longer crashes the agent (#263) · an empty completion gets one repair before the turn dies (#264) · errno survives being rewrapped (#265) · stacks Sentry can actually read (#266).
Full Changelog: v0.4.1...v0.4.2