planP4E4approved2026-09-27

Owner 新会话启动审计与 SW-1 有界采集窗口差分实验

1. Lead 决策与边界

Lead 独立读取 Owner 新录制会话 O1 的产品报告、核心清单、原始事件、外置二进制与指标文件,并在当前 5309283a28499c613bc312a2192f798a65dbdd97 进行只读核验。本页 E4 指真实会话证据;本页新增实验尚未实施,不能据此宣称修复有效或产品验收通过。

本次完整启动时间仍 missing;现有字节中没有 IFR opener。批准 SW-1 默认关闭的单变量窗口实验,不批准生产策略修改。 A1 UI E4 保持 OPEN;Phase C Hybrid 保持 FROZEN;Network 与 FrameTime 各自另批。

Owner 的固定流程:Lead 落盘方案并派发,Implementation 按合同执行,交付后 Lead 独立验收;无需逐批等待 Owner 再次审批。Owner 新增规则:GitLab 每批只尝试一次推送,失败不重试、不阻断 GitHub、实验或技术验收。远程同步失败单列 partial,不篡改真实 ref,不 force。此规则不授权绕过现有生产部署守卫;本批不发布网站。

2. O1 独立证据

原始位置与真实设备/应用/进程身份只留私有证据;公开统一用 O1、设备 A、目标 App A。私有目录:~/Perfowl-Local-Archive/owner-startup-audit-20260927/,只有脚本与证据,没有新 worktree、虚拟环境或 Raw 副本。

项目独立读数解释
全会话时长629.939 s长会话不等于启动 tap 持续运行
产品 CSV622 行观察样本,不代表完整启动端点
请求指标38 项非历史 startup-only 12 项配置,不用于成功率直接比较
CoreProfile39 chunks:31 binary + 8 bplist全部 startup-lifecycle / active
binary 解码记录2,235,860使用 RAW v2 头、跨 chunk 余数与实际流偏移对齐
IFR opener全线程 0,目标线程 0跨整个已保存 CoreProfile 字节扫描,不只查白名单/报告
IFR closer全线程 21,冻结映射可归属目标的 018 属其他进程、3 映射未知;未知不可冒认目标
可解释生命周期 action 记录全线程 42,冻结映射目标 13action 记录数不等于 report targetRecordCount
出厂 Totalnull / missing,status partialrequiredMissingPhases 仅 IFR;sceneWillConnectTo 另有不完整边界
当前纯内存重放10 个主字段与出厂报告零差异不调用会回写文件的 derive_session;不证明录制二进制版本相同
tap completion waittimed-out / startup-completion-grace-expired,4.040685 s非语义完整成功
结束时 open phaseUIKit Scene Creation当前延长条件仅 didFinishLaunchingOpen,此状态不获延长
tap stop drainquiescent,postStopChunkCount=0,post-startup observed bytes=0本次没有 A1 drain 候选可救
设备 loss marker4host liveQueueDrop=0 不等于设备无丢失;不能断言恰好丢了 IFR
writerQueueWaitP95 901.689 ms / max 1412.541 msbacklog 线索,尚无因果归因

文件独立 SHA-256:

各 chunk SHA 也逐块核验。整个 Session 全文件的 SHA、size、mtimeNs 在审计前后相同;只证明本次审计区间未变,不追溯此前不可变性。私有脚本一次审计约 5.96 s(包括前后哈希),不是产品性能门禁。

2.1 时钟与源码交叉核验

主机域:launch.requested → startupSemanticComplete 约 7.720 s;semantic flag → tap stop request 约 48.698 ms;stop request → drain complete 约 770.286 ms。completion wait 4.040685 s 是其中一个等待阶段,不能称为“点击后 4 s 停源”。设备域已保存的最大 kernel tick 相对选定 launch-start tick约 +1438.815 ms;这是覆盖读数,不是 Total、也不是与主机域同轴的窗口。

realtime.py 的等待循环允许 didFinishLaunchingOpen 获得一次 8 s 延长,且总 deadline 受 launch-request 主机时钟 +15 s 约束。grace 到期后仍会设置 startup_semantic_complete 并 request_stop_for_drain。名称里的 complete 因此不能单独证明 IFR 完整。实际安装包来源尚未绑定到 Git 完整 SHA:当前源码说明候选机制,Raw/manifest 证明本次真实结果,两者证据分开。

