Skip to content

Releases: WJPGKZ/dsh-ego-local-browser

v1.2.0 — 真实浏览器优先 + 桥自启动

Choose a tag to compare

@WJPGKZ WJPGKZ released this 17 Oct 21:08

解决真实 Chrome/Edge 与 agent 浏览器同时运行时的通道串扰问题,让不同浏览器实例能够稳定、明确地接收命令。

亮点

  • 按客户端实例路由:扩展轮询时上报 clientId 和角色(real 或 agent),桥按实例区分客户端,避免真实浏览器与 agent 浏览器抢占同一通道。
  • 真实浏览器优先:页面类 ego_* 操作默认只选择真实浏览器;只有在 browserMode=agent 时才使用 agent 客户端。动作结果会返回客户端实例、角色和选择信息,便于诊断。
  • 独立的 agent 扩展副本:插件加载时自动生成 agent 专用扩展目录,真实 Chrome/Edge 与 agent 浏览器使用各自的扩展配置。
  • 投递目标固定:命令携带目标 clientId,桥只向选定实例投递,修复多个浏览器实例之间的竞态。
  • 桥自动启动:新增 autoStartBridge 配置,默认开启。插件加载后即可启动桥;关闭后仍可由 ego_real 按需启动。
  • 诊断信息更完整:ego_real_doctor 现在包含客户端详情、桥启动次数、最近一次启动错误以及 agent 扩展目录等信息。

修复

  • 修复 /status 在生成 byBrowser 信息时返回 500(object is not iterable)的问题。
  • 修复稳定性测试心跳请求缺少 token、导致返回 403 的问题。
  • 更新策略测试,使其覆盖 clientRole 和 clientSelection 字段。
  • 修复早期版本中 export 位于函数体内导致整包无法导入的问题。

验证

  • 在 Chrome real、Chrome agent、Edge real 三个客户端并存时,不指定客户端的 ego_page_info、ego_real tabs 和 ego_js 均命中真实 Chrome,agent 客户端未被选中。
  • 指定 client=edge 时命中真实 Edge,Canvas GE1362 四次 quiz 均获得 10/10。
  • 指定 client=chrome 时命中真实 Chrome,PASS CS1315 Assignment 1 最高取得 40/40(出现 3 次),正式提交状态为 Pending for marking。
  • hand_read 在真实 Edge 上可逐块显示内容。
  • 插件加载后无需先调用 ego_*,/status 即可访问,桥启动次数为 1。
  • 所有改动文件通过 node --check,node --test 结果为 10/10;本次提交没有删除文件。

升级说明

  1. 下载并使用 v1.2.0 版本(产物为 v1.2.0.tar.gz)。
  2. 在真实 Chrome/Edge 中加载 real-browser/extension/;agent 浏览器使用插件加载时自动生成的 real-browser/extension-agent/ 副本。
  3. 如需关闭插件加载时自动启动桥,可将 autoStartBridge 设为 false,之后通过 ego_real 按需启动。
  4. 旧扩展未上报 clientId 时仍可使用,桥会将其登记为 legacy:<browser>,并默认视为真实浏览器。

已知限制

  • Edge 开启“效率模式”或标签休眠时,MV3 service worker 可能被节流;指定 client=edge 的命令可能排队至 90 秒后超时。执行前可先在 Edge 中打开一个标签页以唤醒扩展。
  • 严格 CSP 站点(例如 GitHub)会禁止 MAIN-world eval,因此鲸鱼娘动画和 ego_js 可能降级;其他动作不受影响。

v1.1.6 — 修复 bridge 残留,DSH 更新/覆盖安装不再被阻塞

Choose a tag to compare

@WJPGKZ WJPGKZ released this 17 Oct 12:05

v1.1.6 — bridge 生命周期修复

修复 DSH 退出后本地浏览器 bridge 残留,导致官方更新 / 官网覆盖安装无法替换 DeepSeek Harness.exe(NSIS 静默安装失败) 的问题。

改动

  • real-browser/bridge/server.mjs:新增 owner watchdog —— 宿主进程(dsh-desktop-host)消失后 ~0.75 秒内自动退出;ESRCH 判为宿主已退出,EPERM / 未知异常保持存活并记录日志(60 秒限频,避免误杀与刷屏)。
  • lib/real-browser-tools.mjs:跟踪本宿主 spawn 的 bridge 子进程,并在 ctx.effect(() => () => stopRealBrowserBridge()) 中注册 disposer —— 插件 dispose / HMR 时主动结束;非本宿主启动的 bridge 不做处理。

