Skip to content

fix(providers): bound overlong tool wire names - #7637

Open
BillLeoutsakosvl346 wants to merge 1 commit into
stagingfrom
fix/platform-tool-name-limits
Open

fix(providers): bound overlong tool wire names#7637
BillLeoutsakosvl346 wants to merge 1 commit into
stagingfrom
fix/platform-tool-name-limits

Conversation

@BillLeoutsakosvl346

Copy link
Copy Markdown
Contributor

Summary

  • Reuse existing provider-only aliases for unique and first-occurrence tool IDs longer than 64 characters.
  • Preserve canonical IDs for execution, logs, forced selection, and instance-bound credentials; keep valid short IDs unchanged.
  • Reuse existing collision handling and response/stream projection instead of renaming integrations or adding another naming framework.

Why

The existing duplicate-name aliaser already bounds generated names, but passed the first/unique overlong name through unchanged. Claude documents a 64-character tool-name limit: https://platform.claude.com/docs/en/agents-and-tools/tool-use/define-tools . This addresses length only, not a general character-policy redesign.

Validation

  • 201 focused provider identity/binding/utility tests passed.
  • App type-check, changed-file Biome, API validation, and git diff --check passed.
  • Independent code review checked execution mapping, forced selection, collisions, and repeat-call stability.
  • Only two existing files changed; one new regression case plus an updated boundary case.

@vercel

vercel Bot commented Sep 9, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated
docs Skipped Skipped Sep 9, 2026 1:19am UTC

Request Review

@greptile-apps

greptile-apps Bot commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

RetriggerView in GreptileConfidence Score: 5/5

The PR appears safe to merge because overlong wire IDs are bounded without disrupting canonical execution identity or existing valid IDs.

Summary

  • Leaves valid IDs of 64 characters or fewer unchanged.
  • Reuses existing collision avoidance and canonical-ID projection.
  • Adds coverage for overlong IDs, reserved alias collisions, credential binding, and repeated assignment stability.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart LR
  Tool[Canonical tool ID] --> Check{Over 64 characters<br/>or duplicate?}
  Check -->|No| Keep[Keep canonical ID as wire ID]
  Check -->|Yes| Alias[Generate bounded collision-safe alias]
  Alias --> Map[Store wire-to-canonical mapping]
  Keep --> Provider[Provider request]
  Map --> Provider
  Provider --> Project[Project responses and streams<br/>back to canonical ID]
  Project --> Execute[Canonical execution and observability]
Loading

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