Overview
dsh-browser
README / EN
Package documentation
Registry summary
dsh.pub verifies the pinned bundle contract, runtime facts, and distribution semantics. The complete README remains in the source repository.
Read the full README on GitHubLIMITATIONS
Known limitations
- **默认不自行启动 Chrome.** 只用扩展已经连上的那个浏览器; 需要独立 profile 时打开 `launchStandaloneChromeProfile`, 但那份 profile 没有用户的登录态. - **只支持 Google Chrome.** Chromium / Edge / Brave 的 native messaging 目录各不相同, 没有做探测. - **页面在 iframe 里的内容取不到.** 快照只覆盖主框架. - **文件上传靠内容重建, 不是真实路径.** 浏览器不允许脚本给 `input[type=file]` 指派磁盘路径, 所以 `browser_upload` 是把宿主读到的字节在页面里重建成 `File` 再装进去; 单次上限 24 MiB, 且文件输入框只能按选择器定位 (它通常是隐藏的, 不在快照编号表里). - **Chrome 内部页面无法操作.** `chrome://` 与扩展商店页面禁止脚本注入. - **一次只服务一个会话.** 浏览器平面是有状态的, 两个会话同时驱动会互相踩, 所以第二个会话会被明确拒绝而不是放进去造成难以复现的混乱. - **截图只有当前视口, 而且不发给模型.** 整页需要滚动拼接, 而宿主侧没有图像库; 图片落成文件后由 `read_image` (能看图的模型) 或用户自己查看. - **`browser_evaluate` 需要用户在扩展详情页手动打开开关.** 其余工具不受影响. 在页面 CSP 严格的站点上, `world: "main"` 可能被拒 (那是页面自己的限制), 默认的 `isolated` 不受影响. - **`browser_console` 只在抓取期间有效, 且缓冲有限.** 只收集 start 之后的输出; 环形缓冲上限 1000 条, 超出淘汰最旧的; 条目与状态存在 `chrome.storage.session`, 浏览器重启后自然清空. 用户点掉调试提示条或打开 DevTools 都会中断抓取, 下次 read 会报告原因. - **`unpacked` 加载方式没有自动更新.** 每次改扩展要手动 reload.
