Repository navigation
Release Agent 0.5.0 - #290
Conversation
|
Generated by Claude Code |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013jkdGEK7HMibaxgHFDtGXA
42a2c52 to
ed92a48
Compare
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Requested by George · project thread
Bumps
agent,agent-clientandsonnyto 0.5.0 (Cargo.lock follows), on main at b0869f7 (#291), with the whole plate merged. The release notes are the section below; they become the GitHub release's notes.Checked:
cargo metadata --lockedpasses. No visible change, so no screenshots.Agent 0.5.0
Everything since v0.4.1: the daemon sandboxes a bot's commands, writes and
edits the way Codex does, and Sonny sandboxes its leads and tasks by
default; the approver follows Codex's guardian and judges only sandbox
escapes; Sonny opens full screen, with find, a side pane for files,
/status, /background and side chat; agent-only Sonny commands become tools;
pictures work end to end; bots run read and command calls in parallel,
patch files with
apply_patchand search the web; a five-part pacerrework keeps many bots fast under rate limits and overloads; and settings
move to
~/.agent/config.toml.Before you update
21 (was 19), for task resolution (Sonny: group the lead's tasks by state in /status, and let the lead resolve them #244) and tools a client answers (Declared tools a client answers: hold, then park, with gates #248).
kept; 0.4.1 cannot open a migrated store.
~/.agent/config.toml(Effort defaults for leads, tasks and judges in ~/.agent/config.toml #251).~/.agent/envkeepsprovider keys only.
AGENT_JUDGEis gone: set[judge] modelandeffortinstead. In.agents/project.toml,reasoningis noweffortand
threads_reasoningis nowthreads_effort.sonny taskstart and rm,
show,run, the lookout subscriptions andproject addare no longer commands; memory and triggers are tools too, and the
~/.agent/memoryand~/.agent/triggerscripts stay for people andscripts.
autoandaskrunworkspace-writewith the network on and their repository'sgit folder writable;
fullrunsdanger-full-access; tasks always runworkspace-write. A call that would leave the sandbox goes to theapprover. Git hooks and config stay read-only inside a writable git
folder.
brew trust lydakis/agent.Sandbox and approvals
sandbox(
read-only,workspace-writeordanger-full-access),writableandnetwork.shellruns under bubblewrap on Linux and Seatbelt on macOS,ported from Codex, and confined
writeandeditrun inside it. Onlyescapes are gated; with no gate they are refused. Children and forks
inherit their creator's sandbox.
agentandsonnyCLIs (Sandbox: sandboxed bots use the agent CLI through their own socket, capped by caller #276) through asocket of their own, which answers as that bot: no
configure, noanswering approvals, no shutdown, and it removes only its own bots.
written policy and one assessment per call; a denial goes straight back
to the model; reviews fail closed and say so. The judge sees the agent's
history (tool output marked untrusted) and its AGENTS.md, judges only
sandbox escapes, and a model judge may look around read-only first.
the judge works, "✗ Request denied" with its reason, and
/approveretries a denied call once.
Sonny
triple-click copy with no held key; Ctrl+F finds text; older messages
load as you scroll back; the conversation keeps to 100 columns; a pane
beside it shows file previews with syntax colors and Markdown,
/status,the side chat and
/background(Sonny: /background opens in the side pane on the full screen #283)./fullscreenswitches to inline./statusgroups tasks (Sonny: group the lead's tasks by state in /status, and let the lead resolve them #244, Sonny: timers show the running turn's time, or how long the last turn took #266, Sonny: tasks resolve themselves, as claude.ai threads do #284): Needs you, Working, Readyfor review, Idle and Resolved. The lead resolves tasks with
resolve_task, and a task can resolve itself; new work reopens it.Timers show the running turn's time, or how long the last turn took.
/background(Sonny: /background lists triggers and lookout subscriptions, with a ↻ count per agent #267) lists triggers and lookout subscriptions, firesor removes them, and a ↻ count marks agents with something running.
askis a decision (Sonny: ask puts a decision with reasons where it was asked #245): a question, why it is asked, two to fouroptions with what each means, and a recommendation, drawn where it was
asked. Open questions older than the replayed history stay open (Sonny: keep open questions older than the replayed history #226).
Sonny opens in is its own project; in a repository, the nearest project
in it, else the repository's top.
subfolders = "project"keeps thefolders below a project.
~/.agents/agents/lead.mdandtask.md, and your edits are kept.task's brief names its copy; sandfs 0.9 freezes copies of folders on
another disk and a waiting task gives memory back (Sonny: sandfs 0.9, frozen copies for folders on another disk, and a waiting task gives memory back #271); a new task's
worktree starts with clones of the lead's build folders (Sonny: a new task's worktree starts with clones of the lead's build folders #286).
cares about the person; at most three open decisions; nothing goes out
in the person's name without their words;
agent interrupt --turntakes back a queued note.
script. Effort defaults for leads, tasks and judges (Effort defaults for leads, tasks and judges in ~/.agent/config.toml #251).
as it rests; the lead sees every task message and the judge only decides
what cannot wait, including a task drifting from what the person means.
editing keys in the composer (Pictures in messages and from read, counted at their token cost; Sonny's shell editing keys #242); a named project lead, surviving a
terminal waking, new leads in their own tab (Sonny: name the project lead, survive a terminal waking, open a new lead in its own tab #238); Herdr restarts keep
Sonny's services (Keep Sonny's services and Herdr presence across Herdr restarts; fix flaky fake-program tests #231); Claude bots use the one-hour prompt cache
(Sonny: make Claude bots with the one-hour prompt cache #249).
Runtime
readreturns animage as a picture, each counts at its token cost, and a request keeps
its newest pictures while older ones go as their words.
client: the call holds, then parks, behind gates.
historyreads anotheragent's turns, so tasks see their siblings (history reads another agent's turns, so tasks can see their siblings #256).
ungated commands starts together, up to four at a time, as in Codex.
Results are recorded in call order; gated calls, declared tools, writes
and edits still run one at a time.
apply_patch(apply_patch: Codex's patch tool beside edit, freeform on Responses #254) besideedit, freeform on the Responses API, asCodex has it.
web.runon an OpenAI API key, hosted search on the Claude API and onGPT via Bedrock. It is on by default;
web_search = "disabled"in~/.agent/config.tomlturns it off. ChatGPT plan logins and Claude onBedrock get no search.
failing; runaway output drains slowly; commands run without a terminal
(
TERM=dumb, pagers set tocat); results reportwall_time_ms.its own call; Anthropic calls reserve the output they actually write and
are charged only the input that counts against the limit; server errors
wait as their response asks; a spent cap ends the turn; a call waiting
for its allowance parks instead of holding its request in memory.
retried, statements stay prepared; an empty reply after a tool call ends
the turn.
fireprints itsturn handle,
add --replacekeeps history, memory holds up to 16 KiB.Docs and CI
Fix three flaky tests the new gate trips on #250, Tests check what happened first, not how long it took #282).
each daemon change against its base (CI: screen each daemon change against its base #289).
🤖 Generated with Claude Code
https://claude.ai/code/session_013jkdGEK7HMibaxgHFDtGXA