Android Agent:自动返回时保持用户上次选择的 Tab #128

Closed
opened 2026-08-28 14:30:20 +08:00 by ila · 4 comments
Owner

所属与来源

  • 关联工单:#126(任务结束 5 秒空闲返回,已实施待验收)。
  • 来源:用户于 2026-08-28 真机发现:Agent 先选中“采集”Tab,切到 PDD 商品页后自动返回 Agent,却显示“状态”Tab,不能保持之前界面。只读分析确认后,用户明确要求“按照建议建工单,做”。
  • 类型:Android Agent 自动返回导航状态缺陷。
  • 基线提交:0527bcaae9e287d3d61161655fe22bbb2c6e4871。
  • 前置依赖:#126 已实现并推送;本工单在其 5 秒返回机制上修正目标 Tab。
  • 子项目影响:Android、长期 Wiki 镜像;不改 Server、Web、数据库或共享 API。
  • 可并行:不建议与其他修改 MainActivity、GoAutoAccessibilityService.openAgentStatus() 或空闲返回逻辑的任务并行。

当前事实与根因

  1. AgentForegroundService.requestReturnToAgent() 固定调用 GoAutoAccessibilityService.openAgentStatus()。
  2. openAgentStatus() 启动 MainActivity 时固定携带 EXTRA_SHOW_STATUS=true。
  3. MainActivity 的 onCreate() 与 onNewIntent() 都把该参数解释为强制选择 TAB_STATUS,覆盖此前选择的“采集/采购/设置”Tab。
  4. 当前选择只写入 onSaveInstanceState();Activity/进程完整重建且没有实例状态时仍默认状态 Tab。
  5. 因此问题不是 #126 将 15 秒改成 5 秒造成,而是自动返回和“明确打开状态页”复用了同一导航入口。

目标

  1. 任务结束自动返回 Agent 时保持用户离开前最后选择的 Tab。
  2. MainActivity 仍在任务栈中时,不主动改变当前 Tab。
  3. Activity 或 Agent 进程被系统重建时,恢复最近一次有效 Tab。
  4. 系统辅助功能按钮继续明确打开“状态”Tab,不改变其既有语义。
  5. 首次安装、没有历史选择或持久化值无效时仍默认状态 Tab。
  6. 构建并安装新版 Agent 到 PKG110,真机验证“采集 Tab → PDD → 自动返回仍为采集 Tab”。

非目标

  • 不改变 5 秒空闲返回时间、750ms 前台确认、心跳、队列调度或采集间隔。
  • 不修改采集/采购任务行为、PDD 自动化、服务端接口和数据库。
  • 不新增 Tab、页面、按钮或设置项。
  • 不改变辅助功能按钮明确打开状态页的行为。

设计证据

属于现有四 Tab 外壳的状态恢复缺陷,不新增页面、组件、导航结构或文案,按现有界面小范围交互修复处理,无需完整原型。

入口/状态 目标 Tab
首次启动或无有效历史 状态
用户从 Agent 切到 PDD,任务结束自动返回 离开前最后选择的 Tab
MainActivity/进程被系统重建 最近一次有效 Tab
系统辅助功能按钮 状态(显式覆盖历史)
无效持久化值 状态

实施方案

  1. 将无障碍服务的 Agent 打开能力拆分为“显式状态页”和“保持上次 Tab”两种语义,共用安全的 Activity flags。
  2. 自动返回调用“保持上次 Tab”入口,不传 EXTRA_SHOW_STATUS;辅助功能按钮继续调用“显式状态页”。
  3. MainActivity 在每次有效 Tab 选择后持久化;创建时按“显式目标 → savedInstanceState → 持久化历史 → 状态默认值”解析。
  4. onNewIntent() 只有显式状态参数时才覆盖当前 Tab,否则保持现状。
  5. 抽取纯选择策略并增加单元测试,覆盖显式覆盖、实例恢复、进程恢复、无效值和新 Intent 保持。
  6. Agent 升级为 0.9.16(versionCode 29),安装 PKG110 真机验证。

验收标准

  • 采集 Tab → PDD → 任务结束自动返回后仍显示采集 Tab。
  • 采购和设置 Tab 采用相同保持规则。
  • MainActivity/进程重建后恢复最近一次有效 Tab。
  • 系统辅助功能按钮仍打开状态 Tab。
  • 首次启动与无效历史值默认状态 Tab。
  • 5 秒返回、750ms 确认和任务调度行为不变。
  • Android 全量测试和 Debug APK 构建通过。
  • 0.9.16 安装到 PKG110,记录真机结果。
  • 提交推送并回写证据,工单保持待验收。

风险与回退

  • 风险:持久化无效 Tab ID 导致空页面。控制:只接受四个已知 Tab ID,否则回退状态页。
  • 风险:辅助功能按钮也被改成保持 Tab。控制:保留独立显式状态入口及回归测试。
  • 回退:恢复自动返回调用与 MainActivity 选择策略即可,不涉及数据迁移;本地偏好值可安全忽略。

文档影响

需更新 Wiki:

  • Architecture-and-Code-Map:自动返回保持最近 Tab,辅助功能按钮仍打开状态页。
  • Local-Development-and-Verification:真机验收从固定状态 Tab 改为保持离开前 Tab,并覆盖进程重建。

不修改 API 契约和业务安全边界。

## 所属与来源 - 关联工单:#126(任务结束 5 秒空闲返回,已实施待验收)。 - 来源:用户于 2026-08-28 真机发现:Agent 先选中“采集”Tab,切到 PDD 商品页后自动返回 Agent,却显示“状态”Tab,不能保持之前界面。只读分析确认后,用户明确要求“按照建议建工单,做”。 - 类型:Android Agent 自动返回导航状态缺陷。 - 基线提交:`0527bcaae9e287d3d61161655fe22bbb2c6e4871`。 - 前置依赖:#126 已实现并推送;本工单在其 5 秒返回机制上修正目标 Tab。 - 子项目影响:Android、长期 Wiki 镜像;不改 Server、Web、数据库或共享 API。 - 可并行:不建议与其他修改 `MainActivity`、`GoAutoAccessibilityService.openAgentStatus()` 或空闲返回逻辑的任务并行。 ## 当前事实与根因 1. `AgentForegroundService.requestReturnToAgent()` 固定调用 `GoAutoAccessibilityService.openAgentStatus()`。 2. `openAgentStatus()` 启动 MainActivity 时固定携带 `EXTRA_SHOW_STATUS=true`。 3. MainActivity 的 `onCreate()` 与 `onNewIntent()` 都把该参数解释为强制选择 `TAB_STATUS`,覆盖此前选择的“采集/采购/设置”Tab。 4. 当前选择只写入 `onSaveInstanceState()`;Activity/进程完整重建且没有实例状态时仍默认状态 Tab。 5. 因此问题不是 #126 将 15 秒改成 5 秒造成,而是自动返回和“明确打开状态页”复用了同一导航入口。 ## 目标 1. 任务结束自动返回 Agent 时保持用户离开前最后选择的 Tab。 2. MainActivity 仍在任务栈中时,不主动改变当前 Tab。 3. Activity 或 Agent 进程被系统重建时,恢复最近一次有效 Tab。 4. 系统辅助功能按钮继续明确打开“状态”Tab,不改变其既有语义。 5. 首次安装、没有历史选择或持久化值无效时仍默认状态 Tab。 6. 构建并安装新版 Agent 到 PKG110,真机验证“采集 Tab → PDD → 自动返回仍为采集 Tab”。 ## 非目标 - 不改变 5 秒空闲返回时间、750ms 前台确认、心跳、队列调度或采集间隔。 - 不修改采集/采购任务行为、PDD 自动化、服务端接口和数据库。 - 不新增 Tab、页面、按钮或设置项。 - 不改变辅助功能按钮明确打开状态页的行为。 ## 设计证据 属于现有四 Tab 外壳的状态恢复缺陷,不新增页面、组件、导航结构或文案,按现有界面小范围交互修复处理,无需完整原型。 | 入口/状态 | 目标 Tab | |---|---| | 首次启动或无有效历史 | 状态 | | 用户从 Agent 切到 PDD,任务结束自动返回 | 离开前最后选择的 Tab | | MainActivity/进程被系统重建 | 最近一次有效 Tab | | 系统辅助功能按钮 | 状态(显式覆盖历史) | | 无效持久化值 | 状态 | ## 实施方案 1. 将无障碍服务的 Agent 打开能力拆分为“显式状态页”和“保持上次 Tab”两种语义,共用安全的 Activity flags。 2. 自动返回调用“保持上次 Tab”入口,不传 `EXTRA_SHOW_STATUS`;辅助功能按钮继续调用“显式状态页”。 3. MainActivity 在每次有效 Tab 选择后持久化;创建时按“显式目标 → savedInstanceState → 持久化历史 → 状态默认值”解析。 4. `onNewIntent()` 只有显式状态参数时才覆盖当前 Tab,否则保持现状。 5. 抽取纯选择策略并增加单元测试,覆盖显式覆盖、实例恢复、进程恢复、无效值和新 Intent 保持。 6. Agent 升级为 0.9.16(versionCode 29),安装 PKG110 真机验证。 ## 验收标准 - [ ] 采集 Tab → PDD → 任务结束自动返回后仍显示采集 Tab。 - [ ] 采购和设置 Tab 采用相同保持规则。 - [ ] MainActivity/进程重建后恢复最近一次有效 Tab。 - [ ] 系统辅助功能按钮仍打开状态 Tab。 - [ ] 首次启动与无效历史值默认状态 Tab。 - [ ] 5 秒返回、750ms 确认和任务调度行为不变。 - [ ] Android 全量测试和 Debug APK 构建通过。 - [ ] 0.9.16 安装到 PKG110,记录真机结果。 - [ ] 提交推送并回写证据,工单保持待验收。 ## 风险与回退 - 风险:持久化无效 Tab ID 导致空页面。控制:只接受四个已知 Tab ID,否则回退状态页。 - 风险:辅助功能按钮也被改成保持 Tab。控制:保留独立显式状态入口及回归测试。 - 回退:恢复自动返回调用与 MainActivity 选择策略即可,不涉及数据迁移;本地偏好值可安全忽略。 ## 文档影响 需更新 Wiki: - `Architecture-and-Code-Map`:自动返回保持最近 Tab,辅助功能按钮仍打开状态页。 - `Local-Development-and-Verification`:真机验收从固定状态 Tab 改为保持离开前 Tab,并覆盖进程重建。 不修改 API 契约和业务安全边界。
Author
Owner

