Skip to content

Releases: Xumi0920/dsh-browser-harness

dsh-browser-harness v1.9.4

Choose a tag to compare

@Xumi0920 Xumi0920 released this 03 Nov 15:53

更新日志

新增

  • CLI 补齐工具面:status、navigate、snapshot(offset/limit/role/name)、act、wait、extract、shot/pdf/diagnose、upload/download、task、tabs new/use/close
  • CLI 支持结果断言参数,如 act click --expect-text
  • 新增 T50 覆盖 CLI 真实浏览器工具面

修复

  • 截图前激活 target,修复输入后对后台 target 执行 Page.captureScreenshot 可能挂起的问题

测试与验收

  • npm run test:all:179 单测 + 50 集成 = 229/229 通过
  • npm run verify:VERIFY_OK
  • npm pack --dry-run:55 files
  • CI 门禁更新为 50 条集成场景

dsh-browser-harness v1.9.3

Choose a tag to compare

@Xumi0920 Xumi0920 released this 03 Nov 15:37

更新日志

新增

  • browser_snapshot 完整分页:offset/limit 对 role/name 过滤后的节点集分页,可越过 400
  • total 返回过滤后的完整数量,truncated 按分页边界计算
  • refs 按全量偏移编号(如 offset=400 时首条为 e401),继续返回 snapshotId/snapshotVersion

说明

  • refs 仍属于最近一次返回页;跨页使用旧 ref 需重新快照
  • drag/复杂表单能力继续保留(v1.9.2)

测试

  • 179 单测 + 49 集成场景 = 228 通过;CI 门禁更新为 49 条
  • 新增 450 按钮的 offset=400 完整分页测试与 T49 真机场景
  • live verify:VERIFY_OK

dsh-browser-harness v1.9.2

Choose a tag to compare

@Xumi0920 Xumi0920 released this 03 Nov 15:22

更新日志

新增

  • browser_act {action:"drag", ref|selector, toRef|toSelector, steps}:真实鼠标拖拽序列
  • 支持源/目标 ref 或 selector;默认 10 步,最多 100 步
  • 复杂表单测试:自定义下拉通过 click + expectation 驱动

说明

  • drag 使用 pointer/mouse 序列,面向鼠标/指针拖拽 UI;不实现原生 HTML5 drag-and-drop 数据传输
  • 结果断言与只读模式继续保留

测试

  • 178 单测 + 48 集成场景 = 226 通过;CI 门禁更新为 48 条
  • 新增拖拽/复杂表单单测、T47/T48 真实浏览器场景
  • live verify:VERIFY_OK

dsh-browser-harness v1.9.1

Choose a tag to compare

@Xumi0920 Xumi0920 released this 03 Nov 15:17

更新日志

新增

  • 工具层只读模式:readOnly: true
  • 阻止 browser_act、browser_extract js、上传/下载、browser_tabs new/close、browser_task 生命周期变更
  • 新错误 E_READ_ONLY;读取/导航/快照/截图/PDF/诊断仍可用

说明

  • 只读模式是页面写操作边界,不保证 GET 导航没有服务端副作用
  • browser_act 结果断言已在 v1.9.0 提供,本版继续保留

测试

  • 176 单测 + 46 集成场景 = 222 通过;CI 门禁更新为 46 条
  • 新增只读单测与 T46 真实浏览器场景
  • live verify:VERIFY_OK

dsh-browser-harness v1.9.0

Choose a tag to compare

@Xumi0920 Xumi0920 released this 03 Nov 15:10

更新日志

新增

  • browser_act 结果断言:expectUrl / expectText / expectSelector
  • 断言默认等待 5s,可通过 expectTimeoutMs 调整(上限 30s)
  • 新错误 E_EXPECTATION_FAILED:动作完成但页面未达到预期时不再返回假成功
  • 成功时返回 expectation 摘要(耗时、最终 URL、期望值)

测试

  • 175 单测 + 45 集成场景 = 220 通过;CI 门禁更新为 45 条
  • 新增单测覆盖成功/失败断言;T45 真实浏览器表单断言场景
  • live verify:VERIFY_OK

dsh-browser-harness v1.8.3

Choose a tag to compare

@Xumi0920 Xumi0920 released this 03 Nov 15:03

更新日志

