The operator sees little of what the agent is doing while it works.
What's visible today
Executor: one line per turn listing tool calls (turn 3: run_command(pytest)). The model's own text for the turn is written to the transcript but never posted.
Delegation: nothing until the handback. It can run for up to 15 minutes in silence, on the most capable model.
Planning: nothing until the plan or question arrives.
Work
Executor: post the turn's assistant text next to the existing tool summary, with a length limit so long commentary doesn't flood the room.
Delegation: post a line per turn: the tool calls, plus the delegate's text with the same limit. Today Delegation has no notify hook; pass the same one the executor uses.
Tests: commentary is posted and trimmed, and a delegation reports each turn.
Matrix is a display channel only (A1), so none of this is load-bearing. Nothing reads it back.
Out of scope, deliberately
Streaming responses. Streaming would let stop cut off a model call partway through, and would show thinking and text as they're generated. It needs:
streaming in both LLM clients;
a rule that a cut-off turn never goes into the log as if it finished;
editing one Matrix message as it grows;
deciding whether to turn on extended thinking and how much of it to show.
Revisit if a slow stop, or a silent minute inside a single call, becomes a real problem.
The operator sees little of what the agent is doing while it works.
### What's visible today
- **Executor:** one line per turn listing tool calls (`turn 3: run_command(pytest)`). The model's own text for the turn is written to the transcript but never posted.
- **Delegation:** nothing until the handback. It can run for up to 15 minutes in silence, on the most capable model.
- **Planning:** nothing until the plan or question arrives.
### Work
- **Executor:** post the turn's assistant text next to the existing tool summary, with a length limit so long commentary doesn't flood the room.
- **Delegation:** post a line per turn: the tool calls, plus the delegate's text with the same limit. Today `Delegation` has no notify hook; pass the same one the executor uses.
- Tests: commentary is posted and trimmed, and a delegation reports each turn.
Matrix is a display channel only (A1), so none of this is load-bearing. Nothing reads it back.
### Out of scope, deliberately
**Streaming responses.** Streaming would let `stop` cut off a model call partway through, and would show thinking and text as they're generated. It needs:
- streaming in both LLM clients;
- a rule that a cut-off turn never goes into the log as if it finished;
- editing one Matrix message as it grows;
- deciding whether to turn on extended thinking and how much of it to show.
Revisit if a slow `stop`, or a silent minute inside a single call, becomes a real problem.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
The operator sees little of what the agent is doing while it works.
What's visible today
turn 3: run_command(pytest)). The model's own text for the turn is written to the transcript but never posted.Work
Delegationhas no notify hook; pass the same one the executor uses.Matrix is a display channel only (A1), so none of this is load-bearing. Nothing reads it back.
Out of scope, deliberately
Streaming responses. Streaming would let
stopcut off a model call partway through, and would show thinking and text as they're generated. It needs:Revisit if a slow
stop, or a silent minute inside a single call, becomes a real problem.