实施完成,待验收

已修复自动返回强制切换“状态”Tab的问题。自动返回与显式打开状态页现在使用不同入口。

实现

  • 新增纯 AgentTabSelectionPolicy,只接受状态、采集、采购、设置四个有效 Tab。
  • MainActivity 创建时按“显式状态目标 → savedInstanceState → 最近持久化 Tab → 状态默认值”选择页面。
  • 每次有效 Tab 选择写入独立 UI 偏好;无效值回退状态页。
  • Activity 已存在时,普通自动返回 Intent 保持当前 Tab;只有 EXTRA_SHOW_STATUS=true 才覆盖为状态页。
  • GoAutoAccessibilityService 拆分:
    • openAgentPreservingTab():任务结束自动返回使用;
    • openAgentStatus():系统辅助功能按钮继续使用。
  • 5 秒冷却、750ms 前台确认、任务调度与采集逻辑未改变。
  • Agent 升级为 0.9.16(versionCode 29)。

自动验证

  • 新增 5 个 Tab 策略测试:显式状态覆盖、实例状态优先、进程重建恢复、无效值回退、自动返回保持/显式状态覆盖。
  • 定向测试同时覆盖 IdleReturnCoordinatorTest 与 AccessibilityButtonPolicyTest:通过。
  • .\scripts\verify.ps1 -Component android:通过;Debug/Release 各 167 个测试用例(共执行 334 次),0 failures / 0 errors,Debug APK 构建成功。
  • python dev_scripts/harness.py check --strict、python dev_scripts/harness.py sync --check、git diff --check:全部通过。

PKG110 真机

  • 0.9.16 / versionCode 29 已通过 adb install -r 安装成功。
  • 安装后无障碍服务保持启用。
  • 在 Agent 选择“采集”Tab,持久化值为 2。
  • 切到 PDD 后发起当前页临时采集,任务结束约 5 秒自动返回:
    • 状态 Fragment:mHidden=true
    • 采集 TaskHistoryFragment:mHidden=false
    • 最近 Tab:仍为 2
  • 对 Agent 执行进程重建后重新打开:
    • 直接恢复 agent-tab-2
    • 采集 Fragment 为 mHidden=false
  • 使用与辅助功能按钮相同的 flags 和显式状态参数验证:
    • 状态 Fragment 切为 mHidden=false
    • 随后已人工恢复设备到采集 Tab。
  • 进程重建测试中 ColorOS 的 force-stop 清除了 enabled accessibility services;已按测试前读取的精确原值恢复,并确认 GoAuto 与 ColorOS Autofill 两个服务均重新处于 Enabled。

真机计时请求:7b83b1c4-a7dc-4f8e-93f1-816fdff624a3;任务本地结束至 Agent 前台约 4850ms(200ms 轮询采样误差)。

文档

已先更新线上 Wiki、回读 revision,再同步本地镜像:

  • Architecture-and-Code-Map:5039f107d1f61cf5290eae38719a305b41fb35cc
  • Local-Development-and-Verification:85b880bba09a4276321cd4eb4eb64d07d6f64ec9

提交与未验证范围

  • 提交:1ec21c3b867ff4d28320e959a80d6266f1bdfcec,已推送至 origin/main。
  • 本轮自动返回验证发生在 PDD 前台并经过真实终态任务,但关闭上一规格面板后原 NewPageActivity 已返回 PDD MainFrameActivity;未再次导航到原商品页执行完整成功采集。Tab 恢复不依赖 PDD Activity 类型,原商品页完整成功采集留待人工验收。
  • 未在其他设备/ROM 验证。
  • 无关 gitea.zip 未修改、未提交。

工单保持打开,等待人工验收。

## 实施完成,待验收 已修复自动返回强制切换“状态”Tab的问题。自动返回与显式打开状态页现在使用不同入口。 ### 实现 - 新增纯 `AgentTabSelectionPolicy`,只接受状态、采集、采购、设置四个有效 Tab。 - MainActivity 创建时按“显式状态目标 → savedInstanceState → 最近持久化 Tab → 状态默认值”选择页面。 - 每次有效 Tab 选择写入独立 UI 偏好;无效值回退状态页。 - Activity 已存在时,普通自动返回 Intent 保持当前 Tab;只有 `EXTRA_SHOW_STATUS=true` 才覆盖为状态页。 - `GoAutoAccessibilityService` 拆分: - `openAgentPreservingTab()`:任务结束自动返回使用; - `openAgentStatus()`:系统辅助功能按钮继续使用。 - 5 秒冷却、750ms 前台确认、任务调度与采集逻辑未改变。 - Agent 升级为 0.9.16(versionCode 29)。 ### 自动验证 - 新增 5 个 Tab 策略测试:显式状态覆盖、实例状态优先、进程重建恢复、无效值回退、自动返回保持/显式状态覆盖。 - 定向测试同时覆盖 `IdleReturnCoordinatorTest` 与 `AccessibilityButtonPolicyTest`:通过。 - `.\scripts\verify.ps1 -Component android`:通过;Debug/Release 各 167 个测试用例(共执行 334 次),0 failures / 0 errors,Debug APK 构建成功。 - `python dev_scripts/harness.py check --strict`、`python dev_scripts/harness.py sync --check`、`git diff --check`:全部通过。 ### PKG110 真机 - 0.9.16 / versionCode 29 已通过 `adb install -r` 安装成功。 - 安装后无障碍服务保持启用。 - 在 Agent 选择“采集”Tab,持久化值为 `2`。 - 切到 PDD 后发起当前页临时采集,任务结束约 5 秒自动返回: - 状态 Fragment:`mHidden=true` - 采集 TaskHistoryFragment:`mHidden=false` - 最近 Tab:仍为 `2` - 对 Agent 执行进程重建后重新打开: - 直接恢复 `agent-tab-2` - 采集 Fragment 为 `mHidden=false` - 使用与辅助功能按钮相同的 flags 和显式状态参数验证: - 状态 Fragment 切为 `mHidden=false` - 随后已人工恢复设备到采集 Tab。 - 进程重建测试中 ColorOS 的 force-stop 清除了 enabled accessibility services;已按测试前读取的精确原值恢复,并确认 GoAuto 与 ColorOS Autofill 两个服务均重新处于 Enabled。 真机计时请求:`7b83b1c4-a7dc-4f8e-93f1-816fdff624a3`;任务本地结束至 Agent 前台约 `4850ms`(200ms 轮询采样误差)。 ### 文档 已先更新线上 Wiki、回读 revision,再同步本地镜像: - `Architecture-and-Code-Map`:`5039f107d1f61cf5290eae38719a305b41fb35cc` - `Local-Development-and-Verification`:`85b880bba09a4276321cd4eb4eb64d07d6f64ec9` ### 提交与未验证范围 - 提交:`1ec21c3b867ff4d28320e959a80d6266f1bdfcec`,已推送至 `origin/main`。 - 本轮自动返回验证发生在 PDD 前台并经过真实终态任务,但关闭上一规格面板后原 NewPageActivity 已返回 PDD MainFrameActivity;未再次导航到原商品页执行完整成功采集。Tab 恢复不依赖 PDD Activity 类型,原商品页完整成功采集留待人工验收。 - 未在其他设备/ROM 验证。 - 无关 `gitea.zip` 未修改、未提交。 工单保持打开,等待人工验收。
Author
Owner

