Harness spec 2.0.0: background work is a job — commands and subagents alike, seen and steered
One registry per process, every job owned by a session: bash's background commands (and a command still running at its timeout, which now goes to the background instead of being killed) and subagents started with task background: true. job_list, job_output, job_stop (the former bash_list, bash_output, bash_kill) and the new job_send and report; a finished job wakes the owning session in every front end with its marked note. The TUI counts jobs, lists them (/jobs), opens a command's output, enters a subagent and messages it, moves a command to the background (ctrl+b) and asks before quitting with jobs running. The link gains the jobs capability. Subagents get a session row of their own, the spec's preamble and agent texts, and their errors reach the report. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
75 files changed
+3614
-437
No files matched your search
@@ -32,7 +32,7 @@ test("every tool that can ask takes a purpose; bash says it in description; tool
|
||||
for (const name of ["edit", "write", "read", "web_fetch", "skill_manage", "task"]) expect(spec(name).properties.purpose?.description).toContain("what this call is for")
|
||||
expect(spec("bash").properties.purpose).toBeUndefined()
|
||||
expect(spec("bash").properties.description?.description).toContain("what this command is for")
|
||||
for (const name of ["ask_user", "plan_write", "plan_update", "plan_submit", "bash_output", "bash_list", "notes_search", "note_view", "note_manage"]) expect(spec(name).properties.purpose).toBeUndefined()
|
||||
for (const name of ["ask_user", "plan_write", "plan_update", "plan_submit", "job_output", "job_list", "job_stop", "job_send", "report", "notes_search", "note_view", "note_manage"]) expect(spec(name).properties.purpose).toBeUndefined()
|
||||
})
|
||||
|
||||
test("split: taken out of the arguments; a server's own `purpose` stays its own", () => {
|
||||
|
||||
Reference in new issue
Block a user