修复

  • L2 contextId 持久化到 TaskRecord;新 manager 恢复时通过 Target.getBrowserContexts 校验
  • 恢复/新 manager 的 closeTask 可通过持久化 contextId dispose 旧 context
  • startTask 会 dispose 遗留 context;closed Task 清空 browserContextId
  • contextId 失效时清空并新建 context,不静默复用

测试

  • 173 单测 + 44 集成场景 = 217 通过;CI 门禁 44 条
  • 新增 T44:跨 manager 持久化 contextId 的校验与 dispose
  • live verify:VERIFY_OK

dsh-browser-harness v1.8.2

Choose a tag to compare

@Xumi0920 Xumi0920 released this 03 Nov 14:53

更新日志

新增

  • 可选 L2 隔离:isolation: "context",每 Task 一个 Target.createBrowserContext
  • context 模式新 tab 创建在独立 context;closeTask 时 dispose context
  • 新错误:E_L2_UNSUPPORTED(不支持 createBrowserContext 时 fail-closed)

行为边界(已实测)

  • shared 模式:同源页面共享 cookies,保持现有登录态体验
  • context 模式:不同 Task 的 cookies 隔离,不共享登录态;每个 Task 一个 context,不是独立 browser 进程
  • context 模式不允许借用主 profile tab;扩展/下载/截图/上传目录仍为全局
  • contextId 不保证跨浏览器重启恢复;L3 独立 profile 未实现

测试

  • 173 单测 + 43 集成场景 = 216 通过;CI 门禁更新为 43 条
  • 新增 T43:shared/context cookie 隔离与 context 数量验证
  • live verify:VERIFY_OK

dsh-browser-harness v1.8.1

Choose a tag to compare

@Xumi0920 Xumi0920 released this 03 Nov 14:42

更新日志

修复

  • 放宽文件租约测试的 heartbeat/stale 时序,适配 Windows CI 启动抖动;运行时代码无变化
  • 文件租约仍保持 5s 心跳 / 30s stale / token 校验释放语义

测试

  • 173 单测 + 42 集成场景 = 215 通过
  • 验证覆盖跨 manager 文件租约互斥、stale 回收和 T42 集成场景

dsh-browser-harness v1.8.0

Choose a tag to compare

@Xumi0920 Xumi0920 released this 03 Nov 14:39

更新日志

新增

  • 默认文件租约:<stateDir>/locks/<sha256(targetId)>.json
  • 文件 wx 原子获取、token 校验释放、5s 心跳、30s stale 回收、同宿主 pid 检查
  • 配置 fileLease / fileLeaseDir / fileLeaseHeartbeatMs / fileLeaseStaleMs
  • 跨 manager 文件租约失败返回 E_LEASE_FAILED(fail-closed,不回退内存锁)

变更

  • 插件默认 fileLease: true;文件租约与内存 lease 叠加
  • v1.8.0 文件租约设计已写入 docs/task-lifecycle.md
  • L2 isolation: "context" 仍在下一阶段,本次未启用

测试

  • 173 单测 + 42 集成场景 = 215 通过;CI 门禁更新为 42 条
  • 新增文件租约 stale/互斥单测和 T42 双 manager 集成场景
  • live verify:VERIFY_OK

dsh-browser-harness v1.7.0

Choose a tag to compare

@Xumi0920 Xumi0920 released this 03 Nov 14:22

更新日志

新增

  • 严格标签页所有权:插件默认 strictTabOwnership: true
  • browser_tabs use {borrow:true} 显式借用非自建用户 tab
  • 新错误:E_TAB_OWNER_CONFLICT / E_TAB_BORROW_REQUIRED
  • 配置:allowBorrowUserTabs;借用 tab 归属与其他 Task 冲突检测

变更

  • 其他 Task 自建 tab 默认拒绝;借用中的用户 tab 禁止其他 Task 借用,close 不会关闭用户 tab
  • browser_diagnose 返回 task/current lock/owned tabs 摘要
  • browser_task 新增 start,closed Task 可重新创建任务壳

测试

  • 172 单测 + 41 集成场景 = 213 通过;CI 门禁更新为 41 条
  • 新增 T39 重启恢复、T40 高级 wait、T41 strict ownership 集成场景
  • live verify:VERIFY_OK