Normalize Codex MCP, skill, and collab agent tool items#201
Conversation
- Map Codex mcpToolCall and collabAgentToolCall notifications to canonical payloads - Classify skills, MCP servers, and subagents in usage recording - Show SKILL.md reads as skill displays in chat tool UI - Unwrap MCP result content text blocks for ACP tool output
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 82cfb30009
ℹ️ 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".
| /^(loaded|using) skill\b/i.test(name) || | ||
| /^(loaded|using) skill\b/i.test(title) | ||
| /^(loaded|using) skill\b/i.test(title) || | ||
| readSkillName(p, args) !== undefined |
There was a problem hiding this comment.
Avoid classifying args.name as a skill
When any non-skill tool carries an args.name value, this predicate now succeeds because readSkillName() returns str(args, "name"); for example existing Workflow tool events with args.name never reach the subagent branch below and are recorded as kind: "skill" instead of subagent, corrupting usage stats. Restrict this check to actual Skill tools or SKILL.md paths, and only use args.name after the item is known to be a skill.
Useful? React with 👍 / 👎.
Type: Bugfix
mcpToolCallandcollabAgentToolCallitems to canonical MCP and subagent tool shapes so they render and complete with the right metadata in chatSKILL.md) and show them as skill tools instead of generic file readscontenttext blocks so tool output displays formatted JSON instead of raw objects