Skip to content

Add Parallel public-web search - #37

Merged
shriyatheunicorn merged 10 commits into
mainfrom
shriyatheunicorn/parallel-research
Nov 3, 2026
Merged

shriyatheunicorn merged 10 commits into
mainfrom
shriyatheunicorn/parallel-research

Conversation

@shriyatheunicorn

Copy link
Copy Markdown
Collaborator

Integrate Parallel Search and Extract into BELL. Research returns sources for citations and hands interactive browser work to the existing browser tools, with bounded responses, cancellation, and sanitized provider errors.

Adds automated regression coverage for research, citations, interrupted streams, concurrent conversations, authenticated browser handoff, and resource cleanup. No dependency versions, lockfile, or browser lifecycle changes.

Validation: 433 tests passed (7 opt-in tests skipped); typecheck, lint, and production build passed. Authenticated local production E2E passed against live Parallel and Browserbase with main's unpatched Stagehand SDK. Hosted staging was not verified.

@shriyatheunicorn
shriyatheunicorn marked this pull request as ready for review October 30, 2026 02:38
@shriyatheunicorn
shriyatheunicorn requested a review from a team as a code owner October 30, 2026 02:38
Parallel URL filtering and extract timeouts
georgeatparallel and others added 7 commits October 30, 2026 12:35
A recovery scan that ran past the worker's work budget threw away its
place, so the next attempt refetched the same pages from the newest one.
A watch with more missed history than one budget could never finish, and
after eight such attempts the job was marked failed. Scheduled checks
skip failed jobs, so automatic recovery stopped for that watch until an
operator requeued it by hand.

Check the budget between pages and save the scan's place in the job
payload: the next page cursor, the start time, the newest identity seen,
whether prior coverage was found, and the distinct runs counted so far.
Each claim fetches at least one whole page, so a saved cursor never
splits a page and the next run picks up where this one stopped. Stored
event IDs keep deduplicating, so resuming cannot resend an alert.

Saving progress is no longer treated as a failure. It releases the
attempt it consumed and clears the job's last error, so a long recovery
does not walk into the eight-attempt limit. Resuming stays bounded: the
scan only continues while its cursor moves forward, and for at most
twenty resumes, after which it reports an exceeded budget as before.
A scan that did reach the failed state is restarted, keeping its saved
progress, by the next scheduled check for that watch.

Co-authored-by: George Pickett <georgeatparallel@users.noreply.github.com>
watch_list returned the 50 newest watches and nothing else, with
cancelled ones counted against that limit. One active watch followed by
50 newer cancelled ones therefore dropped off the result entirely, and a
fresh conversation had no way to recover its ID to stop it or change its
frequency.

Order watches with the open ones first - anything not cancelled or
failed - and newest first within each group, so a running watch stays on
the first page however many watches were cancelled after it. Keep 50 per
page and return a next_cursor when older watches remain. The cursor is a
keyset marker over that same order rather than an offset, so pages do
not shift when a watch changes status between calls, and an unusable one
is rejected instead of silently reading from the start.

watch_list now takes an optional cursor and an optional status of all,
open, or closed, and returns { watches, next_cursor } in place of a bare
array. Document both in the tool description, the agent instructions,
and docs/monitors.md.

Co-authored-by: George Pickett <georgeatparallel@users.noreply.github.com>
Add persistent Parallel watches
@socket-security

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addedstandardwebhooks@​1.1.11001008181100

View full report

@shriyatheunicorn
shriyatheunicorn merged commit c82059f into main Nov 3, 2026
3 checks passed
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