Repository navigation
Releases
Releases · DarKWinGTM/claude-code-web-hooks
v0.1.10
Updated
- Updated
hooks/webfetch-scraper.cjsso handled extraction substitution emits the same deny/replacement JSON contract but exits0instead of surfacing as a hook-command failure. - Updated
hooks/websearch-custom.cjsso handled success and handled deny/error decisions now exit0while keeping tool ownership inhookSpecificOutput.permissionDecision. - Updated
verify.shto assert the hook decision transport contract directly for handledWebSearchsuccess, handledWebSearchdeny/error, and handledWebFetchsubstitution paths. - Updated README, design, TODO, phase, and patch surfaces to describe the normalized source-owned contract and source-first reinstall path.
Notes
- Non-zero exit codes are now reserved for actual hook-command failure rather than normal handled decision transport.
- Source verification now catches the checked regression class before runtime reinstall.
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