公开证据副本:本地路径、实验主机已脱敏;数据与截图拆为站内资源。原件 SHA 只认证原件,公开副本哈希见发布清单。SUPPORTED 是本研究的探索性轨迹关联,未经人工金标或独立外部审查;代表图不认证当次触摸对齐。
跨 State 入口组和共享流程
| 功能 / Rep | 执行 | Source State | ModelAction | Concrete identity | Activity精确组 | 5步支持Header | 精确后续State / 子树重合 |
|---|---|---|---|---|---|---|---|
| omninotes.settings / Rep1 | 12 | 1 | 1 | 4 | 4 | ["g10s48", "g5s13", "g8s20"] | 15 / 5 |
| omninotes.settings / Rep2 | 9 | 1 | 1 | 1 | 1 | ["g6s26", "g9s85"] | 11 / 7 |
| odkcollect.download / Rep1 | 121 | 1 | 1 | 1 | 1 | ["g16s70"] | 5 / 1 |
| odkcollect.download / Rep2 | 109 | 3 | 3 | 3 | 3 | ["g11s38"] | 2 / 1 |
| scarletnotes.create-note-empty-state / Rep1 | 27 | 8 | 14 | 10 | 10 | ["g40s130"] | 10 / 10 |
| scarletnotes.create-note-empty-state / Rep2 | 134 | 2 | 3 | 2 | 2 | [] | 1 / 0 |
| wikipedia.global-search / Rep1 | 29 | 19 | 20 | 7 | 7 | ["g33s149", "g42s213", "g55s302", "g57s310", "g62s343", "g62s344", "g68s440", "g68s441", "g69s447"] | 26 / 12 |
| wikipedia.global-search / Rep2 | 55 | 35 | 36 | 9 | 9 | ["g26s116", "g27s122", "g41s193", "g41s198", "g41s199", "g5s29", "g70s323", "g86s411", "g86s414", "g86s431", "g90s474", "g90s493"] | 39 / 21 |
| activitydiary.add-activity / Rep1 | 56 | 28 | 29 | 3 | 4 | ["g21s63", "g29s91"] | 5 / 2 |
| activitydiary.edit-existing-activity / Rep1 | 81 | 24 | 55 | 34 | 34 | ["g21s63", "g47s168", "g47s169"] | 6 / 3 |
| activitydiary.add-activity / Rep2 | 63 | 31 | 33 | 4 | 5 | ["g27s96"] | 4 / 2 |
| activitydiary.edit-existing-activity / Rep2 | 101 | 25 | 68 | 55 | 55 | ["g27s96"] | 1 / 1 |
完整成员含 Source Activity、State、观察及输入 ModelAction、Concrete identity、resource ID/text/desc/bounds、真实执行次数、全部 Target 分布和支持 Header,见 entry-group-members.csv。这些是功能证据假设,非按 resource ID 或同一 ModelAction 聚类。Scarlet 的另外四个目标编辑器候选池在 pending-scarlet-entry-groups.json,没有为凑Ⅰ数量批量认证。
ActivityDiary:共同 editor,不强制拆成互斥 Region
Rep1 Add 56 次、已有对象编辑 81 次;Rep2 63 / 101 次。编辑组包括第二轮的长按与本轮明确的 ManageActivity 对象行点击。部分输入未成功观察到 editor 或历史目标未知,完整结果分布在 JSON,不把所有这些输入都叫成功开启。
Rep1 的确有 Add 与已有活动长按都到最终 Header g21s63;Rep2 同样到 g27s96。前者还存在 Add 经 g24s69 的字段/冲突处理再进 Header,以及不同 Source State 的 Add/long click 历史。共同 Header 提供可复核关联,不能推出所有创建、编辑模式都完全等价。
| Rep | 共同历史Target(含旧ID,非全部收尾认证) | 共同精确后续控件数 | 共同精确后续State |
|---|---|---|---|
| Rep1 | ["g1s2", "g21s63", "g24s69"] | 15 | ["g17s53", "g21s63", "g24s69", "g24s70"] |
| Rep2 | ["g16s59", "g27s96"] | 4 | ["g27s96"] |
共享后续是按真实发生中的 (Activity, ActionType, fullName) 精确控件求交,Rep1 15 种、Rep2 4 种,包括颜色控件、Activity 字段、部分 SELECT / Save。对应每次执行 ID 和双方次数在 activitydiary-shared-editor.json。不是仅凭共享 State 推测可执行操作;也不把业务对象名称、初始值、保存/删除后果或新建模式差异抹掉。
quickFixButton1 明示拒绝当前新建并打开同名既有活动,是同 EditActivity 内的发生移交;本轮截断原 Add 归因。quickFixButton2 的归档描述为 Rename deleted activity…,保留为正在编辑流程内的操作,但其业务模式不宣称与普通创建完全相同。代表图显示 Swimming 只说明该 State 有真实历史截图,不能断言每次 New/Edit 的准确画面均相同。
ODK:多个 Source 的真实三步路径
Rep2 Download 有 109 次输入、3 个 Source State:具名文字的 g1s1 / g20s77 与 g19s75 的 get_forms 卡片。它们都可进入连接页 g11s37,再经功能内 Back / Cancel 到 Header g11s38。其中后两种入口在 A0 全集中缺失;回溯距离均为 3。
不同 Source 的具体控件不能天然共用当前 Region Matcher:JevRegionMatcher.java:20–28 要求同 live State、同 ModelAction,再在树中按唯一精确节点绑定。ConcreteActionIdentity.java:5–73 仅保存 action type + canonical fullName,State/Activity 是调用方 scope。JevRegistry.java:367–383,802–828 的跨 State 相关关系需同 Activity 与精确 fullName;不会把 parent card 和 child text、scrollable 祖先差异识别为业务同义。回溯提供额外流程证据,并未改变这些匹配规则。
Omni、Wikipedia 与身份保护/不足
Omni Rep1 Settings 的四种实际语言 identity 来自同一个 Source State g0s2,不是四个跨 State 来源;经两/三步进入 Settings 子 Header。Rep2 才是另一个 run 的来源。Wikipedia 的主页卡片、tab、文章页搜索有不同 Activity / 祖先 / identity,必须分别保留;搜索字段带 planned text 是Ⅲ,不并入Ⅰ开启组。
Scarlet 的匿名 ViewGroup fullName/index 会在不同布局中对应不同底部位置,同 Activity 精确组中实际出现 CreateNote、CreateListNote 和 Main 的不同结果。identity-context-counterexamples.json 给出四个这样的组;既有 exact-related 关系可找出这些记录,但不保证它们是同功能。代表图与输入并非全部同次对齐,不能把观察冲突升级为某种触摸/异步故障的已证因果。
当前语义审核页面使用 JevSemanticReview.java:618,655–695 的当前 State/ModelAction confirmedHistory;JevRegistry.java:315–341 定义其池。属性排序 JevHistoryPairwiseProtocol.java:200–242 只在上游池内评分,不会自动扩展成任意跨 State 的同功能历史。回溯桥接出来的关系不是现有检索已经完成的能力,也不是新的身份系统。