Thanks for the clear screenshots! I reproduced the same behavior on my end. Clicking a subagent card while it’s still running opens a standalone tab whose body stays on Loading Chat for the entire run, then loads the full transcript once the subagent finishes. This is something we’ve been seeing reported over the last couple of weeks, and I’ve flagged it with our team.
A couple of things that help in the meantime:
Watch progress in the parent chat. The subagent card there keeps its live status (Waiting for subagent, todos counter, current thought) throughout the run.
resumed subagents render normally (as you noticed), so if you need to jump into a running one, resume it.
Refocusing or reopening the tab after the subagent finishes loads the full transcript. I’ll circle back when there’s a fix.
Subagent was interrupted due to the error “We are experiencing high load on the Grok 4.6 model; please try another one or Auto,” and after this interruption, it remained in a state where it could not be opened.
If the main Agent hadn’t been instructed by me to git stage between Subagent calls, this could have ruined several hours of coordinated agent work and I wouldn’t have been able to find out exactly what work the subagent had managed to complete and where he had left off.
# * Injects Codebase Memory MCP discovery guidance into agent context where Cursor honors it.
$ErrorActionPreference = 'Stop'
# * Consume stdin so the hook protocol stays clean even if we ignore most of the payload.
$raw = [Console]::In.ReadToEnd()
$payload = $null
if (-not [string]::IsNullOrWhiteSpace($raw)) {
$payload = $raw | ConvertFrom-Json
}
$message = 'Code discovery: prefer codebase-memory-mcp (search_graph, trace_path, get_code_snippet, query_graph, search_code) over grep/file-read; run index_repository explicitly if the project is not indexed. Auto-indexing is disabled intentionally. Project/index name hint: derive it from the full repo path by removing the drive colon and joining path segments with hyphens, e.g. G:/GitHub/RepoName -> G-GitHub-RepoName; use list_projects if unsure.'
$eventName = ''
if ($null -ne $payload -and $null -ne $payload.hook_event_name) {
$eventName = [string]$payload.hook_event_name
}
if ($eventName -eq 'subagentStart') {
# * Documented: permission. additional_context mirrors sessionStart; Cursor 3.11 merges it
# * but does not currently surface it inside template subagent context (platform gap).
[ordered]@{
permission = 'allow'
additional_context = $message
} | ConvertTo-Json -Compress
exit 0
}
# * sessionStart (and unknown payloads): inject into the parent conversation context.
[ordered]@{
additional_context = $message
} | ConvertTo-Json -Compress
Should I file a separate bug report for this, or just mark the current one as solved?