{"version":"2.1.307","anchor":"subagent-history-browser-is-built-gated-off-by-default","canonical_anchor":"subagent-history-browser-is-built-gated-off-by-default","heading":"Subagent history browser for finished subagents, behind CLAUDE_CODE_SUBAGENT_HISTORY","tier":"notice","area":"Subagents","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.307\/e\/subagent-history-browser-is-built-gated-off-by-default","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.307","markdown":"### Subagent history browser for finished subagents, behind CLAUDE_CODE_SUBAGENT_HISTORY\n\nNew code lets you browse finished subagents from the Background dialog, switched on by the CLAUDE_CODE_SUBAGENT_HISTORY environment variable or a server flag\n\n**Unclear.** Where in Claude Code's interface this list appears is not known.\n\n**What**\n\nA subagent is a helper agent that Claude starts to work on part of a task. Claude Code now has code to list subagents that have already finished in the current session, so you can look back at them.\n\n- The history loader reads each subagent's transcript (its recorded conversation) and its `.meta.json` sidecar file, which sits next to the transcript. It builds a parent and child tree from them and skips observer and taskKind entries.\n\n- Each row shows a label, an `@name` or the agent type, a \"started \u2026\" time, a \"last active \u2026\" time and a \"stopped\" marker. The group is labelled \"Earlier in this session\".\n\n- The Background dialog, which lists background tasks, builds a row of type `subagent_history`. It shows a count, or \"could not be read\" when the history cannot be read. Selecting it expands into `recorded_agent` rows for completed subagents, using `stoppedByUser` and `lastActivityAt` from the live task when there is one.\n\n- The dialog lists the history even when no tasks are running. \"No tasks currently running\" now appears only when history rows are the only rows.\n\n- A source-availability check that already returned false for `monitor_ws` and `self_managed_tasks` now also returns false for `subagent_history` and `recorded_agent`. Those two kinds are handled elsewhere in the same part of the code.\n\n- The dream task detail view also gains a screen variant controlled by `isBackgroundDetailScreenEnabled`.\n\nThe feature reports itself as \"off\" unless its switch is true. An environment variable is a named value set in your shell before starting a program. The switch is the environment variable `CLAUDE_CODE_SUBAGENT_HISTORY`. When that variable is not set, Claude Code falls back to the server-side flag `tengu_rustling_crescent`, whose built-in default in the code is false. Nothing has been read about that flag's actual value.\n\n**Why**\n\nBefore this, finished subagents could not be reviewed from this dialog. This change lets you look back at what they did and when they stopped. Setting `CLAUDE_CODE_SUBAGENT_HISTORY` is the switch the code checks first.\n\n- Flag `tengu_rustling_crescent`: Not enough to say (read for one account on one subscription tier against v2.1.307; this account: no value returned, anonymous baseline: no value returned, compiled default: off) These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.\n- Area: Subagents\n- Tier: You'll notice\n- Useful: 4\/5\n- Signal: 5\/5\n- Scope: individual\n- Heads-up: no\n- Present in the build but not switched on"}