Skip to content

Remove legacy code#23

Merged
lars20070 merged 43 commits into
masterfrom
lars20070/furtherchanges
Mar 5, 2026
Merged

Remove legacy code#23
lars20070 merged 43 commits into
masterfrom
lars20070/furtherchanges

Conversation

@lars20070

@lars20070 lars20070 commented Feb 4, 2026

Copy link
Copy Markdown
Owner

The pull request primarily removes legacy code which has been moved to separate repos.

Added

  • separate dev dependencies section in pyproject.toml

Changed

  • version bumped to 0.1.10
  • separate build-devcontainer CI job, now cross platform
  • replace the default model llama3.3 by the lighter qwen2.5:14b

Removed

  • WolframScript MCP server (now hosted in separate repo)
  • assays pytest plugin (now hosted in separate repo)
  • Bradley-Terry classes (now hosted in separate repo)
  • all whl and tar.gz distributions in dist/ folder

Summary by CodeRabbit

  • Chores

    • Bumped version to 0.1.10, reorganized dev dependencies into a dev group, updated CI/tooling commands, expanded devcontainer/editor extensions, and enabled local MCP tooling.
  • Refactor

    • Streamlined content-fetching utilities and adjusted tests to use the new helper.
  • Tests

    • Added many recorded HTTP fixtures; removed several large eval/plugin test suites and WolframScript test support.
  • Documentation

    • Updated guidance (plan-mode, MCP verification), removed Copilot instructions, and adjusted README badges and local editor settings.

@lars20070 lars20070 changed the title more changes further changes Feb 4, 2026
@codecov

codecov Bot commented Feb 4, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 66.66667% with 1 line in your changes missing coverage. Please review.
✅ Project coverage is 66.40%. Comparing base (d49746f) to head (fd84d94).
⚠️ Report is 44 commits behind head on master.

Files with missing lines Patch % Lines
src/deepresearcher2/evals/evals.py 0.00% 1 Missing ⚠️

❌ Your patch status has failed because the patch coverage (66.66%) is below the target coverage (80.00%). You can increase the patch coverage or adjust the target coverage.

Additional details and impacted files
@@            Coverage Diff             @@
##           master      #23      +/-   ##
==========================================
+ Coverage   60.17%   66.40%   +6.23%     
==========================================
  Files          12       11       -1     
  Lines        1032      637     -395     
  Branches      111       51      -60     
==========================================
- Hits          621      423     -198     
+ Misses        382      189     -193     
+ Partials       29       25       -4     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Repository owner deleted a comment from coderabbitai Bot Feb 4, 2026
Repository owner deleted a comment from coderabbitai Bot Feb 4, 2026
Repository owner deleted a comment from coderabbitai Bot Feb 4, 2026
@coderabbitai

coderabbitai Bot commented Feb 5, 2026

Copy link
Copy Markdown

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Warning

Ignoring CodeRabbit configuration file changes. For security, only the configuration from the base branch is applied for open source repositories.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 79a32eff-9e73-4a0b-9f49-c4416059a4be

📥 Commits

Reviewing files that changed from the base of the PR and between d49746f and fd84d94.

⛔ Files ignored due to path filters (22)
  • .github/images/banner_deepresearcher2.png is excluded by !**/*.png
  • dist/deepresearcher2-0.1.0-py3-none-any.whl is excluded by !**/dist/**, !dist/**
  • dist/deepresearcher2-0.1.0.tar.gz is excluded by !**/dist/**, !**/*.gz, !dist/**
  • dist/deepresearcher2-0.1.1-py3-none-any.whl is excluded by !**/dist/**, !dist/**
  • dist/deepresearcher2-0.1.1.tar.gz is excluded by !**/dist/**, !**/*.gz, !dist/**
  • dist/deepresearcher2-0.1.2-py3-none-any.whl is excluded by !**/dist/**, !dist/**
  • dist/deepresearcher2-0.1.2.tar.gz is excluded by !**/dist/**, !**/*.gz, !dist/**
  • dist/deepresearcher2-0.1.3-py3-none-any.whl is excluded by !**/dist/**, !dist/**
  • dist/deepresearcher2-0.1.3.tar.gz is excluded by !**/dist/**, !**/*.gz, !dist/**
  • dist/deepresearcher2-0.1.4-py3-none-any.whl is excluded by !**/dist/**, !dist/**
  • dist/deepresearcher2-0.1.4.tar.gz is excluded by !**/dist/**, !**/*.gz, !dist/**
  • dist/deepresearcher2-0.1.5-py3-none-any.whl is excluded by !**/dist/**, !dist/**
  • dist/deepresearcher2-0.1.5.tar.gz is excluded by !**/dist/**, !**/*.gz, !dist/**
  • dist/deepresearcher2-0.1.6-py3-none-any.whl is excluded by !**/dist/**, !dist/**
  • dist/deepresearcher2-0.1.6.tar.gz is excluded by !**/dist/**, !**/*.gz, !dist/**
  • dist/deepresearcher2-0.1.7-py3-none-any.whl is excluded by !**/dist/**, !dist/**
  • dist/deepresearcher2-0.1.7.tar.gz is excluded by !**/dist/**, !**/*.gz, !dist/**
  • dist/deepresearcher2-0.1.8-py3-none-any.whl is excluded by !**/dist/**, !dist/**
  • dist/deepresearcher2-0.1.8.tar.gz is excluded by !**/dist/**, !**/*.gz, !dist/**
  • dist/deepresearcher2-0.1.9-py3-none-any.whl is excluded by !**/dist/**, !dist/**
  • dist/deepresearcher2-0.1.9.tar.gz is excluded by !**/dist/**, !**/*.gz, !dist/**
  • uv.lock is excluded by !**/*.lock, !uv.lock
📒 Files selected for processing (57)
  • .claude/CLAUDE.md
  • .claude/plans/utils_optimizations.md
  • .claude/rules/general.md
  • .claude/rules/python.md
  • .claude/settings.json
  • .claude/settings.local.json
  • .coderabbit.yaml
  • .cursor/rules/python.mdc
  • .cursorignore
  • .devcontainer/README.md
  • .devcontainer/devcontainer.json
  • .github/workflows/build.yaml
  • .github/workflows/copilot-instructions.md
  • .gitignore
  • .vscode/README.md
  • .vscode/extensions.json
  • .vscode/settings.json
  • README.md
  • benchmarks/knowledge_gap/task.json
  • benchmarks/knowledge_gap/topics.json
  • pyproject.toml
  • src/deepresearcher2/config.py
  • src/deepresearcher2/evals/evals.py
  • src/deepresearcher2/examples.py
  • src/deepresearcher2/mcp/__init__.py
  • src/deepresearcher2/mcp/wolframscript_server.py
  • src/deepresearcher2/plugin.py
  • tests/assays/test_plugin/test_integration_bradleyterryevaluator.json
  • tests/assays/test_plugin/test_integration_bradleyterryevaluator.readout.json
  • tests/assays/test_plugin/test_integration_pairwiseevaluator.json
  • tests/assays/test_plugin/test_integration_pairwiseevaluator.readout.json
  • tests/cassettes/test_example/test_agent_delegation.yaml
  • tests/cassettes/test_example/test_weather_agent.yaml
  • tests/cassettes/test_graph/test_finalizesummary.yaml
  • tests/cassettes/test_graph/test_reflectonsearch.yaml
  • tests/cassettes/test_graph/test_summarizesearchresults.yaml
  • tests/cassettes/test_graph/test_websearch_with_reflection.yaml
  • tests/cassettes/test_graph/test_websearch_without_reflection.yaml
  • tests/cassettes/test_plugin/test_integration_bradleyterryevaluator.yaml
  • tests/cassettes/test_plugin/test_integration_pairwiseevaluator.yaml
  • tests/cassettes/test_utils/test_brave_search.yaml
  • tests/cassettes/test_utils/test_searxng_search.yaml
  • tests/cassettes/test_utils/test_serper_search.yaml
  • tests/conftest.py
  • tests/evals/cassettes/test_evals/test_adaptive_uncertainty_strategy.yaml
  • tests/evals/cassettes/test_evals/test_evalgame.yaml
  • tests/evals/cassettes/test_evals/test_evaltournament.yaml
  • tests/evals/cassettes/test_evals/test_evaltournament_usecase.yaml
  • tests/evals/cassettes/test_evals/test_random_sampling_strategy[0.3].yaml
  • tests/evals/cassettes/test_evals/test_random_sampling_strategy[42.0].yaml
  • tests/evals/cassettes/test_evals/test_random_sampling_strategy[None].yaml
  • tests/evals/cassettes/test_evals/test_round_robin_strategy.yaml
  • tests/evals/test_evals.py
  • tests/mcp/test_wolframscript_server.py
  • tests/test_agents.py
  • tests/test_example.py
  • tests/test_plugin.py

📝 Walkthrough

Walkthrough

Removes the WolframScript MCP server and its tests; bumps version and moves test/dev tooling into a dev dependency group; refactors web-fetch utils and tests; adds large HTTP test cassettes; updates CI, devcontainer, and VS Code settings; adds Claude plan-mode and local settings; several tests and plugin code removed.

Changes

Cohort / File(s) Summary
Project metadata
pyproject.toml
Version 0.1.9 → 0.1.10; testing/linting packages moved into [dependency-groups].dev; removed wolframscript_server script and related markers/omit entries; added/adjusted dependencies.
MCP WolframScript removal
src/deepresearcher2/mcp/wolframscript_server.py, src/deepresearcher2/mcp/__init__.py, tests/mcp/test_wolframscript_server.py
Deleted WolframScript MCP server implementation, its export, and its tests.
Pytest plugin & assay tests removal
src/deepresearcher2/plugin.py, tests/test_plugin.py, tests/assays/**, tests/evals/test_evals.py, tests/conftest.py
Removed the entire pytest assay/plugin implementation and large related test suites/fixtures; adjusted conftest (removed wolframscript marker, changed default model).
Utils refactor & tests
src/deepresearcher2/utils.py, tests/test_utils.py
Refactored fetch_full_page_content signature to str, replaced urllib/gzip with requests, added _resolve_content helper, and updated tests to mock network calls and deduplicate assertions.
Large test cassettes added/expanded
tests/cassettes/**
Massive additions/expansions of HTTP interaction cassettes (traces/metrics, OpenAI tool-calls, geocoding, weather APIs) with binary/protobuf and compressed payloads.
CI / workflows / scripts
.github/workflows/build.yaml, .claude/CLAUDE.md
CI updates: Python 3.11→3.12, uvx → uv run usage, Codecov action update, new devcontainer build job and buildx/QEMU steps; .claude docs updated to uv run.
Devcontainer & VS Code
.devcontainer/devcontainer.json, .vscode/extensions.json, .vscode/settings.json, .vscode/README.md
Expanded devcontainer extensions list; modified VS Code recommendations and editor overrides (Markdown/TOML), adjusted interpreter path and spell words; added MCP server verification note.
Claude rules & local settings
.claude/rules/general.md, .claude/settings.json, .claude/settings.local.json, .claude/plans/*
Added concise Plan Mode rules and plan file handling; added local Claude permissions and enabled MCP servers; updated commands/keys to use uv run.
Repo infra & docs
.coderabbit.yaml, .gitignore, .cursorignore, .github/workflows/copilot-instructions.md (deleted), README.md
Added path exclusions to coderabbit, fixed .DS_Store and added dist/ to .gitignore, removed copilot-instructions doc, minor README badge/line changes.
Config & examples model change
src/deepresearcher2/config.py, src/deepresearcher2/examples.py, tests/**
Default model changed from llama3.3qwen2.5:14b across config, examples, and several tests.
Misc tests/data edits
benchmarks/knowledge_gap/*, tests/cassettes/**, other small JSON/YAML fixtures
Minor text corrections (Anne Brorhilker), many cassette/test fixture additions and deletions, removal of numerous eval-related cassettes/readouts.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Title check ✅ Passed The title 'Remove legacy code' aligns with the main objective of removing the WolframScript MCP server and related dependencies, making it relevant to the primary change.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch lars20070/furtherchanges

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot 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.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In @.claude/plans/utils_optimizations.md:
- Around line 11-17: The plan to refactor fetch_full_page_content (utils.py) to
use requests will break at runtime because requests is not declared as a project
dependency; before changing the function body, add requests (e.g.
"requests>=2.31.0") to the project manifest (pyproject.toml dependencies) or
update the manifest-checking logic to verify requests is present, then update
fetch_full_page_content to use requests.get and catch requests.exceptions.* and
remove unused imports (gzip, urllib.*, zlib, brotli).

Comment thread .claude/plans/utils_optimizations.md

@coderabbitai coderabbitai Bot 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.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In @.claude/rules/general.md:
- Line 4: In the rule string 'At the end of each plan, give me a list of
unresolved questions to answer, if any. Make the questions extremely consise.'
fix the typo by replacing "consise" with "concise" so the sentence reads
"...Make the questions extremely concise."; update the text in the rule (the
exact string shown) to correct the spelling and ensure no other occurrences of
"consise" remain.

Comment thread .claude/rules/general.md Outdated

@coderabbitai coderabbitai Bot 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.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@tests/cassettes/test_graph/test_finalizesummary.yaml`:
- Around line 432-495: The vcr_config fixture is missing an explicit record_mode
setting; edit the vcr_config fixture and add the key "record_mode": "none" to
the dict it returns (the configuration dictionary built in the vcr_config
function) so pytest-vcr runs in playback-only mode and prevents new cassette
recordings.

Comment thread tests/cassettes/test_graph/test_finalizesummary.yaml

@coderabbitai coderabbitai Bot 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.

Actionable comments posted: 2

🤖 Fix all issues with AI agents
In @.github/workflows/build.yaml:
- Around line 50-61: The echo lines that append secrets to .env (e.g., the
repeated echo "TAVILY_API_KEY=${{ secrets.TAVILY_API_KEY }}" >> .env pattern)
are vulnerable to shell expansion; replace each echo invocation with a
shell-safe write such as using printf '%s\n' "NAME=${{ secrets.NAME }}" >> .env
or a single-quoted heredoc (e.g., <<'EOF' ... EOF) to ensure secrets containing
", `, $, or \ are not interpreted—update every occurrence for TAVILY_API_KEY,
GEMINI_API_KEY, LOGFIRE_TOKEN, OPENAI_API_KEY, WEATHER_API_KEY, GEO_API_KEY,
BRAVE_API_KEY, SERPER_API_KEY, CODECOV_TOKEN, OPENROUTER_API_KEY,
DEEPINFRA_API_KEY, and TOGETHER_API_KEY accordingly.

In `@pyproject.toml`:
- Around line 13-14: Remove the duplicate dependency entry for
pydantic-ai[examples] in pyproject.toml by deleting the line with
"pydantic-ai[examples]>=0.0.40" so only the intended constraint
"pydantic-ai[examples]>=1.56.0" remains; ensure no other duplicate entries exist
and run your dependency tooling (e.g., poetry lock or pip-compile) to update the
lockfile accordingly.

Comment on lines +50 to +61
echo "TAVILY_API_KEY=${{ secrets.TAVILY_API_KEY }}" >> .env
echo "GEMINI_API_KEY=${{ secrets.GEMINI_API_KEY }}" >> .env
echo "LOGFIRE_TOKEN=${{ secrets.LOGFIRE_TOKEN }}" >> .env
echo "OPENAI_API_KEY=${{ secrets.OPENAI_API_KEY }}" >> .env
echo "WEATHER_API_KEY=${{ secrets.WEATHER_API_KEY }}" >> .env
echo "GEO_API_KEY=${{ secrets.GEO_API_KEY }}" >> .env
echo "BRAVE_API_KEY=${{ secrets.BRAVE_API_KEY }}" >> .env
echo "SERPER_API_KEY=${{ secrets.SERPER_API_KEY }}" >> .env
echo "CODECOV_TOKEN=${{ secrets.CODECOV_TOKEN }}" >> .env
echo "OPENROUTER_API_KEY=${{ secrets.OPENROUTER_API_KEY }}" >> .env
echo "DEEPINFRA_API_KEY=${{ secrets.DEEPINFRA_API_KEY }}" >> .env
echo "TOGETHER_API_KEY=${{ secrets.TOGETHER_API_KEY }}" >> .env

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Secret values in double-quoted echo are vulnerable to shell interpretation.

If any secret value contains shell metacharacters (", `, $, \), the echo command will misparse or silently corrupt the .env file. Use a heredoc with single-quoted delimiter or printf '%s\n' to avoid shell expansion of the values.

Safer alternative using printf
-          echo "TAVILY_API_KEY=${{ secrets.TAVILY_API_KEY }}" >> .env
-          echo "GEMINI_API_KEY=${{ secrets.GEMINI_API_KEY }}" >> .env
+          printf '%s\n' 'TAVILY_API_KEY=${{ secrets.TAVILY_API_KEY }}' >> .env
+          printf '%s\n' 'GEMINI_API_KEY=${{ secrets.GEMINI_API_KEY }}' >> .env

Apply the same pattern to all remaining lines.

🤖 Prompt for AI Agents
In @.github/workflows/build.yaml around lines 50 - 61, The echo lines that
append secrets to .env (e.g., the repeated echo "TAVILY_API_KEY=${{
secrets.TAVILY_API_KEY }}" >> .env pattern) are vulnerable to shell expansion;
replace each echo invocation with a shell-safe write such as using printf '%s\n'
"NAME=${{ secrets.NAME }}" >> .env or a single-quoted heredoc (e.g., <<'EOF' ...
EOF) to ensure secrets containing ", `, $, or \ are not interpreted—update every
occurrence for TAVILY_API_KEY, GEMINI_API_KEY, LOGFIRE_TOKEN, OPENAI_API_KEY,
WEATHER_API_KEY, GEO_API_KEY, BRAVE_API_KEY, SERPER_API_KEY, CODECOV_TOKEN,
OPENROUTER_API_KEY, DEEPINFRA_API_KEY, and TOGETHER_API_KEY accordingly.

Comment thread pyproject.toml Outdated
@lars20070 lars20070 changed the title further changes Remove legacy code Mar 5, 2026
@lars20070

Copy link
Copy Markdown
Owner Author

@coderabbitai summary

@coderabbitai

coderabbitai Bot commented Mar 5, 2026

Copy link
Copy Markdown
✅ Actions performed

Summary regeneration triggered.

@lars20070 lars20070 merged commit 190098f into master Mar 5, 2026
4 of 5 checks passed
@lars20070 lars20070 deleted the lars20070/furtherchanges branch March 5, 2026 09:46
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.

1 participant