Before submitting
Area
apps/server
Steps to reproduce
- In a project, add a Claude Code agent definition that sets its own effort in frontmatter, for example
.claude/agents/implementer-low.md:
---
name: implementer-low
description: Probe agent at low effort.
effort: low
---
Follow the brief.
- Start a Claude thread in T3 Code at a higher session effort, for example xhigh.
- Ask Claude to spawn that agent (
subagent_type: implementer-low, no effort in the Agent tool input), and have the agent run echo $CLAUDE_EFFORT.
- Open the Agents panel.
Expected behavior
The row shows the effort the subagent actually runs at (low), or shows no effort label when T3 can't know it.
Actual behavior
The row shows the parent session's effort (sonnet-5-5 · xhigh) for every subagent, whatever its definition sets. The subagent itself prints CLAUDE_EFFORT=low. Claude Code's subagent transcript (<session>/subagents/agent-<id>.jsonl) records "effort":"low" on every assistant turn. Agents defined at medium and high show xhigh as well.
The cause is the effort fallback in the task_started handler, apps/server/src/provider/Layers/ClaudeAdapter.ts (around line 3814 on main @ 4804036):
const rawLaunchEffort = launchInput?.effort;
const effort =
trimmedString(rawLaunchEffort) ??
(typeof rawLaunchEffort === "number" && Number.isFinite(rawLaunchEffort)
? String(rawLaunchEffort)
: context.currentEffort);
When the Agent tool input carries no effort, which is the normal case for an agent type whose definition sets it, the row gets context.currentEffort, the parent session's effort. The SDK's task_started message has no effort field to read instead. The model has a later correction from the subagent's assistant snapshots, as the comment above that block says. The effort has none.
Possible fixes:
- Read
effort from the agent definition named by launchInput.subagent_type (.claude/agents/<name>.md frontmatter, project or user scope).
- Show no effort label when the launch input has none, instead of the session's effort.
The same fallback probably explains the opus-5-5 · high label on the artifact watcher row in #13978.
Impact
Minor bug or occasional failure
The panel tells you every subagent runs at the session's effort. I took that at face value and nearly reworked agent definitions that were already correct. You can only check by reading the transcripts.
Version or commit
T3 Code 0.0.40. The code is unchanged on main @ 4804036.
Environment
Linux (Ubuntu, kernel 7.0), Claude Code 2.1.287, Claude provider with Opus 5.5 and Sonnet 5.5 subagents.
Workaround
Read the effort from the subagent transcript: each assistant record in subagents/agent-<id>.jsonl has "effort". Or have the subagent run echo $CLAUDE_EFFORT.
Before submitting
Area
apps/server
Steps to reproduce
.claude/agents/implementer-low.md:subagent_type: implementer-low, noeffortin the Agent tool input), and have the agent runecho $CLAUDE_EFFORT.Expected behavior
The row shows the effort the subagent actually runs at (
low), or shows no effort label when T3 can't know it.Actual behavior
The row shows the parent session's effort (
sonnet-5-5 · xhigh) for every subagent, whatever its definition sets. The subagent itself printsCLAUDE_EFFORT=low. Claude Code's subagent transcript (<session>/subagents/agent-<id>.jsonl) records"effort":"low"on every assistant turn. Agents defined atmediumandhighshowxhighas well.The cause is the effort fallback in the
task_startedhandler,apps/server/src/provider/Layers/ClaudeAdapter.ts(around line 3814 on main @ 4804036):When the Agent tool input carries no
effort, which is the normal case for an agent type whose definition sets it, the row getscontext.currentEffort, the parent session's effort. The SDK'stask_startedmessage has no effort field to read instead. The model has a later correction from the subagent's assistant snapshots, as the comment above that block says. The effort has none.Possible fixes:
effortfrom the agent definition named bylaunchInput.subagent_type(.claude/agents/<name>.mdfrontmatter, project or user scope).The same fallback probably explains the
opus-5-5 · highlabel on the artifact watcher row in #13978.Impact
Minor bug or occasional failure
The panel tells you every subagent runs at the session's effort. I took that at face value and nearly reworked agent definitions that were already correct. You can only check by reading the transcripts.
Version or commit
T3 Code 0.0.40. The code is unchanged on main @ 4804036.
Environment
Linux (Ubuntu, kernel 7.0), Claude Code 2.1.287, Claude provider with Opus 5.5 and Sonnet 5.5 subagents.
Workaround
Read the effort from the subagent transcript: each assistant record in
subagents/agent-<id>.jsonlhas"effort". Or have the subagent runecho $CLAUDE_EFFORT.