Skip to content

Conversation

@ethanndickson
Copy link
Member

@ethanndickson ethanndickson commented Dec 29, 2025

Summary

Enables PTC (Programmatic Tool Calling) to work properly with subagents and fixes several compatibility issues.

Changes

Core Fixes

  • Remove mux. prefix: Nested tool calls in code_execution now emit bare tool names (bash, file_read) instead of mux.bash, mux.file_read
  • Exclude agent_report from sandbox: Must be called as top-level tool for taskService to read args from history
  • Add timeout_secs to code_execution: Default 5 minutes, max 1 hour - needed for subagents that can take 5-15+ minutes

PTC Experiments Inheritance

  • Subagents spawned via task tool inherit parent's PTC experiments
  • Added taskExperiments to workspace config for restart-safe persistence
  • Experiments passed through all task creation/resumption paths

UI Updates

  • Added task tools (task, task_await, task_list, task_terminate) to NestedToolRenderer
  • Removed obsolete normalizeToolName() function

Testing

  • All existing tests updated and passing
  • Typecheck passes
  • Static checks pass

Future

Unify where we convert tool names into the pretty UI components. Right now we have to update the list in two places when we add a new tool, NestedToolRenderer and toolRenderer


Generated with mux • Model: anthropic:claude-opus-4-5 • Thinking: high

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@ethanndickson
Copy link
Member Author

The exclusive PTC experiment flag intentionally overrides tool policy. When exclusive mode is enabled, code_execution is mandatory—it's the only way to access bridged tools. If policy could disable it, there would be no way to use tools at all. The experiment flag itself is the admin opt-in.

Resolving as intentional design.

- Remove mux. prefix from nested tool names in quickjsRuntime
- Inherit PTC experiments to subagents spawned via task tool
- Add timeout_secs parameter to code_execution (default 5min, max 1hr)
- Exclude agent_report from sandbox (must be top-level for taskService)
- Add task tools to BridgeableToolName for type generation
- Add task tool rendering to NestedToolRenderer
Apply applyToolPolicy to the final tool set in exclusive PTC mode,
matching the behavior in supplement mode. This ensures admin/preset
policies can properly enable, disable, or require code_execution.
@ethanndickson ethanndickson added this pull request to the merge queue Dec 29, 2025
Merged via the queue into main with commit d87410a Dec 29, 2025
20 checks passed
@ethanndickson ethanndickson deleted the ptc-compat-fc5t branch December 29, 2025 06:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant