Skip to content

Releases

v1.7.0 - Scheduled Patrol (adb_patrol_check + trend delta)

Choose a tag to compare

@SamXiaBing SamXiaBing released this 31 Aug 08:36

Scheduled Patrol (ROADMAP #8)

Added

  • adb_patrol_check tool: one-click patrol = crash scan (real vs. boot markers) + perf vs. latest stored baseline (thresholded regressions) + battery/temperature/storage -> compact verdict (ok/attention) with concrete issues
  • compareToLast: true: delta vs. the previous stored patrol — new/gone crashes, worsening regressions (e.g. Janky % 60%->140%), verdict transition; delta lines prefixed into report.lines
  • Fail-closed semantics: a section that cannot be collected is itself an issue ("couldn't check" != "no problem")
  • No baseline -> comparison skipped with a note (not an error); omit package -> perf section skipped
  • Reports persisted under <reportDir>/patrol/ (isolated from device health reports)
  • docs/SCHEDULED-PATROL.md (bilingual): run the patrol unattended with dsh-automation — self-contained prompt template (verdict-based drill-down), automation_create example, operational gotchas

Verified: 114 unit tests green (22 patrol cases); real-device verified on Redmi K50 Pro (first part 4/4 PASS + diff-chain PASS: first patrol no delta -> store -> second patrol delta present with correct comparedTo label). 15 tools total.

v1.6.1 — 文档补丁(Docs Patch)

Choose a tag to compare

@SamXiaBing SamXiaBing released this 27 Aug 01:38

Docs Patch

  • README bilingual adb_watch_crash usage examples (foreground/background modes + parameter table + crash_report/screenshot chain)
  • Fix npm latest version and device list in README
  • Add docs/SESSION-SUMMARY.md (history and roadmap summary)
  • ROADMAP reordered by LLM dependency

No code changes; 92 unit tests green.

v1.6.0 — 崩溃看门狗(Crash Watchdog)

Choose a tag to compare

@SamXiaBing SamXiaBing released this 26 Aug 02:09

崩溃看门狗(Crash Watchdog)

Added

  • adb_watch_crash 工具:监控 crash buffer 里的新真实崩溃(前台轮询或后台 job)
  • 前台:轮询直到新崩溃出现(FATAL EXCEPTION / Fatal signal / SIG*)或预算耗尽(默认 60s / 上限 600s),超时返回 matched:false 而非抛错
  • 后台(run_in_background):挂 ctx.jobs 持续轮询,job_output 返回每次新崩溃文本摘要
  • seed 去重:启动时记住已有崩溃,只报新出现的;启动标记(mtk-brm)不算崩溃(复用体检分类逻辑)
  • 与现场采集衔接:检测到崩溃后配 adb_crash_report / adb_screenshot 抓现场——「盯崩溃→采集→归因」链第一环

Verified:单测 92 全绿(新增 8 例:签名/增量/格式 4 + 轮询循环 4,含崩溃出现/不出现/瞬时失败容忍/seed 去重);headless 验证注册 + 无设备时结构化超时返回。崩溃触发正向路径依赖在线设备(模拟器已下线),轮询逻辑已单测全覆盖。


EN: adb_watch_crash — watch the crash buffer for NEW real crashes (foreground poll or background job), seed-deduped, boot markers ignored; matched:false on timeout. The first link of the monitor→capture→attribute chain. 92 unit tests green.

v1.5.0 — 截图工具(Screenshot Tool)

Choose a tag to compare

@SamXiaBing SamXiaBing released this 25 Aug 07:46

截图工具(Screenshot Tool)

Added

  • adb_screenshot 工具:screencap(设备)→ pull(host)→ 落盘 PNG(screenshotDir,缺省 <baselineDir>/screenshots),返回 savedTo / bytes / width / height
  • 纯函数 pngDimensions 从 PNG IHDR 解析宽高(无效签名安全返回 undefined)
  • 设备端临时文件 best-effort 清理;本地目录自动创建
  • 补缺口:RPC screenshot 端点早有(v1.1 保留),工具一直没补——现在 agent 能直接截图留证(崩溃现场/UI 状态/测试前后对比),是 ROADMAP ③截图视觉解读的落地原语

Verified:单测 84 全绿(新增 7 例:pngDimensions 3 + path 1 + capture 流程 3,含 screencap 失败与 pull 无产物路径)。真机级验证通过(emulator-5556):截图 1280x720 PNG 734KB,签名/尺寸解析正确。


EN: adb_screenshot — capture the device screen into a local PNG (screencap → pull), returning path, byte size, and pixel dimensions. Durable evidence for crash scenes / UI states / test frames; the primitive behind the vision features. 84 unit tests green, emulator verified.

v1.4.0 — 操作回滚台账(Operation Ledger)

Choose a tag to compare

@SamXiaBing SamXiaBing released this 24 Aug 04:49

操作回滚台账(Operation Ledger)

Added

  • adb_operation_ledger 工具(record / list / rollback):追加式记录设备变更操作(install/uninstall/push/rm/replace/other),落盘 <baselineDir>/operations.json
  • record:记一次操作,校验 install/replace 本地 apk 存在(LOCAL_FILE_NOT_FOUND)、push/rm 需 remotePath(ARGS_INVALID)
  • list:按设备/包过滤历史,最新 20 条倒序
  • rollback:重装最近一次成功 install/replace 的 APK(adb install -r);无台账报 LEDGER_EMPTY,APK 丢失报 APK_MISSING
  • 信任基础:agent 装/推后记一笔即可撤销自己的设备变更——「agent 自主改设备」的可回滚前提

Verified:单测 77 全绿(新增 9 例:生命周期 3 + 回滚决策 3 + 健壮性 2 + 校验 1);headless 验证 record→落盘→list + 校验/错误路径;真机全链路通过(Redmi K50 Pro):record install → rollback 重装成功(设备 lastUpdateTime 更新证实真装)、LEDGER_EMPTY 错误路径验证、测试痕迹已清理。


EN: adb_operation_ledger (record/list/rollback) — append-only device operation ledger persisted as operations.json; rollback reinstalls the last known-good APK via adb install -r. The trust base for agent-driven device modification. 77 unit tests green; real-device rollback verified end-to-end.

v1.3.0 — 等待原语(Wait Primitive)

Choose a tag to compare

@SamXiaBing SamXiaBing released this 21 Aug 02:29

等待原语(Wait Primitive)

Added

  • adb_wait_for 工具:等待设备达到某条件再继续,替代盲目 sleep 固定秒数
  • 条件:device-online(设备上线,不传 serial 等任意设备)/ boot-complete(sys.boot_completed=1)/ process(ps 出现指定进程)/ logcat-pattern(logcat 出现关键字)
  • 轮询到预算上限(默认 30s / 上限 300s);超时返回 matched:false 而非抛错,agent 可对超时做反应;瞬时探测失败不终止
  • agent 编排从「盲等 5 秒」升级为「等 com.example 进程出现后再抓快照」的确定性序列——是台架自动化测试 / 崩溃归因 / 定时巡检的地基原语

Verified:单测 68 全绿(新增 12 例:条件纯函数 4 + 轮询序列 8);真机验证通过(Redmi K50 Pro:device-online / process 均 matched)


EN: adb_wait_for — wait until a device condition holds (device-online / boot-complete / process appeared / logcat keyword), polling up to a budget, returns matched:false on timeout instead of erroring. Turns "sleep 5s after install" into deterministic "wait for the process, then snapshot". 68 unit tests green, real-device verified.

v1.2.0 — 一键体检(One-Click Health Report)

Choose a tag to compare

@SamXiaBing SamXiaBing released this 20 Aug 06:25

一键体检(One-Click Health Report)

Added

  • adb_device_report 工具:一键采集设备信息 / Top RSS 进程 / 崩溃缓冲 / W/E/F 日志 / 存储用量;每节独立降级;落盘 reportDir(默认 <baselineDir>/reports)
  • RPC deviceReport 端点 + 面板「一键体检」按钮 + 「发送到对话」
  • parseProcessList 增加 rss 字段,体检按 RSS 排序取内存大户
  • docs/ROADMAP.md:9 条 harness×adb 协同功能路线图

Evidence → Signal(评审改进)

  • 崩溃缓冲分类:43 条 → 1 真实崩溃(含堆栈链)+ 9 启动标记 + 33 其他,不再误导
  • W/E/F 按 tag 聚合:16987 条 → AOSP-MdnsDiscoveryManag ×3264 等计数 + 样本行
  • 插件自产健康摘要:verdict(ok/attention)+ lines + issues,agent 从结论出发

Verified:单测 56 全绿;真机验证(Redmi K50 Pro);GUI 验收通过


EN: One-click device health report with evidence→signal processing: crashes classified (real vs. boot markers with stack chains), logcat aggregated by tag, auto health verdict — the agent reasons from conclusions, not 17k raw lines. 56 unit tests green, real-device verified.

v1.1.0 — 设备面板增强 + harness 协同(Device Panel Enhancements + Harness Synergy)

Choose a tag to compare

@SamXiaBing SamXiaBing released this 20 Aug 06:25

Added

  • 包名下拉 + 模糊搜索自动补全;实时 logcat 窗口(1.5s 增量轮询、级别/关键字/进程/包名过滤、暂停/清空/自动滚动);设备信息卡;进程列表(点击按 pid 过滤)
  • harness 协同(核心):logcat/快照「发送到对话」(inputActions.setDraft);面板顶部实时显示 agent 的 adb 操作;崩溃分析 skill(dsh-adb-crash-analysis)
  • v1.1.3(并入本版):中英文自适应(ctx.locale.register 跟随 harness 语言)+ 跨页签状态持久化(defineStore)
  • scripts/restart-web.ps1 一键重启

Verified:单测 37 全绿;GUI 验收通过

EN: Package autocomplete, live streaming logcat, device info card, process list + harness synergy (send-to-chat, live agent adb activity strip, crash-analysis skill); v1.1.3 i18n + tab-switch state persistence folded in. 37 unit tests green.

v1.0.0 — Web 设备面板(Web Device Panel)

Choose a tag to compare

@SamXiaBing SamXiaBing released this 20 Aug 06:25

Added

  • Web 设备面板(conversation.view 页签「设备」):设备列表/状态 + 包名输入 + 性能快照 + logcat 过滤;数据走 Package RPC(/dsh-adb),Host 复用已验证执行核心
  • capturePerfSnapshot 签名重构(exec → signal),工具/RPC 共用

Fixed(GUI 验收发现)

  • HTTP 405 根因:connection.rpc.handle 的 options 必填({authority:''loopback''}),端点分发抽成可单测的 handleRpcEndpoint
  • Host 侧改用 ctx.inject(['connection']) 等服务就绪再注册

Verified:单测 20 全绿;headless + Web GUI 真机验收通过

EN: First web device panel (devices, package, perf snapshot, logcat filter) over package RPC; fixed the 405 by passing required {authority:'loopback'} and refactoring endpoint dispatch. 20 unit tests green.

v0.2.0 — 性能基线 + 崩溃现场(Perf Baselines + Crash Reports)

Choose a tag to compare

@SamXiaBing SamXiaBing released this 20 Aug 06:25

Added

  • adb_perf_baseline:save/compare/list/delete,数值 diff(PSS/卡顿率/帧率百分位),本地 JSON 存储(baselineDir)
  • adb_crash_report:崩溃现场一键采集(crash buffer 解析 + dropbox 摘录 + 进程状态 + 内存摘要)

Changed:DEVICE_NOT_FOUND 分类增加 - waiting for device - 匹配

Verified:单测 14 全绿;真机验证(K50 Pro)通过;已发布

EN: Performance baselines with numeric diff (save/compare/list/delete) and one-call crash scene reports. 14 unit tests green, real-device verified.