feat(core): M3c-rest — TodoWrite + WebFetch + WebSearch tools#17
Merged
Conversation
Three Claude-Code-parity tools shipped, all registered in BUILTIN_TOOLS.
· TodoWrite — agent-managed task list, persisted to <sessionDir>/todos.json.
Validates `at most one in_progress`. readTodos() helper for UI.
· WebFetch — GET-only, 5 MiB cap (configurable via
DEEPCODE_WEBFETCH_MAX_BYTES), AbortSignal honored, streaming byte-cap so a
server that omits content-length can't blow memory.
· WebSearch — DuckDuckGo HTML by default; pluggable via
DEEPCODE_WEBSEARCH_URL_TEMPLATE for self-hosted SearXNG. Tolerant parser
with unit tests against stubbed HTML.
Tests: +21 in core (293/8 pass/skip), 41 in cli unchanged.
BEHAVIOR_PARITY.md updated — these three move from 🔄 to ✅.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
oratis
added a commit
that referenced
this pull request
May 28, 2026
This session ("继续推进" from v2) added 5 PRs on top of #1-#16:
· #17 M3c-rest tools (TodoWrite + WebFetch + WebSearch)
· #18 M3.5 attack tests + security-model.md
· #19 M8 headless mode (-p / --print)
· #20 M5.2 plugin live wire-up
· #21 system-reminder injector
Test count: 313 → 387 (+74).
Scope completion estimate: 65-70% → 72-78%.
Major remaining items: M6 Mac Electron (still 0%), M7 file panel (depends
on M6), and the M3c-rest/M8/M5.2 leftovers itemized in the body.
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Three Claude-Code-parity tools, all registered in
BUILTIN_TOOLSso they're available to every agent run by default (subject to--allowedTools/ mode / permissions).at most one in_progress) and persist to<sessionDir>/todos.json. NewreadTodos(sessionDir)helper for UI.DEEPCODE_WEBFETCH_MAX_BYTES),AbortSignalhonored, streaming byte-cap so a server that omitscontent-lengthcan't blow memory.DEEPCODE_WEBSEARCH_URL_TEMPLATEfor self-hosted SearXNG. Tolerant HTML parser with unit tests against stubbed markup.Test plan
pnpm -F @deepcode/core test— 293 passed / 8 skipped (was 272 → +21 new tests across the 3 new tool test files)pnpm -F @deepcode/core build— cleanpnpm -F deepcode-cli test— 41 unchanged (BUILTIN_TOOLS now includes the 3 new entries; CLI filtering still works)BEHAVIOR_PARITY.md— Tools rows for these three move from 🔄 to ✅Behavior notes
sessionDiris undefined (still validates input).isError: true) so the model can see error pages.🤖 Generated with Claude Code