berd law and fixes for subagent activity - #17
Conversation
Signed-off-by: Larry <8cf5a83f590ec0955b11647d1c88f796a98e088c30a492c58e0e46c3026ae7a4@buzz.block.builderlab.xyz>
Signed-off-by: Larry <8cf5a83f590ec0955b11647d1c88f796a98e088c30a492c58e0e46c3026ae7a4@buzz.block.builderlab.xyz>
Signed-off-by: Larry <8cf5a83f590ec0955b11647d1c88f796a98e088c30a492c58e0e46c3026ae7a4@buzz.block.builderlab.xyz>
Signed-off-by: Larry <8cf5a83f590ec0955b11647d1c88f796a98e088c30a492c58e0e46c3026ae7a4@buzz.block.builderlab.xyz>
Signed-off-by: Larry <8cf5a83f590ec0955b11647d1c88f796a98e088c30a492c58e0e46c3026ae7a4@buzz.block.builderlab.xyz>
Signed-off-by: Larry <8cf5a83f590ec0955b11647d1c88f796a98e088c30a492c58e0e46c3026ae7a4@buzz.block.builderlab.xyz>
564ddcc to
245778f
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 564ddcc557
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Signed-off-by: Larry <8cf5a83f590ec0955b11647d1c88f796a98e088c30a492c58e0e46c3026ae7a4@buzz.block.builderlab.xyz>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f5ed095e88
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
Review at f5ed095e, including the independent review from peon. The remaining behavioral finding is the existing inline P2 on unclassified Codex lifecycle calls, which I independently verified against Codex's current followup_task(target, message) and interrupt_agent(target) schemas. One non-blocking maintainability finding is inline below. The previously reported spawn_agent provenance defect is fixed at this head.
Validation at this exact head: pnpm check and pnpm typecheck pass; focused provenance/projection/UI/ACP suites pass 176/176; AppShell.navigation.test.tsx passes 130/130 in isolation. The full frontend run had one unrelated AppShell focus assertion fail while 6,131 tests passed; the isolated rerun passed. Rust, security, clean-install, and DCO CI checks are green; frontend CI is still pending.
Signed-off-by: Larry <8cf5a83f590ec0955b11647d1c88f796a98e088c30a492c58e0e46c3026ae7a4@buzz.block.builderlab.xyz>
6758f43 to
4e77de3
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4e77de3d1c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Signed-off-by: Larry <8cf5a83f590ec0955b11647d1c88f796a98e088c30a492c58e0e46c3026ae7a4@buzz.block.builderlab.xyz>
🤖
Summary
This PR changes the rendered chat UX, not just the written laws. Of its 990 added lines, 5 codify the two laws in
LAWS/CHAT.md; the other 985 implement and test the behavior across ACP provenance persistence, activity classification, rendering, transcript cache invalidation, and localization.Subagent activity now names the agent and delegated task whenever Berd knows them, and uses operation-specific titles for message delivery, waiting, interruption, and cancellation.
UX problem
Subagent tool calls often appeared as generic or misleading activity in chat. Berd could know which subagent was involved and what work it was doing, but lose that context between the original delegation and later wait/check/cancel events. Users then saw titles such as “Waiting on a subagent” instead of the agent and task they were actually waiting for.
Codex collaboration actions also shared labels that overstated what happened: delivering a message appeared as a new delegation, interrupting the current turn appeared to cancel the agent, and waits involving several agents hid all target names.
Rendered behavior
Waiting on a subagentWaiting on Rivet · Count markdown filesDelegating to /root/reviewer · Review the patchSending a message to /root/reviewer · Review the patchCancelling /root/reviewerInterrupting /root/reviewer’s current turnWaiting on a subagentWaiting on agent-1, agent-2The implementation:
These paths cover Goose, Claude Code, and the Codex collaboration lifecycle. English and Spanish catalogs include the new activity copy.
Laws added
Violations fixed
send_messageappeared as delegation andinterrupt_agentappeared as cancellation. They now render message delivery and current-turn interruption respectively; actual close remains cancellation.Scope
list_agentsout of subagent activity.