Skip to content

fix(server): Claude 5 task lists show up on orchestrator v2 - #14337

Closed
TonybynMp4 wants to merge 4 commits into
pingdotgg:t3code/codex-turn-mappingfrom
TonybynMp4:fix/v2-claude-task-tools
Closed

TonybynMp4 wants to merge 4 commits into
pingdotgg:t3code/codex-turn-mappingfrom
TonybynMp4:fix/v2-claude-task-tools

Conversation

@TonybynMp4

Copy link
Copy Markdown
Contributor

Fixes #14322

Claude 5 models no longer have TodoWrite. They only get TaskCreate/TaskUpdate/TaskList when CLAUDE_CODE_ENABLE_TODO_TOOLS=1 is set, and the V2 Claude adapter didn't set it or map those tools. As a result, task lists never reached the UI on orchestrator v2.

  • createClaudeAdapterV2 sets CLAUDE_CODE_ENABLE_TODO_TOOLS=1 unless the environment already sets it.
  • The adapter keeps one task map per session and updates it from finished root task-tool calls (subagent calls are ignored):
    • TaskCreate takes the task's id and subject from the tool result.
    • TaskUpdate changes status or subject; deleted removes the task.
    • TaskList replaces the whole list.
  • Each turn projects the map as one todo_list plan that updates in place. The previous turn's plan is superseded, as with other plan kinds.

Tests:

  • A unit test in ClaudeAdapterV2.test.ts covers a two-turn task list and checks the env opt-in.
  • A new claude_todo_list replay fixture was recorded against claude-sonnet-5-5. It fails without the fix. The recorder opts into task tools the same way the adapter does.

Not changed: in read-only sandbox mode, Claude only gets Read/Glob/Grep, so it has no task tools there (it didn't have TodoWrite there before either). The composer drawer hiding unfinished lists when a turn ends is tracked separately in #14327.

🤖 Generated with Claude Code

@github-actions github-actions Bot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Sep 30, 2026
@TonybynMp4
TonybynMp4 force-pushed the fix/v2-claude-task-tools branch from be402c4 to 51e61e4 Compare September 30, 2026 00:36
@macroscopeapp

macroscopeapp Bot commented Sep 30, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — This PR changes the default environment for all v2 Claude sessions, enabling Claude 5 task tools and adding user-visible todo-list projection across turns. That production behavior change warrants human review despite the accompanying unit and replay coverage.

You can add or adjust custom eligibility rules. Learn more.

TonybynMp4 and others added 4 commits September 30, 2026 21:51
Claude 5 models only expose TaskCreate/TaskUpdate/TaskList when the host sets
CLAUDE_CODE_ENABLE_TODO_TOOLS=1, and the v2 Claude adapter only mapped
TodoWrite, which Claude 5 no longer has. Default the flag for v2 Claude
sessions (an explicit value still wins) and project the session's task list
as a todo_list plan, one per turn, updated in place.

Fixes pingdotgg#14322

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Records a claude-sonnet-5-5 session that tracks three tasks with TaskCreate
and TaskUpdate, and asserts they project as one completed todo list. The
recorder now opts into task tools the same way createClaudeAdapterV2 does.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Match main (pingdotgg#14341): the composer tasks tab no longer hides once the run
settles or a newer run starts. It stays while any step is pending or in
progress, and goes away when the agent completes or clears the list.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

Copy link
Copy Markdown
Member

Note

This comment is posted by Julius' dot

The Claude adapter port follows the direction approved in #14322, but the diff also removes the settled/current-run checks in ChatView and adds provider-independent retention of unfinished task lists. That is the separate behavior described in #14327, which the PR body says is out of scope and which has no maintainer decision yet. Under one problem per PR, please keep this PR to the Claude tool mapping and replay regression, and pursue drawer retention separately with scope approval and UI evidence. Closing this combined submission; a focused adapter replacement can be reconsidered.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L 100-499 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants