# GUITaboo同步等待、Probe历史回写与Top3 Witness专项审查

1. **有可配置的短同步等待机制，但本轮不是5秒，而是15秒。** 配置项`ape.jev.probeTimeoutMs`默认5000，本轮10条模型Run都设为15000，并传入Semantic Review的总prepare预算；HTTP请求生命周期另为60000。源码：[JevRuntime.java:121–143](code-frozen/com/android/commands/monkey/ape/jev/JevRuntime.java)、[JevSemanticReview.java:118–180](code-frozen/com/android/commands/monkey/ape/jev/JevSemanticReview.java)；逐Run配置：[run-configs.csv](run-configs.csv)。
2. **本轮超过5秒仍会继续等待，直到拿到回复或15秒预算到期。** 1,030次正式请求中121次完整回执超过5秒，实测await也有121次超过5秒，0次超过8秒；没有`SEMANTIC_FAIL_OPEN`，全部网络回复在发起review内消费，没有观察到晚到复用。Scarlet Jev确实累计阻塞await 1,273.566秒，其中Gateway队列900.873秒包含在该等待内，不可再相加。原始逐请求链接：[request-waits.csv](request-waits.csv)。
3. **晚到回复有保存和受限复用实现，但不是任意State上的通用异步入账。** 超过caller预算不取消retained HTTP；原始字节由后台回调落盘，未立即写Ledger。之后必须在相同State对象/模型版本及匹配GUI、历史revision、候选集合下重新验证才能消费；遇到其他State的实际`resumeRetained`会取消旧项。进程关闭/容量淘汰/网络生命周期到期也会取消。正式本轮没有走到这条晚到分支，不能声称已在本轮验证成功。详见[sync-wait-implementation.md](sync-wait-implementation.md)。
4. **已确认的150条Probe全部有原生图Transition和历史位置，未发现Probe专属回写遗漏。** 每条均匹配一个输入完成事件、一个`NATIVE_TRANSITION`、一个`native_edge_id/native_history_position`回执，且input_confirmed=true。源码中Probe与普通ModelAction共用`appendToActionHistory`、markVisited和addTransition路径。未归档内存ActionHistory/每个visitedCount，不能把这部分表述成逐内存对象验真。[probe-native-lifecycle.csv](probe-native-lifecycle.csv)。
5. **Statistics step564的重复来自不同合法State/ModelAction池。** step475成功进入Statistics；其输入tree560后来在step575、同版本23下仍是`g11s38/g11a627`、h5、input_confirmed=true。step564（也是版本23）审核`g13s49/g13a696`，只读到Select Activity131和Diary142；475未被放进该池，尚未进入Top3排序。step1201来自step1072已接受的PROMOTE；当时池中只有Edit Activities918。1072没有排除项映射快照，三个旧Statistics当时各自映射的最后一段仍为UNKNOWN。详见[history-case-traces.md](history-case-traces.md)。
6. **Omni Lock没有进Top3，核心是实际历史标签换了语言，而非同文字匹配输给Info。** 三次Lock均是Probe：246“Bloquiar”、664“ລັອກ”、1531“Lock”；第一次不是普通APE动作。旧Lock确实在合法池h5/h15。它与Info等都共享title资源ID/Class/Click，已恢复的精确特征得分都为12；没有相同label/word加分，稳定时序和完整特征集多样性选出h1、h3、h4。排序规则未发现执行错误；51个历史项中38个有完整原始描述，13个缺未采样原始文本，完整独立重放的边界已单列。[witness-ranking-reproduction.md](witness-ranking-reproduction.md)。
7. **14 RPM在用户确认15 RPM配额、所有请求共用同一限流器的前提下可行，但本次不修改。** 本轮Gateway配置10 RPM、并发租约2，另有一次只提交一条Jev Run的排队脚本；实际全局最短发送间隔6.024秒，60秒窗口最多10次，上游最高并发1。691条同额度Gateway记录=686正式+5条未匹配正式Native的准入调用，无其他Run；平台外共享key请求未知。14 RPM间隔4.286秒，逐请求固定前序发送时刻估算Scarlet/ActivityDiary可少等443.938/236.834秒；这不是吞吐或覆盖提升预测，见[jev-rate-limit-audit.md](jev-rate-limit-audit.md)。
8. **最明确的实现集成问题是“正常软超时”与健康/验收状态未分开。** `DEADLINE`会永久设`healthy=false`，Runtime再永久设`decisionHealthy=false`，最终验收据此判无效；后续成功复用不恢复。已有5000ms历史合成测试确实同时出现放行、成功消费和最终decision_healthy=false。本轮未触发，不改变15条正式验收。缩短预算前应优先澄清并修复这一状态语义，而不是重做全局历史或扩大Witness。源码与历史日志见[sync-wait-implementation.md](sync-wait-implementation.md)。