已排除的直接修复方向:O1 没有 opener,修改 A1 role 保留、重新配对现有 closer、重放原文件,都不能恢复缺失端点。尚未证明:端点在 stop 后产生/送达,设备 overflow 丢了 opener,或目标行为/系统 schema 本来不同。延长窗口只是可证伪的假设,不是根因结论。

2.2 其他性能读数与独立异常

3. SW-1:唯一实施合同

3.1 目标与实验变量

回答一件事:在同一正确 UI 配置下,UIKit Scene Creation 尚开且 IFR 未配对时,多保留剩余的现有主机预算,是否能获得目标线程真实 IFR opener/closer?

默认 OFF 的环境开关 PERFOWL_STARTUP_SCENE_WINDOW_EXPERIMENT:缺值/0=OFF,1=ON,其他值 fail-closed OFF 并记录解析诊断。开关在核心启动时固定,不支持中途翻转。

ON 仅在原 base-grace 到期的检查点生效,必须同时满足:未 Stop/closing、有效动态目标身份、尚未 completionObserved、UIKit Scene Creation 仍在现有 decoder openPhases、现有 launch-request 主机 max_deadline 尚未到达。此时只允许一次延长,deadline 设为现有 max_deadline,不另造 deadline。已存在 didFinish-open 路径保持原样并优先,禁止延长叠加。延長必须被显式标记为 scene-window-experiment,不伪称 completion-observed 或干净完成。

这是最多补足 launch-request 后 15 s 的主机等待,不是设备 tick 准入上界。Stop 必须随时打断;completionObserved 仍立即结束;max deadline 仍失败闭合并保留 missing。openPhases 为空、仅其他 phase、目标未验证、时钟边界缺失,一律不进入新增分支。

3.2 允许范围

禁止改:launch_trace.py 配对/保留/质量/Total,metric_engine/Network/FrameTime,kdf2/bm/bso/bsoc/csd/rp/frame filter,source restart/rearm,Phase C,普通首帧替代端点,UI 指标默认选择,pre-push/网站生产部署。不得合并 G2/SSO/WIP 分支。

3.3 最少 telemetry(原主机域,缺值保留 null)

manifest 增量命名保持 startupSceneWindowExperiment* 前缀:enabled、eligible、extensionApplied、decisionReason、deadlineMonotonicNs、extensionStartedMonotonicNs、extensionEndedMonotonicNs、openPhasesAtDecision;同域耗时按 (end-start)/1e6,负/缺值置 null。记录现有 completion waitStatus/reason、tap stop/drain 与 sourceEpoch/targetGeneration,保留 original 字段语义,不回写旧会话。

不新增指标、不新增总时间公式。读取检查点 snapshot 一次、内存 O(1) 状态、最多 3 条新增控制 telemetry;禁止高频轮询/每记录格式化/无界 ledger。等待继续复用 event race,每个 wait 子任务在 finally 取消并 gather。

4. 实施与验收顺序(不刷概率)

E0:先复核录制来源与同类历史

复核当前 HEAD/status;只读定位 O1 所用安装包(真实 executable 路径、Info.plist、核心 SHA、可获得的完整源码 provenance)。缺来源标 unknown,不编造。阅读历史 dedicated/prewarm/grace/rearm 记录:若发现已完成完全同条件窗口实验,停止重复,实现前交 Lead 该证据。异类 bm/bso、rearm 与角色反事实不算同实验。

复跑 O1 namespace scan,明确 RAW v2 头、bplist、跨 chunk partial record、外置 blob SHA与偏移,不按 blob 全局64字节步长扫描;opener 的 func-bit 变体也覆盖。输出 main-thread witnesses、所有未知 closer 身份;禁止靠最终 PID map 把线程重用冲突洗白。必要时用第二个纯字节定位器复核 code12,不新增整棵源码复制。

E1:确定性测试 + OFF 等价

必须覆盖:OFF/无开关/非法值,唯一 Scene-open 可延长,其他 phase 不延长,无动态身份,已完成,不存在 launch边界,deadline 恰等/已过,didFinish 已延长不叠加,Stop 在决策前/等待中/完成同时到来,source closing,任务取消与无泄漏,超时保持 missing。

旧四轮 + 三轮 UI + O1 的 Raw/报告只读重放,证明 OFF 主字段、pairing、保留与指标算法不变;不同 schema 使用隔离工具兼容,不改原文件。新工具测试包含分块拆头、拆记录、bplist夹块、debugID出现在 args 的假命中、跨源/代际、映射未知/冲突、只 closer、其它进程完整链;假命中不能形成 PASS。

专项与现有 Sidecar 全量匹配验证;不以计时 flake 自行判回归/非回归。OFF 性能交错至少 3 配对,同 Python/字节码状态:单MB扫描吞吐下降 ≤5%,RSS 增量 ≤8 MiB,无额外 Raw全量复制/I/O;首响应与 Stop响应不劣化。ON 最长等待是刻意的实验成本,必须分列,不能与 OFF 同预算掩盖。ON 后台队列原容量不扩大。

E2:实验新包工程

Developer ID、secure timestamp、hardened runtime、notary Accepted、staple、deep-strict、Gatekeeper、独立解包启动、ZIP完整 SHA、核心 SHA与exact commit绑定均要留证。仅有构建不进入真机。嵌套 TSA 的既有缺口只对实验构建产物重签,不并改 build-app.sh;证据如实区分原脚本与产物处理。

E3:最多两个新真实 UI Session

同一个新实验包,设备 A、目标 App A、相同 cold-launch 流程,只勾 Startup Timing 12 项、关闭截图;逐项比较 planHash/registryHash、identity、四 lifecycle kdf2、csd0、bm0、rp100、exact-debug-id。O1 的 38 项+截图不是这一对的基线,不用新旧不同配置宣称提升。

按 OFF → ON 顺序各一轮,最多 2 个新 Session,包括 INVALID 轮也计入预算;每轮一次 Start/Stop,固定观测30 s,若启动完成也不提前人为挑窗口。每次切换 env 后完整重启 App及其预热核心,验证实际核心继承状态;不要重用旧进程。未按预定开关/配置进入核心即 INVALID,停止,不补刷。

先落只读封存清单再分析,分析结束全文件重哈希。UI 原生 live/final 与隔离 offline replay分别交付;App 未写诊断块属于已知路径差异,不覆盖成 offline 报告。每轮有界收集宿主 CPU/RSS/I/O 与 UI同轴操作记录;策略不允许的项写 unknown,不绕路自升证据。单轮 wall 上限120 s、Raw 观察安全预算1 GiB;触线立即按真实 UI Stop收尾,记录 safety-aborted,不继续采样;不人为加压/延迟/改 drain。

E4:Lead 判据

若阳性,Lead另定生产最小补丁与至少跨设备/配置正负回归;这之前默认开关仍关闭,A1 UI E4/Build74正式验收均不因此关闭。Native active candidate不等于 A1 drain正向,实验也不强行要求事件落在drain。

5. 交付合同与环境纪律

只使用主工作区、现有依赖和一个私有批次目录。零新增常驻 worktree/venv;若测试必须临时隔离,最多一个目录、验证后移除并交代。四项他方 WIP 与 Instruments trace逐字节保全;只显式暂存本批路径,不 reset/clean/全量暂存。

Implementation 交付 exact commit/parent/五类文件范围与偏差,deterministic测试与OFF回归,包绝对路径与完整SHA/provenance,两轮真实UI原始哈希/配置/同域窗口/locator/loss/资源/报告差分,所有unknown及停止理由,C2/C3/C5、GitHub与GitLab一次尝试分别状态、Webhook。不生产发布;不自判PASS;不得开启Network、FrameTime、Hybrid下一阶段。

整体路线:SW-1窗口假设验证 → Lead选择生产最小修复或源丢失分支 → 同配置跨设备稳定性验证 → 新包正式E4。Dedicated已实施不等于端点稳定;Hybrid没有完成,继续冻结。网络巨值另建待办;FrameTime时钟与P95/Jitter缺值另批,不能靠这批扩大支持声明。