fix(agent-manager): stabilize concurrent subagent rendering#11433
fix(agent-manager): stabilize concurrent subagent rendering#11433marius-kilocode wants to merge 4 commits into
Conversation
Code Review SummaryStatus: 1 Issue Found | Recommendation: Address before merge Overview
Fix these issues in Kilo Cloud Issue Details (click to expand)WARNING
Other Observations (not in diff)No additional out-of-diff issues noted. The earlier source-string brittleness concern appears resolved in this revision. Files Reviewed (3 files)
Previous Review Summaries (3 snapshots, latest commit 9d2c896)Current summary above is authoritative. Previous snapshots are kept for context only. Previous review (commit 9d2c896)Status: 1 Issue Found | Recommendation: Address before merge Overview
Fix these issues in Kilo Cloud Issue Details (click to expand)WARNING
Other Observations (not in diff)No additional out-of-diff issues noted. The prior source-string brittleness concern on this test appears resolved in the current revision. Files Reviewed (1 file)
Previous review (commit 8e62225)Status: No Issues Found | Recommendation: Merge Files Reviewed (8 files)
Previous review (commit 867beac)Status: 1 Issue Found | Recommendation: Address before merge Overview
Fix these issues in Kilo Cloud Issue Details (click to expand)SUGGESTION
Other Observations (not in diff)No additional out-of-diff issues noted. Files Reviewed (8 files)
Reviewed by gpt-5.4-20260305 · 276,602 tokens Review guidance: REVIEW.md from base branch |
Agent Manager can become a completely gray editor while several subagents stream or while a subagent-heavy transcript is scrolled. The extension host and editor shell remain alive, but the webview renderer has terminated. This is different from an ordinary Solid rendering exception or a blank application state.
Crashpad dumps produced by repeated reproductions consistently report a renderer
SIGIOT/SIGTRAPat the same Electron instruction offset. Embedded assertion and source strings point to Blink accessibility inline-text traversal aroundAXBlockFlowData::ComputeNeighborOnLineand the invariant that a physical box fragment still owns inline items. The webview console remains empty because the failure occurs below JavaScript inside Chromium.The failing layout combines several independently valid behaviors:
content-visibility: autocan discard physical layout fragments independently from Virtua.role="log" aria-live="polite"asks the accessibility subsystem to continuously process every changing text fragment.Together these create a narrow state where accessibility traversal can observe generated inline text or a subagent tool row while its Solid owner or physical fragment is being replaced. Local
mainreproduces reliably. Independently stabilizing row identity or keeping layout fragments available interrupted the failure, so this change applies both protections with Agent Manager-specific scope.The durable behavior is:
Index, preserving proxy and DOM identity across streaming status updates.The change intentionally avoids renderer watchdogs, automatic reloads, recovery UI, arbitrary child-history limits, and broad shared-UI changes. It prevents the invalid accessibility/layout state instead of attempting to recover after Chromium has already terminated the renderer.