## 数据与范围

本轮Native基线为`9a5b577b77a6a87efcd8e6e218693af6faed17ce`，`native/ape.jar` SHA256为`c08fdb34321c760112383b9afc2c11360d35f01120259492ea25d39fb95ea370`。当前191个Native Java源文件逐字节等于该提交；15条Run的冻结summary均记录同一commit/JAR。保存的构建身份把该源码与该JAR关联，本次另对实际JAR反汇编核对`probeTimeoutMs`默认5000、`submitRetained`、`awaitUntil`和Witness选择调用。Java离线排序使用配套`ape-java.jar`，没有重新编译或覆盖Native JAR。身份检查见[evidence/code-identity.json](evidence/code-identity.json)、[DEX](evidence/dex/)、[既有构建回执](../../experiments/guitaboo_fixab_omni_rep2_20261105T2218/admission/platform-build-identity.json)。这不是一次新的完整Android可复现构建证明。

本任务只读15条既有正式ZIP、150条既有Probe审查、Git历史、既有历史合成测试以及Gateway只读数据库的限定字段。没有运行APE、模拟器、模型API、历史测试服务器，没有改限速、算法、Prompt、JAR、平台或既有报告。新增脚本均在本目录。所有方法增量继续引用上一轮已确定的METHOD观测口径，不重新解释为完整APK-wide贡献。

## 等待量与预算选择

| App | 条件 | HTTP数 | 实测await累计秒 | 回执P50/P90/P95/P99秒 | await P50/P90/P95/P99秒 | Gateway队列秒 |
|---|---|---|---|---|---|---|
| activitydiary | JEV | 243 | 699.014 | 2.806/4.697/4.785/5.005 | 2.806/4.697/4.784/5.005 | 410.307 |
| activitydiary | PURE_APE | 0 | NA | NA/NA/NA/NA | NA/NA/NA/NA | 0.000 |
| activitydiary | STARTLUX | 140 | 146.559 | 0.943/1.387/2.009/2.112 | 0.943/1.387/2.009/2.112 | 8.924 |
| odkcollect | JEV | 20 | 70.811 | 4.640/5.188/5.217/5.217 | 4.640/5.188/5.217/5.217 | 47.512 |
| odkcollect | PURE_APE | 0 | NA | NA/NA/NA/NA | NA/NA/NA/NA | 0.000 |
| odkcollect | STARTLUX | 7 | 9.873 | 1.391/2.118/2.262/2.378 | 1.391/2.117/2.262/2.377 | 0.569 |
| omninotes | JEV | 80 | 152.592 | 1.389/3.533/4.108/4.609 | 1.388/3.533/4.107/4.609 | 55.344 |
| omninotes | PURE_APE | 0 | NA | NA/NA/NA/NA | NA/NA/NA/NA | 0.000 |
| omninotes | STARTLUX | 97 | 114.423 | 1.066/1.833/1.941/2.388 | 1.066/1.833/1.941/2.388 | 7.352 |
| scarletnotes | JEV | 318 | 1273.566 | 4.779/5.175/5.234/5.376 | 4.778/5.175/5.234/5.376 | 900.873 |
| scarletnotes | PURE_APE | 0 | NA | NA/NA/NA/NA | NA/NA/NA/NA | 0.000 |
| scarletnotes | STARTLUX | 74 | 109.616 | 1.576/1.915/2.056/2.427 | 1.575/1.915/2.055/2.427 | 4.901 |
| wikipedia | JEV | 25 | 35.008 | 1.338/1.424/1.514/3.042 | 1.338/1.422/1.513/3.042 | 3.115 |
| wikipedia | PURE_APE | 0 | NA | NA/NA/NA/NA | NA/NA/NA/NA | 0.000 |
| wikipedia | STARTLUX | 26 | 35.369 | 1.054/2.051/2.545/2.688 | 1.054/2.051/2.544/2.687 | 1.777 |

