Skip to content

v0.2.0 — delegate in the background, and answer the dialog first

Latest

Choose a tag to compare

@lroolle lroolle released this 17 Aug 08:22
· 1 commit to main since this release

Why upgrade: in 0.1.0, delegating cost you the turn — crew_send
blocked until the crew member finished. Now it doesn't have to.

Background delegation

crew_send(pane, message, run_in_background: true)
  → started crew job crew-1
  … the model keeps working; you watch the pane …
  → job crew-1 finished → job_output(crew-1)

The job is owned by the calling agent, so job_list and job_output
follow the harness's own session fence and the completion notice wakes an
idle model. job_kill stops the watch, interrupts the crew member, and
leaves the pane seated — a cancelled delegation is not a reason to
close a terminal someone is watching. Needs ctx.jobs and a job
controller; it says exactly that when either is missing, and
enableRunInBackground: false removes the parameter.

A send returns the answer, not the whole screen

The screen is diffed against a mark taken just before typing, so the model
reads what arrived instead of finding it again inside a banner it has
already seen.

The dialog correction — read this one

In a directory it has not been trusted in, Claude Code and Codex open on
their own trust prompt, not a composer. A task sent into a dialog is
typed into the dialog, and its digits can pick an option: a "count from
1 to 12" prompt once chose 2. No, quit.

So crew_seat now tells the caller to read the first screen, and
crew_send with an empty message presses Enter to answer a dialog without
typing into it. Auto-answering a product's trust prompt is not a plugin's
decision to make.

Verification

tests/real-cli.spec.mjs seats the real claude and codex behind
CREW_REAL_CLI=1, each in a throwaway workspace so answering a trust
prompt never marks a real project trusted. Verified against claude
2.1.232
and codex 0.147.0, foreground and background. 33 tests run
by default.

New: dsh.works/dsh-crew.

Full notes: CHANGELOG