Skip to content

Runtime worker: GPT Researcher on GPT-6 via OmniRoute (recipe, round 2) - #426

Closed
seathatflowsinourveins wants to merge 6 commits into
mainfrom
claude/runtime-worker-gpt-researcher-20260927
Closed

seathatflowsinourveins wants to merge 6 commits into
mainfrom
claude/runtime-worker-gpt-researcher-20260927

Conversation

@seathatflowsinourveins

@seathatflowsinourveins seathatflowsinourveins commented Sep 27, 2026 •

Copy link
Copy Markdown
Collaborator

Runtime-worker recipe: GPT Researcher powered by GPT-6 through the local OmniRoute gateway, with MCP tools and the token practice. Built by GPT-6 (astra, max) in two rounds.

SOTA sources

  • assafelovic/gpt-researcher v3.7.0 @ 0957c301ed06c2a5857b834358c7227c739041d4 (source archive and locks pinned by sha256)
  • Grader: imlrz/DeepResearch-Bench-II @ b38f360603db9531b102aef8c166cedb8509b6f6 (uv sync with its lock, frozen task 12, unchanged scoring and aggregation); runner-up Ayanami0730/deep_research_bench @ 852f4022d1f98fb707222e395405136e8f0e8d52
  • Gateway rules: OmniRoute 3.8.51 routing verdict of 2026-09-27

Status

Draft, recipe only. Nothing is installed, no service is started and no model has run.

  • Round 3 is done. The Claude review (R1-R7) and the security review (S1, S2, S8, S9) got one GPT-6 repair round (gpt-6-astra, max). Every finding is fixed except one, declined: adding a container runtime to this CLI/stdio recipe. The recipe claims no container isolation. The dangerous MCP surfaces are removed, and native scraping's DNS-rebinding and redirect exposure is recorded as a residual.
    • The dispositions and the fail-first/pass command pairs are in round3-verification.json.
  • Arms:
    • Control: cx/gpt-6-astra-max through 127.0.0.1:20128.
    • Engines-on: sharedgw/gpt-6-astra-max through the framework-only instance at 127.0.0.1:20129, with x-omniroute-compression: allow-lossy. Exactly one slash; two-slash slugs are refused.
    • Usage is counted once, at each arm's entry gateway, by correlation id. Worker and judge phases are split.
  • Dispatch for workflow children: dispatch.sh start|wait|result --run-id <id> --arm control|engines-on, with deterministic artifacts and distinct exit classes.
  • Next: the upstream clean install from the locks, upstream-graded E2E in both arms (DeepResearch-Bench-II, unchanged scorer), then receipts.

Checks (head 71066855, rebased onto e82e6be7)

  • python3 -m unittest tests.test_runtime_worker_gpt_researcher: 27 tests OK.
  • The registry tests tests.test_osv_lockfile_coverage, tests.test_blind_checkout and tests.test_workflow_security_coverage pass, 57 tests OK with TMPDIR outside /tmp. They fixed the failing validate check.
    • The OSV inventory now lists the four requirement locks.
    • requirements.in and requirements.lock join IGNORE_ALLOWED_LOCKS for nltk GHSA-8mgp-746c-j5xp (high, no patched release). GPT Researcher imports nltk in none of its 364 .py files. The lock's nltk callers, langchain-text-splitters 1.1.2 (punkt, sent_tokenize, stopwords) and langchain-community 0.4.2 (bleu_score), call none of the affected model-artifact APIs. unstructured 0.27.9 does not import nltk. The evidence is a grep of the pinned source and wheels. An independent review of this acceptance is running.
    • The review dispositions fixed and declined are classified as blind-checkout labels.
  • python3 scripts/validate.py: passed after re-registration per docs/lanes.md.
  • The leak scan of added lines found no personal paths, user names or emails.

🤖 Generated with Claude Code

@seathatflowsinourveins seathatflowsinourveins added the lane:foundation Foundation lane: Claude/Codex setup, hosts, memory, RAG, research, workers label Sep 27, 2026
Scout and others added 6 commits September 27, 2026 21:07
…e (pinned install, gateway FW rules, token MCP wiring, skills, frozen E2E)

Written by GPT-6 (gpt-6-astra, effort max) through the Codex stack-worker profile on the OmniRoute lane from the coordinator's brief; tests red then green; no host install or live run yet. Draft pending the Claude cross-family review, the upstream eval-harness mapping and the skills-lifecycle wiring.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
…s, owned resources)

