Skip to content

Add explicitly-present web_fetch_enabled request setting - #394

Draft
warp-agent-staging[bot] wants to merge 1 commit into
mainfrom
factory/web-fetch-profile-proto
Draft

warp-agent-staging[bot] wants to merge 1 commit into
mainfrom
factory/web-fetch-profile-proto

Conversation

@warp-agent-staging

@warp-agent-staging warp-agent-staging Bot commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor

Description

Adds Request.Settings.web_fetch_enabled so an Agent Profile can allow Exa web fetch independently of web search. Today web_search_enabled gates both built-in web tools.

The field uses explicit presence ([features.field_presence = EXPLICIT]), so the server can tell an old client (unset) from a profile that turns fetch off (explicit false). When the field is unset, the server falls back to web_search_enabled. That keeps existing profiles that disabled web search from gaining fetch.

Generated shapes:

  • Rust (prost): web_fetch_enabled: Option<bool>
  • Go (opaque API): GetWebFetchEnabled, HasWebFetchEnabled, SetWebFetchEnabled, ClearWebFetchEnabled; builder field *bool

Field number: this uses 37, not the next free number 36, because the open #393 already claims Settings field 36. Either PR can merge first without a renumber. This supersedes the stale #227, which uses field 26 (now supports_research_agent).

Related PRs: server profile split warpdotdev/warp-server#19137 and Warp client profile toggle warpdotdev/warp#16315. Merge order: this PR → warpdotdev/warp-server#19137 → warpdotdev/warp#16315.

Justification

Requested by the Agent Profile web-fetch toggle work: users want web search without page fetch (or the reverse), and team admins need to control each tool separately.

Sensitive Fields

No new string fields; the only new field is a bool.

Validation

  • ./script/generate -a multi_agent -v v1 with protoc 36.0 and protoc-gen-go v1.36.6 (the CI versions): only request.proto and request.pb.go change.
  • go build ./... in apis/multi_agent: passes.
  • cargo build and cargo test: pass; the generated Rust has #[prost(bool, optional, tag = "37")] pub web_fetch_enabled: Option<bool>.
  • npm ci && npm run generate:ts: passes; TS has webFetchEnabled: boolean.

There is no UI in this PR. The recordings and screenshots below come from the dependent Warp client PR warpdotdev/warp#16315.

Recordings

End-to-end evidence from the dependent Warp client PR warpdotdev/warp#16315 (real Linux app build). These show the Agent Profile UI and the persisted profile, not this PR's code rendering anything directly.

Screenshots

Before (baseline client build):

After (changed client build):

@warp-agent-staging

Copy link
Copy Markdown
Contributor Author

This PR was generated with Warp.

Comment @warp-staging-factory on this PR to send it follow-up work.

View run View conversation View on Slack

@warp-agent-staging
warp-agent-staging Bot requested a review from advait-m October 6, 2026 05:58
@warp-agent-staging
warp-agent-staging Bot marked this pull request as ready for review October 6, 2026 05:58
@warp-agent-staging
warp-agent-staging Bot requested a review from a team as a code owner October 6, 2026 05:58
@warp-agent-staging
warp-agent-staging Bot requested a review from vorporeal October 6, 2026 05:58
@advait-m
advait-m marked this pull request as draft October 6, 2026 16:07
@advait-m
advait-m removed the request for review from vorporeal October 6, 2026 16:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants