Releases: DarKWinGTM/claude-code-web-hooks
v0.1.9
Updated
- Render the CCS MCP failed-run fallback block in result-first order so the fallback search result appears before the preserved raw CCS error
- Extend verification to assert the new result-first guidance text and fallback-result-before-error section order
- Sync README, design, and TODO wording to the stronger failure-fallback visibility contract without changing the existing PostToolUseFailure -> additionalContext transport
Notes
- Successful CCS MCP runs still use PostToolUse -> updatedMCPToolOutput
- Failed CCS MCP runs still use PostToolUseFailure -> additionalContext
- This release improves visibility only; it does not change MCP ownership or claim failed-run updatedMCPToolOutput support
v0.1.8
Summary
- add CCS MCP WebSearch failure fallback through
PostToolUseFailure - keep successful CCS MCP runs on the bounded dual-output path via
updatedMCPToolOutput - sync README, design, changelog, TODO, phase, patch, install, uninstall, settings example, and verification coverage
Verification
bash ./verify.sh --target all- user reload + in-session testing passed before push/release
v0.1.7
Summary
- add a
PostToolUseMCP companion hook so CCS MCP WebSearch can keep its original result while appending aclaude-code-web-hookscompanion result - update install, uninstall, settings example, verification, and governance docs for the dual-output CCS MCP coexistence contract
- verify Claude Code, Copilot VS Code, and Copilot CLI targets still pass after the coexistence update
Test plan
-
./verify.sh --target claude-code -
./verify.sh --target all -
./install.sh --target claude-code --with-ccs-mcp-pass-through - in-session
mcp__ccs-websearch__WebSearchrun shows both the preserved CCS result and the appended companion result
🤖 Generated with Claude Code
v0.1.6
Summary
- add explicit non-blocking coexistence support for the CCS MCP WebSearch tool
mcp__ccs-websearch__WebSearch - keep native
WebSearchas the only substitution path owned by this repo - add optional
--with-ccs-mcp-pass-throughinstall/uninstall support instead of claiming the MCP matcher by default - add governed phase + patch artifacts and sync README/design/changelog/TODO/verification for the coexistence boundary
Verification
./verify.sh --target claude-code./verify.sh --target all- verified allow-only pass-through for
mcp__ccs-websearch__WebSearch - verified no substituted MCP results and no duplicate provider execution in the MCP path
Commit
47301aeAdd CCS MCP WebSearch coexistence.
v0.1.5
Summary
- add explicit
copilot-clitarget support alongsideclaude-code,copilot-vscode, andall - adapt the Copilot wrapper pair to handle both VS Code payloads (
tool_name/tool_input) and Copilot CLI payloads (toolName/ stringifiedtoolArgs) - switch the repo hook config under
.github/hooks/claude-code-web-hooks.jsonto official Copilot CLI shape withversion: 1andpreToolUse - sync install, uninstall, verify, README, design, TODO, changelog, and phase docs with the shipped Copilot CLI compatibility rollout
Verification
./verify.sh --target copilot-vscode./verify.sh --target copilot-cli./verify.sh --target all
Commits
13a1e6cAdd Copilot CLI target compatibility.0a1a34dFinalize release sync after Copilot CLI rollout.
v0.1.4
Summary
- add target-aware install, uninstall, and verify support for
claude-code,copilot-vscode, andall - add Copilot-on-VS-Code compatibility wrappers for WebSearch and WebFetch
- add workspace Copilot hook example under
.github/hooks/ - update README, design, changelog, TODO, and phase planning for the multiple-target rollout
Verification
./verify.sh --target allpasses- Claude Code path remains supported
- Copilot wrapper compatibility probe passes
- WebFetch extraction backends continue to support ordered fallback with native escape behavior
Commit
f68665e
v0.1.3
Summary
- add selectable WebFetch extraction backends across WebSearchAPI.ai Scrape, Tavily Extract, and Exa Contents
- support one active backend per request with ordered fallback across the remaining providers
- preserve native Claude WebFetch as the final escape hatch
- add shared extraction-provider contract, policy, config helpers, and provider adapters
- refine WebFetch template-heavy detection for low-text structured portal pages
- update install/uninstall/settings/verify/docs/phase files for the new runtime model
Verification
- fixture classification remains correct for article/template-heavy/browser-shell cases
- extraction provider policy checks now cover PRIMARY selection, random no-PRIMARY selection, and ordered fallback behavior
- real-key smoke completed for Tavily Extract and Exa Contents
Notes
- this release updates the repo/runtime model and documentation for three interchangeable WebFetch extraction backends
- commit: 295a52a
v0.1.2
Overview
This release expands the search layer with Exa support, simplifies public search mode guidance, and normalizes timeout/probe environment names while keeping backward compatibility for legacy names.
Added
- Exa Search provider adapter
- Exa configuration examples in
settings.example.json - richer parallel search-result behavior that returns all successful provider results and reports partial provider failures
Updated
- public search-mode guidance now focuses on
fallbackandparallel - README now explains
fallbackandparallelstep-by-step - provider-order and
SEARCH_PRIMARYbehavior are documented more clearly - phase docs and verification flow were synchronized with the current implementation state
Env naming improvements
Preferred env names now include:
CLAUDE_WEB_HOOKS_SEARCH_TIMEOUTTAVILY_SEARCH_TIMEOUTEXA_SEARCH_TIMEOUTWEBFETCH_PROBE_TIMEOUTWEBFETCH_PROBE_MAX_HTML_BYTESWEBFETCH_SCRAPER_TIMEOUT
Backward compatibility
Legacy timeout names are still accepted for now, so existing configs do not break immediately.
Current defaults
CLAUDE_WEB_HOOKS_SEARCH_MODE=parallelCLAUDE_WEB_HOOKS_SEARCH_PROVIDERS=tavily,websearchapi
Notes
- native fallback remains fully permissive when custom execution cannot complete successfully
- WebFetch still uses the current WebSearchAPI scraper fallback path
- Exa is currently added as a search-layer provider
v0.1.1
Overview
This release advances Claude Code Web Hooks from a single-provider search path into a documented multi-provider search architecture.
Highlights
- Added multi-provider WebSearch architecture
- Added Tavily Search support
- Added provider policy layer with
single,fallback, andparallelmodes - Set current default search behavior to:
CLAUDE_WEB_HOOKS_SEARCH_MODE=parallelCLAUDE_WEB_HOOKS_SEARCH_PROVIDERS=tavily,websearchapi
- Preserved fully permissive native fallback behavior
Included in this release
- role-based hook entry filenames:
websearch-custom.cjswebfetch-scraper.cjs
- shared provider modules:
- failure policy helper
- search provider contract
- search provider policy
- WebSearchAPI.ai adapter
- Tavily Search adapter
- phase planning workspace for multi-provider implementation
- updated README, design, changelog, TODO, settings example, installer, uninstaller, and verification script
Why it matters
This release improves Claude Code behavior in custom-endpoint workflows where native/server-side search processing may not be available or may be unreliable.
Notes
- WebSearch now supports WebSearchAPI.ai and Tavily Search
- WebFetch still uses the current WebSearchAPI scraper fallback path
- Architecture remains open to future search/extract provider expansion
v0.1.0
Overview
First public release of Claude Code Web Hooks.
This project is a Claude Code-only hook layer that improves practical WebSearch and WebFetch behavior when native/server-side behavior is not available or not sufficient through custom endpoint workflows.
Included
WebSearchsubstitution hook using WebSearchAPI.aiWebFetchauto-detect + scraper fallback hook- fully permissive fallback policy so custom-path failures fall through to native Claude Code tools
- API key pool support:
- inline
|pool - JSON array file
- newline-separated text file
- inline
- automatic next-key retry across the configured key pool
- installer, uninstaller, and verification scripts
- fixtures for repeatable classification checks
Use cases
- Improve
WebSearchwhen a custom endpoint cannot complete the expected Claude Code search process server-side - Improve
WebFetchon template-heavy or browser-render-required pages - Preserve native Claude Code behavior when the custom path should not trap the user
Notes
- Current implementation targets WebSearchAPI.ai only
- Architecture remains open to supporting other search APIs later if a better fit is identified