Skip to content

fix(provider): use the renamed web-search tool in the stream handler - #944

Closed
ANIRUDDHA ADAK (aniruddhaadak80) wants to merge 1 commit into
synthetic-sciences:mainfrom
aniruddhaadak80:fix/provider-web-search-name
Closed

ANIRUDDHA ADAK (aniruddhaadak80) wants to merge 1 commit into
synthetic-sciences:mainfrom
aniruddhaadak80:fix/provider-web-search-name

Conversation

@aniruddhaadak80

Copy link
Copy Markdown
Contributor

What does this PR do, and why?

The response.output_item.done handler HARDCODED "web_search" while the output_item.added handler, doGenerate, and the ongoingToolCalls entry all resolve the registered name via webSearchToolName ?? "web_search".

Linked issue

small fix, no issue

How did you verify it?

cd backend/cli && bun test test/provider/openai-responses-web-search-name.test.ts

Regression proof: a renamed tool keeps one name across input-start and tool-call registers the tool as docs_search and asserts both events carry it. Fails before, passes after.

2 pass / 0 fail; with test/provider/xai-responses-usage.test.ts -> 3 pass / 0 fail

A second test covers default-name behaviour so the change cannot silently alter the common path. Canned SSE replay, nothing stubbed - the same style as the existing xAI test. All six toolName sites now read identically (verified by grep).

Not verified: HONEST SCOPE NOTE: no in-repo caller renames the tool today - a grep for provider-defined across src finds only the model itself. This is a LATENT divergence in a path the surrounding ?? "web_search" fallbacks explicitly exist to support, not a live user-facing break. The SDK tolerated the mismatched name without raising in this test, so the harm is an unroutable tool-call name rather than a thrown failure; I did not confirm how the agent loop reacts to one.

Two pre-existing conditions in this checkout, reproduced on the untouched base commit and therefore not caused by this change: �un run typecheck (turbo) fails with sgo: command not found, and �un run format:check reports roughly 30 files. I ran sc --noEmit for �ackend/cli and prettier on the files I touched instead; neither appears in the base warning list.

Checklist

  • �un run check is green (format, typecheck, backend + frontend/ui + SDK tests)
  • �un run --cwd frontend/workspace build succeeds if I touched rontend/workspace or rontend/ui (not applicable - no frontend/workspace or frontend/ui file changed)
  • ./tooling/repo/generate.ts was run and the ooling/sdk output committed if I changed �ackend/cli/src/server (not applicable - no �ackend/cli/src/server file changed)
  • [[x]] CHANGELOG.md has an Unreleased entry if the change is user-visible
  • The matching docs page under rontend/docs/src/content/openscience/ is updated if behavior changed (not applicable - no documented behavior changed)
  • Screenshots or a short video are attached for UI changes (not applicable - no UI change)
  • No version bumps (package.json versions and tags are written by the release workflow)
  • install and rontend/landing/public/install are still byte-identical if I touched either (not applicable - neither was touched)

I left the first box unticked rather than claiming it: �un run check cannot pass in this checkout because turbo cannot find sgo, and that failure reproduces on the base commit.

getArgs resolves webSearchToolName from the tool the caller registered, and
output_item.added, doGenerate, and the ongoingToolCalls entry all report
webSearchToolName ?? "web_search". The output_item.done handler hardcoded
"web_search" instead.

A caller that registered the provider-defined tool under its own name therefore
saw tool-input-start emitted under that name and tool-call/tool-result emitted
under the default, so the emitted call could not be routed to the registered
tool, and the streaming path disagreed with the non-streaming one.

Resolve the name the same way at both sites.
Copilot AI balanced review requested due to automatic review settings October 3, 2026 10:00
@vercel

vercel Bot commented Oct 3, 2026

Copy link
Copy Markdown

ANIRUDDHA ADAK (@aniruddhaadak80) is attempting to deploy a commit to the InkVell Team on Vercel.

A member of the Team first needs to authorize it.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@aayambansal

Copy link
Copy Markdown
Member

Incorporated, reviewed, and validated in #953, now merged into main. Closing this original PR as superseded by the consolidated change.

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.

3 participants