Overview
dsh-sidebar-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
- **同源既是拾取的前提,也是信任边界**:被测页面理论上能访问外壳页面,也就能伪造一次「拾取」把内容推进对话上下文。**只浏览你自己信任的页面。** - 保存的账号密码是 **DSH GUI 源 localStorage 里的明文**(这里没有系统钥匙串),按目标源一一对应;不发往 host、不进对话、不出现在拾取结果里(密码框 `value` 被显式抹除)。 - 代理会摘掉被测页面的 CSP 与 `X-Frame-Options`——这正是原本不能被框的站点现在能被框的原因,也意味着**页面的安全策略在侧栏里不生效**。 - `/dsh-sidebar-browser/invoke` 走 webServer 的精确路由,**不在 GUI 的登录围栏内**(和它并列的插件路由都一样)。GUI 默认只绑 `127.0.0.1`,但如果你把 web 服务改成对外监听,这个端口上任何人都能读写浏览器状态。 - 设备预览是**视口预览**:媒体查询、布局、滚动按设备尺寸生效,但 `devicePixelRatio`、`pointer: coarse`、`hover: none`、User-Agent、触摸事件仍是桌面浏览器的。 - 面板窗口和代理都必须在本机:代理只绑 `127.0.0.1`,帧地址也一律按 loopback 拼(GUI 自己是 `localhost` / `127.0.0.1` 时沿用它的主机名,保持同站;DeepSeek Harness 的 GUI 跑在 `dsh-app://app`,不是 http 源,所以显式用 `127.0.0.1`)。从别的机器打开 GUI 时,浏览器到不了这台机器的 loopback 端口。 - 页签类型按 kind 唯一,所以浏览器面板同时只有一个,标签页在面板内部;内置的「浏览器」是另一个 kind,两边各自开各自的。 - 元素按「光标下最内层元素」命中,高亮会先告诉你要选的是哪一层;嵌套 iframe 内部的元素暂不支持。 - DSH 重启后页面会重新加载(地址 / 标签 / 缩放 / 视口还原),重启前未提交的表单内容不保留。
