Repository navigation
v1.9.8
Added
-
See what a busy agent is doing.
session_statusreports these while the agent works:started_by:prompt,background_task,session_messageorsystem;turn_started_at;last_activity: the newest step.
A busy
session_sendandsession_interruptcarry the same fields, so a caller can decide to queue, join or interrupt in one call. -
session_send(deliver: "join")takes a prompt into the turn in flight, returningstatus: "joined_turn"; the answer comes in that turn's final reply.- The default,
"queue", is unchanged. - A join never jumps the queue, and holds off whenever a paste would be unsafe, giving the reason in
join_declined.
- The default,
-
Headless runs are visible and stoppable.
session_status.headless_runslists them, andsession_interrupt(target: "headless")stops one with every process it started.
Changed
- One headless run per session at a time. A second
session_invokeorsession_invoke_asyncgetsinvoke_busy, naming the run in progress. - The tool descriptions say plainly which tool to use.
session_invokeis for short, single-shot questions. Anything long, that edits files or that runs builds or tests goes tosession_send.
Fixed
session_invokereally is fresh now. Before, headless runs resumed the project's conversation.- Abandoned invokes are stopped inside the container on cancel, session close or a dropped connection. Before, only the host's
docker execdied. - A headless run's answer is no longer delivered as the session's reply.
working_onnames the right turn when a background task or another session started it.- A queued prompt no longer lands in a turn that has only just started.
Upgrading
Run brew upgrade aidc or aidc update. Then run aidc rebuild, and restart the server with aidc mcp stop && aidc mcp start. Existing sessions get fresh headless runs without an upgrade, because the MCP asks for it explicitly. aidc upgrade <session> updates the in-image wrapper too.
Full details are in the CHANGELOG.