Kai (Tam Nhu) Tran and GitHub
5ca9b7b1e2
Merge pull request #1448 from kaitranntt/codex/fix-browser-page-open/close-handlers
...
fix(browser): handle DevTools close endpoint response
2026-05-30 16:09:17 -04:00
Kai (Tam Nhu) Tran
92252189b1
fix(browser): handle DevTools close endpoint response
2026-05-30 14:56:49 -04:00
Kai (Tam Nhu) Tran and GitHub
c322829f44
fix(browser): cap click and key repeat counts in MCP ( #1367 )
...
* fix(browser): cap click and key repeat counts in MCP
* style: apply prettier formatting
2026-05-23 21:44:42 -04:00
Kai (Tam Nhu) Tran and GitHub
8b3ba5532e
fix(browser): log only matched intercepted requests ( #1366 )
2026-05-23 21:44:40 -04:00
Kai (Tam Nhu) Tran and GitHub
8051f1614b
fix(browser): stop recorder leaking sensitive input
...
Squash merge PR #1293 into dev.
2026-05-19 09:04:05 -04:00
Kai (Tam Nhu) Tran and GitHub
9a2a1dde31
fix(browser): redact observed event URLs
...
Squash merge PR #1296 into dev.
2026-05-19 08:54:57 -04:00
Kai (Tam Nhu) Tran and GitHub
538b6444ff
fix(browser): gate response fulfillment opt-in
...
Squash merge PR #1295 into dev.
2026-05-19 08:41:00 -04:00
Kai (Tam Nhu) Tran and GitHub
a86486497b
fix(browser): block sensitive header intercept matchers
...
Squash merge PR #1294 into dev.
2026-05-19 08:31:17 -04:00
Kai (Tam Nhu) Tran and GitHub
2115742caf
fix(websearch): avoid shell for legacy CLI fallbacks ( #1267 )
...
* fix(websearch): avoid shell for legacy CLI fallbacks
* style: apply prettier formatting
2026-05-16 13:58:52 -04:00
Kai (Tam Nhu) Tran and GitHub
eb4bbfddf3
security(browser-mcp): restrict model-callable local file uploads/downloads to safe roots and deny sensitive paths ( #1220 )
...
* fix(browser): restrict file transfer paths
* fix(browser): normalize safe transfer paths
* fix(browser): reject sensitive transfer roots
2026-05-12 08:57:33 -04:00
Tam Nhu Tran
9d0690e1a8
test(ci): make routing mock complete and websearch trace path env-robust
...
Two pre-existing test bugs surfaced under CCS CI on the new claw self-
hosted runners but stayed hidden locally:
1. tests/unit/commands/cliproxy-routing-subcommand.test.ts mocks the
routing-subcommand module with only 3 exports, but
src/commands/cliproxy/index.ts statically imports 6. Bun resolves
the static import graph against the mock and reports
SyntaxError: Export named 'handleRoutingAffinitySet' not found
for every test in the file. Add the missing 3 exports
(handleRoutingAffinityStatus, handleRoutingAffinityHelp,
handleRoutingAffinitySet) to the mock and document why the mock
must mirror every named export of the target module.
2. tests/unit/hooks/websearch-transformer.test.ts builds the
"disallowed" trace path from process.cwd() and from os.homedir().
Both fall under the os.tmpdir() safe-prefix in two real
environments: CI runners with cwd == /tmp/runner/work/... and Bun
test isolation that re-roots HOME under tmpdir. The hook treats
them as safe, writes the trace, and the assertion that the file
does NOT exist fails. Anchor disallowedTracePath under /etc/...
instead so it cannot satisfy the tmpdir, /var/log, or
<CCS_HOME>/.ccs/logs prefixes in any host environment.
Both fixes are independent of the OAuth callback traceability change
that this branch otherwise carries, but ship together so the PR
clears CI on the new runner stack.
2026-05-10 20:23:02 -04:00
walker1211 and Claude Opus 4.7
4c46d6c5ae
fix(browser): 修复 DevTools 页面创建和截图诊断
...
兼容 Chrome DevTools /json/new 的 PUT 方法,过滤不可用的 top-chrome 页面目标,并在截图前对 0x0 viewport 给出明确错误。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-25 14:46:18 +08:00
Tam Nhu Tran
50fa27f0a5
test(browser): split Browser MCP hook coverage by domain
2026-04-22 23:07:50 -04:00
Tam Nhu Tran
7732b2039a
fix(browser): harden Browser MCP sessions and artifacts
2026-04-22 22:34:49 -04:00
walker1211
96db93ee6c
Merge upstream/dev into feat/browser-mcp-hover-phase11e
2026-04-22 00:59:24 +08:00
walker1211 and Claude Opus 4.7
40c718c584
fix(browser): 修复 download 事件的 pageIndex 过滤
...
为 browser_wait_for_event 的 download 路径补齐按页面 frame tree 过滤,避免多页面或动态 iframe 下载时误命中或漏命中。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-20 21:42:00 +08:00
walker1211 and Claude Opus 4.7
1833ed3ad6
feat(browser): 增加跨 page orchestration 能力
...
新增显式跨页 orchestration block,支持开页、切页、关页后执行单页逻辑。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-20 21:03:33 +08:00
walker1211 and Claude Opus 4.7
2f167d8445
feat(browser): 增加 artifact 持久化与导入导出能力
...
新增 recording、replay、orchestration 的本地 JSON artifact 导出、导入、列出与删除能力。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-20 20:31:51 +08:00
walker1211 and Claude Opus 4.7
101396f728
feat(browser): 增加 orchestration 执行策略增强
...
为 block 与 sequence step 增加最小 continueOnError 语义,并补充 failures 汇总输出。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-20 19:35:52 +08:00
walker1211 and Claude Opus 4.7
0038b063ac
feat(browser): 增加 sequence 组合块能力
...
新增单层 sequence 容器以组合现有 orchestration blocks,并补充 sequence 内失败定位能力。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-20 18:55:24 +08:00
walker1211 and Claude Opus 4.7
4af967559c
feat(browser): 增强 assert_query 断言与诊断信息
...
为 assert_query 增加 assertions 数组、更多比较操作和结构化失败 diagnostics。
并补充多断言、类型错误和数值比较的回归覆盖。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-20 17:39:19 +08:00
walker1211 and Claude Opus 4.7
77855035f4
feat(browser): 完成 Phase 10C orchestration 能力
...
新增固定流程块 orchestration 闭环,支持 wait_then_click、wait_then_type、run_replay_sequence 与 assert_query。
并补充 block 级失败定位与相关回归覆盖。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-20 15:00:15 +08:00
walker1211 and Claude Opus 4.7
9d21e83d46
feat(browser): 完成 Phase 10B replay 能力
...
新增最小 replay 闭环,支持消费 10A 结构化 steps 并顺序回放常见动作。
同时补充输入校验、失败定位与 replay 边界覆盖。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-20 13:59:34 +08:00
walker1211 and Claude Opus 4.7
5288387151
feat(browser): 完成 Phase 10A 录制动作规范化
...
补齐 recording 安装阶段的真实页面监听与注入失败回滚,避免空录制和损坏会话状态。
并完善高层 step 规范化与相关回归覆盖。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-20 12:50:15 +08:00
walker1211 and Claude Opus 4.7
17a3434056
feat(browser): 增加 Phase 10A recording 生命周期
...
补齐 recording session state、基础 recorder 注入与 capture 读取,打通 start/stop/get/clear 最小闭环。
并补充 pageId 路由、生命周期错误与 page close 停止录制覆盖。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-20 12:44:22 +08:00
Tam Nhu Tran
e25d791d9b
test(websearch): clear CCS_PROFILE_TYPE in SearXNG fallback spawn env
...
The SearXNG-to-DuckDuckGo fallback test inherited the caller's CCS_PROFILE_TYPE
via `...process.env`, causing the hook to take the 'native_default_profile'
skip path and produce empty stdout. All other subprocess spawns in this file
set CCS_PROFILE_TYPE to NEUTRAL_PROFILE_TYPE; this one was the outlier.
Deterministic locally when CCS_PROFILE_TYPE=default is set in the shell.
2026-04-19 15:21:36 -04:00
walker1211 and Claude Opus 4.7
844b5f6c42
feat(browser): 完成 Phase 9 拖拽与指针动作能力
...
补齐文件拖拽、元素拖拽与受限 pointer 原语,让 Browser MCP 能覆盖常见上传与页面内拖放交互。
并补足 pageId 路由与回归测试,保持与现有 selected-page 语义一致。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-19 18:41:18 +08:00
walker1211 and Claude Opus 4.7
492ee5b083
feat(browser): 完成 Phase 8 文件传输能力
...
增加 browser-scoped 下载控制与 page-scoped file input 上传,补齐 Phase 8 文档与回归覆盖,并去掉下载列表的 pageId 假能力以保持语义一致。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-19 13:46:07 +08:00
walker1211 and Claude Opus 4.7
126c30ac1a
test(browser): 补充 Phase 7 回归覆盖并同步文档
...
补齐 richer request matching 的边界与顺序回归覆盖,锁定同优先级规则继续按创建顺序命中,并同步 Phase 7 文档说明。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-19 01:15:39 +08:00
walker1211 and Claude Opus 4.7
cb415b4127
test(browser): 添加 Phase 7 richer matching 失败测试
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-19 00:38:12 +08:00
walker1211 and Claude Opus 4.7
ef06564b60
test(browser): 扩展 richer matching interception harness
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-19 00:32:55 +08:00
walker1211 and Claude Opus 4.7
447b5c8bc1
test(browser): 补充 Phase 6B 边界覆盖并同步文档
...
补齐 fulfill 参数校验与页面关闭后的状态清理回归测试,确保 mock response 行为在边界条件下可验证。
同步 Browser Automation 文档,明确 Phase 6B 的 fulfill 能力与 session-local 语义。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-18 23:38:28 +08:00
walker1211 and Claude Opus 4.7
1fbb53c4b1
test(browser): 添加 Phase 6B fulfill 失败测试
...
先补 browser_add_intercept_rule 的 fulfill schema、mock response 主路径与基础边界失败测试。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-18 23:12:35 +08:00
walker1211 and Claude Opus 4.7
23eccb24f3
test(browser): 扩展 fulfill interception harness
...
为 Phase 6B 增加 Fetch.fulfillRequest 记录能力,便于后续 mock response TDD。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-18 23:09:14 +08:00
walker1211 and Claude Opus 4.7
a93e0b6494
feat(browser): 完成 browser MCP 第六阶段 6A 最小拦截闭环
...
补齐最小 request interception 工具链与会话内状态管理,确保规则绑定具体页面并通过完整验证门禁。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-18 22:03:17 +08:00
walker1211 and Claude Opus 4.7
491e9db51e
test(browser): 添加 Phase 6A 失败测试
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-18 17:01:47 +08:00
walker1211 and Claude Opus 4.7
68b56839db
test(browser): 扩展 network interception harness
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-18 16:59:25 +08:00
walker1211 and Claude Opus 4.7
ff0e7085b8
feat(browser): 完成 browser MCP 第五阶段页面控制
...
补充 selected page 会话状态与页面选择、打开、关闭能力,
并为 browser_get_session_info 增加 selected 标记与最小多标签文档说明。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-18 16:39:51 +08:00
walker1211 and Claude Opus 4.7
e92a2c11bf
feat(browser): 完成 browser MCP 第四阶段输入能力
...
补齐 browser_click 的精细点击参数,并新增 browser_press_key 与 browser_scroll,继续扩展 browser MCP 的真实交互能力。
同步更新单测与浏览器自动化文档,确保 Phase 4 能力完成并通过验证。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-18 13:59:15 +08:00
walker1211 and Claude Opus 4.7
cf2375e169
feat(browser): 完成 browser MCP 第三阶段能力
...
补齐 iframe/shadow 作用域查询与页面事件观察能力,并同步测试与文档,确保 Phase 3 以可验证增量独立收口。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-04-18 01:55:16 +08:00
walker1211
b90eae3892
feat(browser): 完成 browser MCP 第一阶段能力与配置打通
...
- 增加 browser_wait_for、browser_eval 及 click/query 扩展能力
- 打通 browser eval_mode 的配置、状态、启动链路与设置界面
- 补充浏览器相关测试隔离、文档和 CI parity 收尾调整
2026-04-18 00:29:43 +08:00
Tam Nhu Tran
3103f3f293
test(hooks): harden cross-platform MCP coverage
...
- replace the Windows-brittle chmod read-error setup with a directory-based failure case
- force the browser installed-copy regression through the non-global WebSocket path
2026-04-13 13:10:05 -04:00
Tam Nhu Tran
d30f5803a7
fix(browser): harden browser MCP websocket startup
...
- fall back across globalThis.WebSocket, undici, and ws for installed runtimes
- normalize socket event handling for both WHATWG and ws implementations
- add an installed-copy regression test for missing ws in Bun global layouts
2026-04-13 12:56:22 -04:00
Tam Nhu Tran
7b337e2f7d
Merge remote-tracking branch 'origin/dev' into kai/fix/pr-974-browser-mcp-ci
2026-04-13 08:41:32 -04:00
Kai (Tam Nhu) Tran and GitHub
0394281480
Merge pull request #963 from sgaluza/fix/test-isolation-ccs-managed-env
...
test(ci): isolate CCS-managed env vars from host session
2026-04-13 08:40:30 -04:00
walker and Claude Opus 4.6
74f028168d
fix(browser): 加固 browser_click 激活语义并修复相关验证阻塞
...
- 将 browser_click 调整为 mousedown/mouseup 后走 native click
- 在取消激活和中途 detached 场景下避免强制触发 native activation
- 补齐 browser_click 的回归测试与取消激活场景覆盖
- 修复 cliproxy 本地代理、Droid 环境隔离、图像分析 hook 与 proxy 集成测试的验证阻塞
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-13 11:19:16 +08:00
walker and Claude Opus 4.6
eb8149e8fa
feat(browser): 接入 CCS browser MCP 与最小交互闭环
...
新增 browser MCP 安装、Chrome 复用与运行时接线,
实现 navigate、click、type、take_screenshot 四个 phase-1 工具并补齐相关单测。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-13 11:19:16 +08:00
Tam Nhu Tran
8b553c35c1
fix(websearch): harden searxng url handling
2026-04-12 06:31:20 -04:00
Sergey Galuza
1a7fc4a3f2
test(ci): improve test isolation readability per review feedback
...
- Extract NEUTRAL_PROFILE_TYPE constant with JSDoc explaining why
CCS_PROFILE_TYPE must be neutralised in subprocess env blocks
- Replace 6 bare '' occurrences with the named constant (DRY)
- Group save/delete operations in beforeEach with section comments
Built [OnSteroids](https://onsteroids.ai )
2026-04-11 17:18:51 +02:00
buiducnhat
eec8c8b4a3
feat(websearch): add SearXNG provider support and configuration
...
- Updated websearch.md to include SearXNG in the configuration guide.
- Implemented SearXNG JSON API integration in websearch-transformer.cjs.
- Enhanced unified-config-loader.ts to support SearXNG settings.
- Defined SearXNG configuration types in unified-config-types.ts.
- Updated hook-env.ts to manage SearXNG environment variables.
- Modified status.ts to include SearXNG in web search provider checks.
- Added SearXNG routes and validation in websearch-routes.ts.
- Implemented SearXNG provider tests in websearch-transformer.test.ts.
- Updated readiness tests to account for SearXNG in status.test.ts.
- Enhanced websearch routes tests to validate SearXNG settings.
- Added SearXNG configuration fields in the UI settings.
2026-04-11 16:43:59 +07:00