🤖 feat: present subagent reports in chat#3742
Conversation
Render trusted synthetic subagent report envelopes as readable transcript cards with semantic progress state, markdown, structured-output disclosure, and mobile-safe layout. Add behavioral coverage plus full-app desktop and pinned-phone Storybook stories. _Generated with `mux` • Model: `openai:gpt-5.6-sol` • Thinking: `xhigh` • Cost: `$124.37`_ <!-- mux-attribution: model=openai:gpt-5.6-sol thinking=xhigh costs=124.37 -->
|
@codex review Please review the dedicated synthetic subagent report presentation, fallback behavior, and responsive Storybook coverage. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8b4df24cf3
ℹ️ 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".
Anchor report markdown parsing at the protocol field terminator so examples containing report tags remain intact, and normalize valid multiline titles for display. _Generated with `mux` • Model: `openai:gpt-5.6-sol` • Thinking: `xhigh` • Cost: `$124.37`_ <!-- mux-attribution: model=openai:gpt-5.6-sol thinking=xhigh costs=124.37 -->
|
Addressed both Codex findings in
|
|
@codex review Please review the parser hardening for protocol-looking markdown delimiters and multiline titles. |
|
Codex Review: Didn't find any major issues. Another round soon, please! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
Summary
Present sub-agent progress and completion reports as first-class transcript content instead of exposing the model-facing
<mux_subagent_report>protocol envelope. This is a follow-on to #3714.Background
Incremental
agent_reportupdates now wake the parent and are intentionally UI-visible. Before this change, those synthetic messages appeared as dimmed user bubbles with anAUTObadge and raw XML tags, which obscured the actual findings and made status hard to scan.Implementation
agent_reporttool titles so status remains visible at narrow widths.Validation
bun test src/browser/features/Messages/MessageRenderer.test.tsx— 15 passedbun test src/browser/features/Tools/AgentReportToolCall.test.tsx— 3 passedmake static-checkmake storybook-buildphoneviewport in both themes.Risks
The parser intentionally recognizes only the exact synthetic envelope emitted by TaskService. Unknown or malformed payloads self-heal by falling back to the existing generic synthetic-message renderer, avoiding blank or untrusted special-case UI.
Pains
The Storybook test-runner can exceed its 30-second smoke timeout while cold-starting a full desktop App story before story assertions begin. The desktop and phone stories are therefore visual-only Pixel contracts, while parser and rendering behavior is covered by colocated unit tests.
Generated with
mux• Model:openai:gpt-5.6-sol• Thinking:xhigh• Cost:$124.37