评审

  • GitHub Copilot CLI 三轮代码评审:首轮发现并修正 ctx.effect disposer 写法错误;最终结论 “可接受”。

验证

  • 隔离测试:宿主存活时 bridge 正常,宿主退出后 bridge 自动退出、端口关闭。
  • 真实退出 DSH:bridge 进程消失,无孤儿 DeepSeek Harness.exe 进程。
  • 重启后 ego_real 正常、bridge 稳定存活(watchdog 不误杀)。

升级

  • 覆盖安装 / 更新后重启一次 DSH 即可;数据与登录态不受影响。
  • 中间版本 1.1.4 / 1.1.5 为本地迭代,GitHub 以 1.1.6 为最终版本。

完整变更见 CHANGELOG.md。

dsh-ego-local-browser v1.1.3

Choose a tag to compare

@WJPGKZ WJPGKZ released this 17 Oct 09:38

dsh-ego-local-browser v1.1.3 — 真实浏览器模式 + 鲸鱼娘(最终版)

真实浏览器模式(Real Taskbar Browser Mode):不动 profile、不读 cookie、不开调试端口,直接操作你任务栏里的真实 Chrome/Edge。

  • ego_real / ego_real_doctor:status / tabs / open / navigate / page_info / snapshot / read / click / fill / js / scroll / screenshot / wait_selector / wait_url / hand_read / hand_click / hand_fill / extension
  • open = 你点任务栏图标:真实 profile 打开 URL 并回传新标签页
  • 鲸鱼娘光标(npm whale-maid-cursor,内嵌 base64):粉色 阅读中…/点击/填写 标签 + 元素粉框 + 平滑滚动逐块阅读;2.5s 自动淡出、pointer-events:none
  • 登录策略:snapshot 返回 likelyLoginPage;需要登录时 agent 停下请你本人登录,绝不自动登录
  • 桥:127.0.0.1:18765,按客户端(chrome/edge)路由、严格结果契约、超时/取消、poll 健康统计
  • 扩展补丁(重载一次生效):ping/PROTOCOL=2 握手、结果校验、30s 看门狗、MV3 keepalive、截图/激活重试

保留:原版克隆 profile 的 agent 浏览器模式与 32 个 ego_* 工具(无人值守用)。

验证

  • real-browser/bridge/verify.mjs:Edge 17/17、Chrome 17/17,连续 3 轮稳定;staged 扩展在一次性 Edge profile 13/13
  • 鲸鱼娘证据:whale-edge-read-mid.png、whale-edge-read-move.png(Edge/Canvas MA1508 已登录)、whale-chrome-fill.png、whale-chrome-click.png
  • 真实浏览器打开证据:Chrome 主进程无 --user-data-dir,桥可见该标签页

已知限制(诚实说明)

  • 严格 CSP 站点(GitHub 等)禁止 MAIN-world eval → 可见鲸鱼娘动画与 js 降级;点击/填写/导航/快照/截图正常。
  • 扩展补丁需在 chrome://extensions 与 edge://extensions 各「重新加载」一次(不重载也兼容旧版)。

文档:docs/REAL-BROWSER.md、README.md(双模式 + 图标)、docs/CHANGELOG-v1.1.0.md、docs/VERIFICATION.md。

dsh-ego-local-browser v1.0.2

Choose a tag to compare

@WJPGKZ WJPGKZ released this 17 Oct 08:05

dsh-ego-local-browser v1.0.2

DSH plugin that drives the user's own installed Chrome/Edge with their real login state.

  • Minimal profile copy: Local State + <profile>\Network\Cookies only (App-Bound v20 cookies decrypt), trimmed to a domain allowlist.
  • 32 baseline ego_* tools + realtime watch panel + ego_local_doctor / ego_local_sync + a 本地浏览器 settings page.
  • Hardened after an external review: minimal --import-chrome-profile, ego_login_import re-routed to the safe sync, cookie-value reads blocked in raw-CDP/script tools, home restricted to E:\AI\DeepSeek\data\, service-level sync mutex, live-profile lock owner checks, live copy opt-in with fingerprint verification, atomic status/config writes, 6-way concurrent cookie deletion (~11s → ~7s).
  • All data stays outside the source profile; the source profile is never written (verified by size/mtime/sha256).

See docs/DESIGN.md, docs/VERIFICATION.md, docs/ROLLBACK.md, and docs/CHANGELOG-v1.0.1.md in the repository.