用户验收失败与范围修订(2026-08-28)

用户在 0.9.16 / versionCode 29 真机验收中确认:先选择“采集”或“采购”Tab,切到 PDD 商品页,再通过实际使用的切回 Agent 入口,仍显示“状态”Tab。因此上一条“实施完成”不能作为本场景通过证据,工单继续实施。

复核结果:

  • 桌面 Launcher 普通打开路径已能恢复最近 Tab。
  • #128 原方案刻意保留了“系统辅助功能按钮调用 openAgentStatus()、强制状态页”的旧语义。
  • 这与用户实际期望“所有切回 Agent 的入口都保持之前界面”冲突,是验收遗漏,不是 5 秒冷却问题。

经用户明确确认,修订范围如下,覆盖原工单中“辅助功能按钮仍打开状态页”的旧条款:

  1. 系统辅助功能按钮改用 openAgentPreservingTab()。
  2. 自动返回、桌面/最近任务和辅助功能按钮统一保持最近有效 Tab。
  3. 首次启动、没有有效历史或历史值无效时仍默认状态页。
  4. 删除或忽略旧的强制状态 Intent 语义,防止 Activity 重建时旧参数覆盖持久化选择。
  5. 新增采集/采购 Tab 经辅助功能入口保持的回归测试。
  6. 升级 0.9.17(versionCode 30),安装 PKG110;按辅助功能按钮真实路径留待用户最终点击验收,自动化侧至少验证相同回调绑定与无强制状态参数。
  7. 更新 Wiki 中“辅助功能按钮固定打开状态页”的旧事实。

不改变 5 秒返回、750ms 确认、任务调度、采集采购逻辑和安全边界。

## 用户验收失败与范围修订(2026-08-28) 用户在 0.9.16 / versionCode 29 真机验收中确认:先选择“采集”或“采购”Tab,切到 PDD 商品页,再通过实际使用的切回 Agent 入口,仍显示“状态”Tab。因此上一条“实施完成”不能作为本场景通过证据,工单继续实施。 复核结果: - 桌面 Launcher 普通打开路径已能恢复最近 Tab。 - #128 原方案刻意保留了“系统辅助功能按钮调用 `openAgentStatus()`、强制状态页”的旧语义。 - 这与用户实际期望“所有切回 Agent 的入口都保持之前界面”冲突,是验收遗漏,不是 5 秒冷却问题。 经用户明确确认,修订范围如下,覆盖原工单中“辅助功能按钮仍打开状态页”的旧条款: 1. 系统辅助功能按钮改用 `openAgentPreservingTab()`。 2. 自动返回、桌面/最近任务和辅助功能按钮统一保持最近有效 Tab。 3. 首次启动、没有有效历史或历史值无效时仍默认状态页。 4. 删除或忽略旧的强制状态 Intent 语义,防止 Activity 重建时旧参数覆盖持久化选择。 5. 新增采集/采购 Tab 经辅助功能入口保持的回归测试。 6. 升级 0.9.17(versionCode 30),安装 PKG110;按辅助功能按钮真实路径留待用户最终点击验收,自动化侧至少验证相同回调绑定与无强制状态参数。 7. 更新 Wiki 中“辅助功能按钮固定打开状态页”的旧事实。 不改变 5 秒返回、750ms 确认、任务调度、采集采购逻辑和安全边界。
Author
Owner

修订实施完成,重新待验收

本次提交修复了用户实际使用的系统辅助功能按钮路径,覆盖并取代上一版“按钮固定打开状态页”的方案与验收结论。

修订实现

  • 系统辅助功能按钮回调由 openAgentStatus() 改为 openAgentPreservingTab()。
  • 删除 openAgentStatus()、EXTRA_SHOW_STATUS、showStatus 和显式状态覆盖策略;旧版本遗留 Intent 即使仍含该 extra,0.9.17 也不再读取。
  • 自动返回与辅助功能按钮现在共用同一个无额外参数的安全 Activity Intent:
    NEW_TASK | CLEAR_TOP | SINGLE_TOP。
  • MainActivity 已存在时不更改当前 Tab;重建时按 savedInstanceState → 最近持久化 Tab → 状态默认值恢复。
  • 首次启动、无历史或无效历史仍默认状态 Tab。
  • Agent 版本升级为 0.9.17(versionCode 30)。
  • 5 秒冷却、750ms 确认、心跳、任务调度和采集采购行为未改变。

自动验证

  • 辅助功能按钮策略测试已改为“单击一次打开 Agent 且不改变选中 Tab”。
  • Tab 策略覆盖采集与采购均为有效返回目标、实例/进程恢复及无效值回退。
  • 定向测试通过。
  • .\scripts\verify.ps1 -Component android:通过;Debug/Release 各 166 个测试(共执行 332 次),0 failures / 0 errors,Debug APK 构建成功。
  • python dev_scripts/harness.py check --strict、python dev_scripts/harness.py sync --check、git diff --check:通过。
  • 全仓搜索确认当前 Android 代码和相关 Wiki 不再存在 EXTRA_SHOW_STATUS、openAgentStatus 或旧的显式状态返回说明。

PKG110

  • 0.9.17 / versionCode 30 已安装成功;GoAuto 与 ColorOS Autofill 无障碍服务安装后均保持启用。
  • 当前 ColorOS:
    • accessibility_button_targets 指向 GoAuto AccessibilityService;
    • accessibility_button_mode=1;
    • PDD NewPageActivity 可复用。
  • 使用与辅助功能按钮回调完全相同的 openAgentPreservingTab() Intent 语义从 PDD 商品页验证:
    • 最近 Tab=2:返回后 agent-tab-2(采集)mHidden=false;
    • 最近 Tab=3:返回后 agent-tab-3(采购)mHidden=false,采集 Tab 为隐藏;
    • 两次返回持久化 Tab 均未被改写为状态页。
  • ColorOS 没有提供可调用的 accessibility-button ADB system action,因此真实浮动按钮的最终点击必须由用户手动完成;代码绑定、目标服务和等价 Intent 已验证。

Wiki 与提交

  • Architecture-and-Code-Map revision:f82f510e47cf3e74a3510a859ca17bddd2833362
  • Local-Development-and-Verification revision:652e61e73cbd8b78cb7d2d7b011c4790693ab9d9
  • 提交:30d823880ce58e64ebcbddd1f866f68359c733c3,已推送至 origin/main。
  • 无关 gitea.zip 未修改、未提交。

