🤖 feat: present subagent reports in chat#3742
Conversation
|
@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".
|
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". |
|
Pixel follow-up:
Please review the refreshed Pixel build; it should now contain the intentional report UI snapshots without the unrelated flakes. @codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 998a748c6d
ℹ️ 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".
|
Addressed |
|
@codex review Please review the exact report-markdown whitespace preservation and Pixel stability changes. |
|
Follow-up: rewrote the hard-break fixture to construct its two trailing spaces in the template expression, so the regression remains exact without source-level trailing whitespace. @codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a22bcaed63
ℹ️ 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".
|
Pixel review update:
@codex review |
|
Addressed |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a9d31bbb76
ℹ️ 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".
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 -->
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 -->
Disable motion and blinking carets only during Pixel captures, mask native media controls, and exclude two duplicate snapshots whose Chromium border rasterization remains nondeterministic. Validated with two complete 337-snapshot Pixel captures producing identical hashes. _Generated with `mux` • Model: `openai:gpt-5.6-sol` • Thinking: `xhigh` • Cost: `$177.24`_ <!-- mux-attribution: model=openai:gpt-5.6-sol thinking=xhigh costs=177.24 -->
Keep report body indentation and trailing spaces intact so indented code blocks and Markdown hard breaks render and copy exactly as reported. _Generated with `mux` • Model: `openai:gpt-5.6-sol` • Thinking: `xhigh` • Cost: `$177.24`_ <!-- mux-attribution: model=openai:gpt-5.6-sol thinking=xhigh costs=177.24 -->
Construct the trailing spaces inside the test expression so whitespace preservation stays covered without leaving source-level trailing whitespace. _Generated with `mux` • Model: `openai:gpt-5.6-sol` • Thinking: `xhigh` • Cost: `$177.24`_ <!-- mux-attribution: model=openai:gpt-5.6-sol thinking=xhigh costs=177.24 -->
Remove the broad Pixel-only motion override and duplicate snapshot exclusions that caused unrelated review churn. Upgrade Pixel to 0.2.2 so review entries include unique story names, while retaining only the native media-control mask. Also preserve embedded title delimiters in valid subagent report envelopes. _Generated with `mux` • Model: `openai:gpt-5.6-sol` • Thinking: `xhigh` • Cost: `$177.24`_ <!-- mux-attribution: model=openai:gpt-5.6-sol thinking=xhigh costs=177.24 -->
Keep Pixel 0.2.1 to avoid repository-wide display-name churn, but split the new report coverage into uniquely titled desktop and phone stories so both appear clearly in visual review. _Generated with `mux` • Model: `openai:gpt-5.6-sol` • Thinking: `xhigh` • Cost: `$183.66`_ <!-- mux-attribution: model=openai:gpt-5.6-sol thinking=xhigh costs=183.66 -->
Drop the stale pre-rebase lockfile delta after rebasing the report presentation branch. _Generated with `mux` • Model: `openai:gpt-5.6-sol` • Thinking: `xhigh` • Cost: `$183.66`_ <!-- mux-attribution: model=openai:gpt-5.6-sol thinking=xhigh costs=183.66 -->
a9d31bb to
8cb7413
Compare
|
Rebased onto current
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8cb7413509
ℹ️ 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".
Serialize report fields as JSON inside the existing mux_subagent_report wrapper so arbitrary Markdown, whitespace, and delimiter examples round-trip without ambiguity. Retain legacy envelope parsing for persisted transcripts. _Generated with `mux` • Model: `openai:gpt-5.6-sol` • Thinking: `xhigh` • Cost: `$229.93`_ <!-- mux-attribution: model=openai:gpt-5.6-sol thinking=xhigh costs=229.93 -->
|
Addressed |
|
@codex review Please review the unambiguous JSON report framing, legacy compatibility, and uniquely titled Pixel stories. |
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Workflows to automatically generate PRs for you. |
|
Addressed |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ee384ad2b7
ℹ️ 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".
Favor the first legacy title/report separator so historical report Markdown that documents the old protocol remains intact. New reports continue to use unambiguous JSON framing. _Generated with `mux` • Model: `openai:gpt-5.6-sol` • Thinking: `xhigh` • Cost: `$229.93`_ <!-- mux-attribution: model=openai:gpt-5.6-sol thinking=xhigh costs=229.93 -->
|
Addressed |
|
@codex review Please review JSON framing for new reports, legacy compatibility, and uniquely titled Pixel entries. |
|
Codex Review: Didn't find any major issues. Breezy! 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". |
Freeze motion and carets only during Pixel captures, render at 2x density, and exclude two duplicate stories with irreducible Chromium border rasterization. Two complete 337-shot captures produced identical hashes. _Generated with `mux` • Model: `openai:gpt-5.6-sol` • Thinking: `xhigh` • Cost: `$290.87`_ <!-- mux-attribution: model=openai:gpt-5.6-sol thinking=xhigh costs=290.87 -->
Temporarily hide the new report stories and allow a manual auto-review build so the deterministic branch-wide Pixel state can be approved before generating the final report-only review. _Generated with `mux` • Model: `openai:gpt-5.6-sol` • Thinking: `xhigh` • Cost: `$290.87`_ <!-- mux-attribution: model=openai:gpt-5.6-sol thinking=xhigh costs=290.87 -->
Remove temporary branch-baseline scaffolding and re-enable the uniquely titled desktop and phone subagent report snapshots. _Generated with `mux` • Model: `openai:gpt-5.6-sol` • Thinking: `xhigh` • Cost: `$290.87`_ <!-- mux-attribution: model=openai:gpt-5.6-sol thinking=xhigh costs=290.87 -->
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, obscuring the findings and making status hard to scan.Implementation
agent_reporttool titles so status remains visible at narrow widths.App/SubagentReports/DesktopandApp/SubagentReports/Phone, each in light and dark themes.Validation
bun test src/browser/features/Messages/MessageRenderer.test.tsx— 19 passedbun test src/browser/features/Tools/AgentReportToolCall.test.tsx— 3 passedmake static-checkmake storybook-buildRisks
The parser 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
Pixel 0.2.1 groups snapshots by story title rather than title/story name. Splitting desktop and phone coverage into separately titled story files makes both report views explicit without upgrading the engine and renaming every existing project snapshot. A broad animation override was tested and rejected because it changed 17–25 unrelated baselines.
Generated with
mux• Model:openai:gpt-5.6-sol• Thinking:xhigh• Cost:$183.66