fix: guard transient controls and verify timeline endpoints

This commit is contained in:
chenmingxuan committed 2026-11-02 13:54:50 +08:00
1 parent 479a185192
commit 00e62a663a
29 files changed
+1150 -90

No files matched your search

+20 -2
View File
@@ -29,12 +29,30 @@ Flash 和 Pro 都支持任务内的安卓文件工具 `android_file`:保存原
Flash 和普通 Pro 都支持任务内原生 `action_sequence` 与 `drag`,外层 MCP 工具不变。
任务可以要求“先观察缩放弹层的真实滑块位置,恢复同布局后用一个连续动作打开、等待、拖动,
再检查刻度是否改变”。动作之间不再等待下一轮模型,适用于数秒后消失的控件。
序列使用 `pro.execution.max_burst_actions` 的数量限制(默认 4);部分失败后保留成员回执,
不能将已成功或结果不明的输入整组重发。
序列使用 `pro.execution.max_burst_actions` 的数量限制(默认 4,等待也算一项),
Flash/Pro 的工具声明显示实际上限。每次反向调整也保持完整的打开、等待、操作组。
序列内 click 的 target 可直接使用观察列表中的完整资源 ID;执行时重新定位,缺失或不唯一时拒绝点击,
避免模型反复将原图像素换算成归一化坐标。
click 的 times 支持 1–10 次连点,delay_ms 默认 100;连点仍占一个成员,按资源 ID 定位时每次都重新确认目标。
普通元素索引点击也核对原资源 ID 是否仍覆盖记录的点击位置,控件消失或移位时不点击旧坐标。
安卓现场检查只读取实时 UI 层级,不等待截图稳定;目标在连点途中消失时停止,并保留 completed_taps。
该计数仅表示已派发且返回无错误的点击次数,不代表业务验证通过。Flash 在连续动作末尾立即保留截图,
避免多轮稳定截图将短时面板消失后的画面覆盖为唯一证据;即时截图的稳定状态为未知,不能据此宣称画面已稳定。
普通 Pro 同样在完整连续组结束后保存截图,供立即进行的检查点验收使用;即使图片哈希与操作前相同,
也保留这次真实采集对应的动作后证据,不将图片去重当作没有采集。
元素列表中的真实 `resource_id` 可用于 click 的 `unless_visible`(面板已显示时跳过打开按钮)
及 drag 的 `require_visible`(面板消失时不拖动),现场检查不增加模型轮次;层级不可用时拒绝操作。
成员回执区分完成、跳过、结果不明和未执行;部分失败后不能将已成功或结果不明的输入整组重发。
“最大/最小”优先通过原生加减按钮调整,并核对继续同向调整后滑块、刻度是否停止变化,或读取明确的原生极值。
仅接近端点、变成分钟级、关闭面板或选中录像卡片均不能证明已到最大或最小;录像卡片时间也不是固定指针对应时间。
时间轴可使用原图像素和当前两个刻度校准拖动,避免细刻度被整数归一化坐标量化。
它仍受截图分辨率、刻度线性、应用吸附及实际拖动响应影响;应先放大、短距离拖动,
再读取同名刻度或选中时间作修正。工具成功和计算误差不等于业务时间已准确选中。
若松手后时间轴继续滑动,应减慢 pan 并等待刻度停止后复核;拖动浮层的时间可能只反映松手瞬间,
与固定指针对应刻度冲突时不能用来验收。常驻时间轴的拖动不依赖缩放弹层保持打开。
量化验收可对停稳后截图的真实刻度与指针位置作线性插值,并计入读图不确定性;
目标误差加不确定性不超过用户容差时才能确认,不强制要求秒级文字读数。
## MCP 能力