Repository navigation
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — This change cleans up Markdown image and link markup in subagent previews while preserving their labels. Its effects are limited to display formatting, with no changes to stored content or product defaults. You can add or adjust custom eligibility rules. Learn more. |
Findings
|
| Layer / File(s) | Summary |
|---|---|
Extract and test detail formatting apps/web/src/components/chat/V2LifecycleRow.logic.ts, apps/web/src/components/chat/V2LifecycleRow.tsx, apps/web/src/components/chat/V2LifecycleRow.logic.test.ts |
The logic module now exports plainDetail, and the lifecycle row imports it instead of defining it locally. Tests cover image and link markup while preserving readable text. |
Estimated code review effort: 2 (Simple) | ~10 minutes
Change: Bug fix
Suggested reviewers: maria-rcks, juliusmarminge
Merge Risk: 
Low · up to 292b9
-
A narrow preview-formatting issue remains for links with nested parentheses; it does not block normal lifecycle operation.
Pre-merge checks: 
4
Finishing Touches
-
Generate unit tests (beta)
-
- Create a new PR
-
- Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
|
Note Written by Verified in a real dev environmentVerified as-is at
Short command and runtime transcript Not verifiedNative desktop, iOS/Android, other providers, and remote/tunnel connections were not exercised on this Linux web-client pass. Actual image retrieval and external destination availability were not tested; the change formats the result text. Deeper nested-parenthesis parsing remains the explicitly deferred limitation discussed above. |



Problem
A subagent row in the web chat timeline shows a one-line preview of the subagent's result. When that result contains a Markdown image or a link whose URL has parentheses, the preview keeps stray punctuation:
 Verifiedshows as!screenshot Verified[docs](https://en.wikipedia.org/wiki/T3_(protocol))shows asdocs)[report](outputs/report%20(final).md)shows asreport.md)Mobile had the same bug and fixed it in #23538. The web copy of that helper (
plainDetailinV2LifecycleRow.tsx) was not updated, so web still shows the broken preview.Change
Move
plainDetailunchanged into the existingV2LifecycleRow.logic.tsso it can be tested, then use the link regex from #23538 (identical to mobile'ssubagentCardDetail). It drops the optional leading!and accepts escaped or balanced parentheses inside the URL. The test reuses mobile's four cases.Scope and approval
Very small, focused fix for an obvious bug, so no prior issue: web keeps a parity gap that #23538 already fixed on mobile, and the fix is the same one-line regex. Similar to the #25468 → #29601 follow-up. Overlap search: the local PR index and
gh search prs("subagent preview link", "V2LifecycleRow plainDetail") found no open PR touching this helper. #17420 (open) edits subagent rows but not this function.Verification
vp test run src/components/chat/V2LifecycleRow.logic.test.ts: 3 of 4 new cases fail, e.g.AssertionError: expected 'docs)' to be 'docs'andexpected 'report.md)' to be 'report'.vp run check:changed: pass (format, lint, knip, typecheck, test, react compiler).subagentDetailPreview, which keeps raw Markdown on both clients. That behavior is unchanged here.Reviewed with sol-loop: 1 round with GPT-6.1 Sol on high. Sol verdict: approved.
Created with Claude Opus 5.5 in Claude Code (T3 Code).
🤖 Generated with Claude Code