五条Pure没有模型请求，分布为NA，不把“无样本”当零延迟。请求回执时间来自Native `Result.completed-submitted`；await来自同review唯一网络请求的`SEMANTIC_REVIEW_TIMING.provider_wait_ns`。本轮1,030/1,030均满足唯一请求，逐行与既有性能审查一致；等待事件到消费事件之间未出现普通选择。**并非将所有HTTP延迟盲目相加认定阻塞**，而是另有await实测和同步调用路径证据。

| 预算秒 | 完整回执≤预算 /1030 | 完整回执>预算 /1030 | 纯await截尾量秒 | prepare完成≤预算 /1030 | prepare数值尾长秒 |
|---|---|---|---|---|---|
| 3 | 641 | 389 | 612.507 | 627 | 711.297 |
| 5 | 909 | 121 | 18.793 | 830 | 51.445 |
| 8 | 1030 | 0 | 0.000 | 1030 | 0.000 |
| 10 | 1030 | 0 | 0.000 | 1030 | 0.000 |

纯await截尾量为Σmax(实测await−预算,0)，仅是冻结请求轨迹的离线等待尾部。真正配置约束包括本地prepare；`prepare数值尾长`为Σmax(prepare−预算,0)，含本地和处理部分，既非全部可抢占时间，也不可与await截尾相加。5秒下纯await总尾长18.793秒（Scarlet17.364、Activity0.301、ODK1.128），3秒为612.507秒。预算更短可能让APE换页面、取消或重发，不能据此预测普通动作增加多少。

## 历史与Witness的结论边界

- 150条有真实原生Transition；Omni普通/Probe的历史池采用同一个confirmedInputs来源，246 Probe在662审核中作为h5，664 Probe在1331审核中作为h15，是Probe历史可读取的直接反例。
- Statistics475既已写回，也曾被读进合法池；564因另一个原生State而看不到它。普通Diary142与普通Map176也遭遇同类隔离，不能归因为Probe特有漏洞。
- Scarlet130和Wikipedia1492的相关历史已经进入模型输入；在那里调查的是语义粒度/可见信息是否充分，不是没有回写，也不是Witness漏选。未重新调用模型，不给模型准确率结论。
- 已接受的PROMOTE（例如1072→1201）与尚未验证的HTTP晚到回复是两类数据，前者可以保留待执行，不能拿它证明后者支持任意State消费。
- 没有发现足以授权或证明需要全App历史扫描、Top10或更长Prompt的缺陷；跨语言排序的限制允许低优先级记录，不能用共享resource ID硬合并业务不同控件。

## 文件与复核入口

用户要求的11个文件均在本目录；另有逐请求等待、150条原生生命周期、51条Witness排名、全局限流重放和原始证据摘录。建议先读本文件，再读同步等待、历史案例与Witness三个专项。

复现：在仓库根目录依次执行`python reports/guitaboo-runtime-history-audit-20261107/build_audit.py`、`python reports/guitaboo-runtime-history-audit-20261107/analyze_details.py`、`python reports/guitaboo-runtime-history-audit-20261107/write_reports.py`。Java helper只调用配套冻结Java JAR的纯排序方法；原始Gateway记录使用本目录已保存快照。初次限定字段数据库快照与DEX导出命令分别记录在`evidence/global-jev-calls.json`与`evidence/dex-command.json`。

验收及原件保护结果：[validation.json](validation.json)。本报告提出建议，未实施修复。
