Skip to content

Releases: yffo/dsh-operator

dsh-operator 0.121.6 — 关闭卡片重启不复活

Choose a tag to compare

@yffo yffo released this 03 Nov 18:03

dsh-operator 0.121.6

关闭的卡片重启后也不再复活

关闭卡片后重启 App,卡片又出现。

  • 根因:0.121.5 的 dismissedSessions 是内存 Set,重启时模块重载就清空。
  • 修复:持久化到 localStorage(dsh-operator:dismissed-sessions)——点 × 写入并落盘,启动时读回,新一轮操作时移除。
  • 存储不可用时自动退回内存行为。

502 测试全绿。

dsh-operator 0.121.5 — 关闭卡片切会话不复活

Choose a tag to compare

@yffo yffo released this 03 Nov 17:49

dsh-operator 0.121.5

关闭的卡片切会话后不再复活

点过关闭(×)的卡片,切换到别的会话再切回来,它会重新出现。

  • 根因:dismissed 只存在组件实例上;切换会话时 dock 组件重新挂载,状态被重置成「未关闭」。
  • 修复:模块级 dismissedSessions 集合按 sessionId 记住关闭状态:
    • 点 × 时写入当前会话 id;
    • 组件挂载/同步时如果该会话在集合里 → 保持隐藏;
    • 该会话真的开始新一轮操作(working / 等确认)时清除,保持「下次操作再出现」的原设计。

502 测试全绿。

dsh-operator 0.121.4 — header 不换行 + 自动滚动

Choose a tag to compare

@yffo yffo released this 03 Nov 17:41

dsh-operator 0.121.4

折叠 header 真正不换行

0.121.3 只让子元素可收缩,但 flex-wrap:wrap 的容器仍会优先换行——关闭按钮依然掉到第二行。
改为 flex-wrap:nowrap:标题/步骤按 min-width:0 收缩省略,圆点/时长/折叠/关闭按钮始终同一行。

新步骤自动滚到底

步骤是正序排列,新步骤出现时原来要手动往下滚才能看到。现在列表容器挂 ref,
componentDidUpdate 发现步骤数增加就自动滚到最新一行(首次挂载也会滚一次)。

502 测试全绿。

dsh-operator 0.121.3 — 折叠卡片按钮不再换行

Choose a tag to compare

@yffo yffo released this 03 Nov 17:35

dsh-operator 0.121.3

折叠卡片:关闭按钮不再掉到第二行

卡片收起后,关闭按钮(×)有时被挤到标题下面单占一行。

  • 根因:.dop-dock-head 是 flex-wrap:wrap,收起时标题变长(带上「· 截取窗口」),空间不够就把最后一个按钮换行了。
  • 修复:标题/步骤文字可收缩并省略,时长、圆点、折叠/关闭按钮设为不收缩 —— 按钮始终留在同一行右侧。

502 测试全绿。

dsh-operator 0.121.2 — 步骤详情独占一行

Choose a tag to compare

@yffo yffo released this 03 Nov 17:34

dsh-operator 0.121.2

步骤详情固定独占一行

展开某一步时,详情有时出现在下一行、有时挤在行尾(取决于窗口宽窄)。

  • 根因:.dop-dock-row 是 flex-wrap 容器,详情块没有 flex-basis,空间够就并排、不够才换行;
    旁边的说明行本来就有 flex-basis:100%。
  • 修复:详情块同样加 flex-basis:100% —— 所有展开详情一律单独一行,与窗口宽度无关。

502 测试全绿。

dsh-operator 0.121.1 — 卡片标签细化

Choose a tag to compare

@yffo yffo released this 03 Nov 17:29

dsh-operator 0.121.1

操作卡片:浏览器工具不再笼统显示

  • browser_* 工具补上具体标签:启动浏览器 / 页面求值 / 查页面元素 / 网页截图 / 读取网页状态 …,不再全部显示「浏览器操作」。
  • 步骤目标里的长参数(data URL、JSON、超长参数)截断到 60 字符 + 省略号,悬停看全文。
  • 展开详情不再重复显示「用时 / 开始」(行内已有)。

502 测试全绿。

dsh-operator 0.121.0 — 页面开发四件套

Choose a tag to compare

@yffo yffo released this 03 Nov 17:24

dsh-operator 0.121.0

页面开发四件套

调研发现浏览器工具的操作层够用(点击/输入/等待/控制台/网络),但页面调试缺四件事,本版补齐:

  • browser_eval:在页面里执行单个 JS 表达式并返回 JSON 值 —— 读 DOM 状态、样式、存储、耗时。
    只接受表达式(不是脚本块);碰 cookie/存储/网络会自动带敏感提示,不阻断(页面开发本来就要读 storage)。
  • browser_selector:按 CSS 选择器查元素 —— 存在性、tag/id/class、可见文本、盒子、关键计算样式、属性。
    固定脚本,不执行任意 JS。排查「元素为什么看不见/位置不对」很直接。
  • browser_screenshot:CDP 截图存盘(整页 / 视口 / 按选择器或矩形裁剪),返回路径,用 read_image 看。
  • browser_launch 新增 window_size:启动时定视口,用于响应式检查。
    实测 Chrome 156 上运行时 Emulation 覆盖不改变 layout viewport,所以视口只在启动时定;宽度精确,高度含浏览器 UI(视口小约 87px)。

真机验证:eval / selector / screenshot 在真实 Chrome 上全部通过;window_size 宽度精确。502 测试全绿。

dsh-operator 0.120.0 — 自带浏览器实例(按需启动、用完即关)

Choose a tag to compare

@yffo yffo released this 03 Nov 17:11

dsh-operator 0.120.0

自带浏览器实例:独立窗口、用完即关

需要干净的登录环境(换个账号)或后台跑任务、不想动自己的浏览器时,插件现在可以自己开一个实例——
独立 profile(独立 cookie)+ 独立调试端口:

browser_launch headless=false      # 返回 pid / port / profileDir
browser_state  port=…              # 后续 browser_* 都带这个 port
browser_close  port=…              # 用完即关,临时 profile 自动删除
  • 按需启动、不常驻,关掉就干净了,不会多一个窗口一直挂着。
  • 传 user_data_dir 可保留登录态下次接着用;不传则用临时目录、关闭时删除。
  • 支持 Chrome / Edge / Brave / Chromium,默认挑已安装的。

真机验证:实例启动 → CDP 可用 → 关闭 → 端口不可达、临时目录已清理。测试 500 项全绿。

dsh-operator 0.119.3 — 卡片防误关 + 圆角 icon

Choose a tag to compare

@yffo yffo released this 03 Nov 17:02

dsh-operator 0.119.3

「正在操作」卡片防误关

  • 操作进行中不再提供关闭按钮(折叠仍可用),这一轮结束后才允许关掉。
  • 关闭只是隐藏卡片、不影响宿主执行——但会让人看不到进度、容易错过确认,所以禁掉。

圆角矢量 icon

  • icon 改为手写 SVG(assets/icon.svg:圆角底板 + 窗口 + 光标,青蓝渐变发光)。
  • 用它渲染出圆角的 assets/icon.png,市场和 README 都显示圆角版。

测试 495 项、preflight 全绿。

dsh-operator 0.119.2 — 低 AX 场景 + 视觉解析接口就绪

Choose a tag to compare

@yffo yffo released this 03 Nov 16:24

装一次、所有 DSH 会话可用的 Computer Use 插件:看屏幕、点鼠标、敲键盘、开应用,带计划/技能/审计/守卫。

本版要点(0.119.2)

低 AX 场景有正式路子了

  • ocr 新增 region 参数:只识别窗口的一块区域(0–1000),返回坐标仍是整窗坐标,可直接 click;密集 UI 里精度更高。
  • cua_observe 在 AX 树为空(画布 / 游戏 / 远程桌面 / 自绘界面)时会提示两步走:先 ocr 读文字与坐标(零依赖),
    需要图标级区域时再用 cua_parse_visual。

视觉解析接口就绪(等上游发货)

  • cua_observe 透传驱动的 capture_id;新增 cua_parse_visual,把截图切成文字/图标区域。
  • 上游 cua-perception 扩展仍是 developer preview(官方 catalog 未发布);发布后需要做持久 MCP 连接才能解析
    capture_id(现在的一次性 cua-driver call 做不到),届时启用图标级识别。

修两个真 bug

  • 参数 schema 缺 additionalProperties 导致整个插件注册失败(所有工具消失);现在 npm test 会跑 preflight 拦住这类错误。
  • ocr region 在 sips 触底时静默返回原图,导致坐标整体错位;现在裁剪后会校验输出尺寸,不符就退回整图 OCR。

测试 495 项、preflight 全绿。

安装

dsh plugin --profile desktop add dsh-operator

然后 ⌘Q 完全退出 DSH 再打开。首次用 GUI 工具时给宿主 App 授予「屏幕录制 / 辅助功能」。