Skip to content

feat(web_search): add opt-in Parallel provider - #1393

Open
RowanAldean wants to merge 4 commits into
usestrix:mainfrom
RowanAldean:feat/parallel-search-provider
Open

RowanAldean wants to merge 4 commits into
usestrix:mainfrom
RowanAldean:feat/parallel-search-provider

Conversation

@RowanAldean

@RowanAldean RowanAldean commented Sep 30, 2026 •

Copy link
Copy Markdown

Adds Parallel as an explicit provider for the existing web_search tool, so users can research public CVEs, vendor advisories, and documentation with a Parallel API key.

export STRIX_WEB_SEARCH_PROVIDER="parallel"
export PARALLEL_API_KEY="your-parallel-api-key"

The adapter uses the Parallel Search API (POST /v1/search, fast mode) and formats up to five source URLs with excerpts into the existing {success, query, provider, content} response. Excerpts are shortened to fit a 12,000-character output budget plus a truncation notice; source titles and URLs are always preserved, including when those headers alone exceed the budget. It includes configuration persistence, missing-key guidance, error handling, documentation, and mocked tests; no additional dependencies.

Existing auto precedence is unchanged, and Parallel requires explicit selection. Page extraction remains Exa-only.

Related to #1179. This is the native-provider option discussed there; it complements @AyushDubey23's optional MCP documentation in #1185.

Validation

  • Search/configuration tests: 96 passed, including seven additional truncation regression cases.
  • Full suite before the truncation follow-up: 2,223 passed, 3 expected failures, 1 unrelated failure (see below). The follow-up was validated with the focused search/configuration suite.
  • Formatting, lint on changed files, mypy, and Bandit pass. Pyright passes for the search tool and settings; repository-wide Pyright diagnostics are unchanged from main.
  • make check-all stops at a pre-existing RUF100 in tests/test_tool_call_ids_providers.py:109, also reproduced from unmodified main.
  • The unrelated tests/test_pricing.py::test_resolves_common_bare_model_names fails for the grok-4.5 provider mapping; reproduced on clean main at 007ed1a with the same locked dependencies.
  • HTTP behavior is covered by mocked tests; no live API smoke test was run.

@greptile-apps

greptile-apps Bot commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerConfidence Score: 4/5

[Medium risk] Adds opt-in Parallel web search provider.

The PR appears safe to merge, though long Parallel results should keep source links intact.

Findings

  1. P2 Source links can be cut ▶
Fix with agent prompt
### Issue 1
strix/tools/web_search/tool.py:180-181
When five Parallel results together exceed 12,000 characters, this slice can cut through a source URL or excerpt. The rest is discarded, so the agent may get an unusable link with no way to recover the missing text. Keep each result’s title and URL intact when shortening excerpts.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Summary

Adds Parallel as an explicitly selected provider for the existing web_search tool without changing auto provider choice. Parallel returns source URLs and excerpts, while page extraction remains Exa-only.

  • Adds Parallel API settings, setup guidance, and saved-config support.
  • Sends searches to Parallel and formats up to five results with a 12,000-character cap.
  • Adds mocked coverage for provider selection, formatting, limits, and errors.

Reviews (1) · Last reviewed commit: "feat(web_search): add opt-in Parallel pr..."

Comment thread strix/tools/web_search/tool.py Outdated
@cursor
cursor Bot force-pushed the feat/parallel-search-provider branch from 8c47501 to e366036 Compare October 29, 2026 20:28
@mintlify

mintlify Bot commented Oct 29, 2026

Copy link
Copy Markdown

Preview approval required

This pull request comes from a fork, so Mintlify won't build a preview until someone with write access approves commit e366036.

Approve preview

samirhvbr added a commit to samirhvbr/strix that referenced this pull request Oct 29, 2026
…box image delivery blocker

Second pass over the review branch, with both remotes fetched. Upstream main did not move (still 6b7ae2e, the
synchronized base), so no code checkpoint advances.

Known items: all 530 upstream ledger records and the 44 fork PRs were compared with the live API on state, updated
date and head SHA. Only usestrix#1393 changed (rebased onto 6b7ae2e with four commits of its own); it is re-reviewed in depth
and stays deferred, with the reasons recorded. Open inventory is unchanged at 320 PRs + 203 issues.

Discovery: the 48-hour-overlap update query returned 29 items. Four closed items were not in the ledger and now are:
PRs usestrix#1616, usestrix#1617 and usestrix#1603, merged upstream and already ancestors of the branch through the base synchronization, and
issue usestrix#1529, a usage question. The ledger has 574 records; coverage totals are recomputed from it.

Version and releases rechecked and unchanged: 1.2.43 equals the tag, the Latest Release and remote master; upstream's
latest release is still v1.7.0.

New delivery blocker: the synchronized source defaults to ghcr.io/usestrix/strix-sandbox:1.3.1, which is not
published (manifest 404; 1.3.0 answers 200 as the control). master pins the published 1.3.0. Recorded in
release-audit.json, the checkpoints, the round report, the continuity guide and version.md. No tag, release, mirror or
master change.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TavwVMH7PvrD68JTDfd6Hb

This branch has not been deployed

No deployments
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.

2 participants