请在手机当前 0.9.17 上按真实路径点击一次系统辅助功能按钮完成最终验收;工单保持打开。

## 修订实施完成,重新待验收 本次提交修复了用户实际使用的系统辅助功能按钮路径,覆盖并取代上一版“按钮固定打开状态页”的方案与验收结论。 ### 修订实现 - 系统辅助功能按钮回调由 `openAgentStatus()` 改为 `openAgentPreservingTab()`。 - 删除 `openAgentStatus()`、`EXTRA_SHOW_STATUS`、`showStatus` 和显式状态覆盖策略;旧版本遗留 Intent 即使仍含该 extra,0.9.17 也不再读取。 - 自动返回与辅助功能按钮现在共用同一个无额外参数的安全 Activity Intent: `NEW_TASK | CLEAR_TOP | SINGLE_TOP`。 - MainActivity 已存在时不更改当前 Tab;重建时按 savedInstanceState → 最近持久化 Tab → 状态默认值恢复。 - 首次启动、无历史或无效历史仍默认状态 Tab。 - Agent 版本升级为 0.9.17(versionCode 30)。 - 5 秒冷却、750ms 确认、心跳、任务调度和采集采购行为未改变。 ### 自动验证 - 辅助功能按钮策略测试已改为“单击一次打开 Agent 且不改变选中 Tab”。 - Tab 策略覆盖采集与采购均为有效返回目标、实例/进程恢复及无效值回退。 - 定向测试通过。 - `.\scripts\verify.ps1 -Component android`:通过;Debug/Release 各 166 个测试(共执行 332 次),0 failures / 0 errors,Debug APK 构建成功。 - `python dev_scripts/harness.py check --strict`、`python dev_scripts/harness.py sync --check`、`git diff --check`:通过。 - 全仓搜索确认当前 Android 代码和相关 Wiki 不再存在 `EXTRA_SHOW_STATUS`、`openAgentStatus` 或旧的显式状态返回说明。 ### PKG110 - 0.9.17 / versionCode 30 已安装成功;GoAuto 与 ColorOS Autofill 无障碍服务安装后均保持启用。 - 当前 ColorOS: - `accessibility_button_targets` 指向 GoAuto AccessibilityService; - `accessibility_button_mode=1`; - PDD `NewPageActivity` 可复用。 - 使用与辅助功能按钮回调完全相同的 `openAgentPreservingTab()` Intent 语义从 PDD 商品页验证: - 最近 Tab=2:返回后 `agent-tab-2`(采集)`mHidden=false`; - 最近 Tab=3:返回后 `agent-tab-3`(采购)`mHidden=false`,采集 Tab 为隐藏; - 两次返回持久化 Tab 均未被改写为状态页。 - ColorOS 没有提供可调用的 accessibility-button ADB system action,因此真实浮动按钮的最终点击必须由用户手动完成;代码绑定、目标服务和等价 Intent 已验证。 ### Wiki 与提交 - `Architecture-and-Code-Map` revision:`f82f510e47cf3e74a3510a859ca17bddd2833362` - `Local-Development-and-Verification` revision:`652e61e73cbd8b78cb7d2d7b011c4790693ab9d9` - 提交:`30d823880ce58e64ebcbddd1f866f68359c733c3`,已推送至 `origin/main`。 - 无关 `gitea.zip` 未修改、未提交。 请在手机当前 0.9.17 上按真实路径点击一次系统辅助功能按钮完成最终验收;工单保持打开。
Author
Owner

用户于 2026-08-28 明确确认本工单验收通过。按项目流程记录验收结论并关闭工单;本次仅更新工单状态,无新增长期文档事实,不重复同步 Wiki。

用户于 2026-08-28 明确确认本工单验收通过。按项目流程记录验收结论并关闭工单;本次仅更新工单状态,无新增长期文档事实,不重复同步 Wiki。
ila closed this issue 2026-08-28 15:07:10 +08:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: OPC/goauto#128