GPT-6 (astra, max) round-2 build: DeepResearch-Bench-II at b38f360 (uv sync, frozen task 12, unchanged scoring); check.py validates transport only.
Gateway calls omit temperature, carry a stable x-omniroute-session and a fresh
Idempotency-Key per logical call, and accept only configurable GPT-6 max routes.
Loopback-only ports in 3730-3799, owned rw-gpt-researcher- resource names and labels,
literal-name cleanup. Not installed, not run: host E2E and A/B remain open.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
…nd both gateway arms

GPT-6 repair builder (effort max) against the Claude review (R1-R7) and the
security review (S1, S8):
- streamed-report retry fixed (websocket=None, native logging); judge budget
  and batching per DRB-II; arm-specific base URLs with an independent control
  judge route;
- engines-on accepts exactly sharedgw/gpt-6-astra-max (one slash);
  two-slash slugs are refused;
- dispatch.sh start/wait/result with deterministic artifacts and distinct
  exit classes; worker and judge phases split, with entry-gateway correlation
  capture and separate compression accounting;
- security: model execution tools, context-mode fetching and indexing removed
  from the worker's MCP surface; per-run scratch and HOME; grader installed
  with uv --locked --no-build --no-install-project.
Declined: a new container runtime for this CLI/stdio recipe (residual:
native scraping's DNS-rebinding/redirect exposure, documented).

Repository registry fixes: the OSV inventory lists the four requirement
locks; requirements.in/.lock join IGNORE_ALLOWED_LOCKS for nltk
GHSA-8mgp-746c-j5xp (no affected API is called by GPT Researcher or its nltk
callers); blind_checkout classifies fixed/declined as labels.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
…e macOS run dir

osv-scanner (run 36350481372) reported 242 advisories, all from
gpt-researcher/requirements.in: its lower bounds (aiohttp>=3.12.0) are read as
installed versions. The input spec now sits in covered_by_lockfile, pointing at
requirements.lock, which is resolved from it (research.md, "Lock resolution"),
as main already does for requirements-macos-arm64-py312.in. It leaves the nltk
allowlist because it is no longer scanned. The allowlist comment now names the
advisory's APIs as OSV lists them (PerceptronTagger.save_to_json).

validate-macos (run 36350481386) failed test_model_cannot_execute_fetch_or_index_host_files:
server_config resolves run_dir (mcp_proxy.py:109), and macOS temp dirs sit under the
/var -> /private/var symlink. The test now resolves run_dir too.

Checks: osv-scanner 2.6.0 (sha256-verified release binary) with the workflow's
scan command: exit 0, "No issues found". The worker module passes 27 tests with a
plain or a symlinked TMPDIR; the symlinked run failed before the fix.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
…receipt for the runtime lock (static scan, not reached)

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
…0.3 for GHSA-8mgp-746c-j5xp only, bound to its sha256 and reachability receipt

The #441 allowlist mapping replaces this branch's earlier set entry, whose comment the review found stale (the #336 condition, 'PerceptronTagger save/load', no evidence path). The setuptools advisory is not exempted.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
@seathatflowsinourveins
seathatflowsinourveins force-pushed the claude/runtime-worker-gpt-researcher-20260927 branch from 5e6ed73 to bb9a471 Compare September 28, 2026 01:09
@seathatflowsinourveins

Copy link
Copy Markdown
Collaborator Author

Rebased onto #441 (ba1700a), head bb9a4713.

  • The runtime lock is now in the scoped IGNORE_ALLOWED_LOCKS mapping. It is exempt only for nltk GHSA-8mgp-746c-j5xp, only at sha256 839e23f1…, with evidence blueprints/runtime-workers/gpt-researcher/evidence/nltk-reachability.json (static scan, not reached; independently verified). The setuptools advisory is not exempted.
  • The earlier set entry and its comment are gone, which resolves the review's stale-comment and wording items (the SPY one_zero engine trials: ml4t-backtest 0.1.12 PASS 29/29, Lumibot 4.6.1 FAIL 23/29 (preregistered, unchanged scorer) #336 condition, "PerceptronTagger save/load", no evidence path).
  • The registry tests (77) are OK and validate.py passed. The push went through the pre-push gate.

🤖 Generated with Claude Code

@seathatflowsinourveins

Copy link
Copy Markdown
Collaborator Author

Closing as superseded by #535, which carries every path this PR changed (byte-identical or with later qualification, routing and test updates), per the 2026-10-04 superseded-work cleanup (GPT-lane classification with per-path evidence). The branch stays available for history.

🤖 Generated with Claude Code

@seathatflowsinourveins
seathatflowsinourveins deleted the claude/runtime-worker-gpt-researcher-20260927 branch October 8, 2026 07:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lane:foundation Foundation lane: Claude/Codex setup, hosts, memory, RAG, research, workers

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant