外观
Perfowl 本地可信采集内测版 · 交付目标与分批验收计划(2026-10-01)
0. Owner 临时角色合并(2026-10-01)
Owner 已指定本任务由同一 AI承担方案、实施、测试和最终裁定。本计划下文的 Lead / Implementation / Test 是工作活动而非不同执行者;原“独立验收”在本任务内改为证据驱动的自验收,报告须明说复核者与实施者相同,不能冒称第三方独立复核。顺序门、原始证据、反例、资源比较、真机 E4 和签名公证要求不因角色合并降低;未取得的证据仍判 partial 或 blocked。不创建额外工作树或常驻环境,四项他方 WIP 保持原样。
1. Lead 决策:先交“可信本地内测”,不宣称全指标正式版
唯一交付目标是一个受控内部使用的 macOS 可安装包:在明确登记的设备/系统组合上,用户从原生 App 选择目标、开始、观察、停止并查看本地报告;原始 Session 与派生报告可按 SHA-256 追溯;本版实际开放的指标有正确 scope、单位、来源和质量标签,缺值仍为缺值,绝不为了“出数率”生成假 0 或把离线候选冒充在线发布。包必须完成 Developer ID 签名、公证 Accepted、staple、Gatekeeper、独立解包安装及 SHA 核对。本目标是内部 Beta,不是公开商业分发或“66 项全部 validated”。
首版承诺的是可信的采集与报告闭环,不是每种设备/应用都能拿到启动 Total。Startup Total、FrameTime/FPS 在通过各自真机门前保持 candidate/实验状态;真机不能证明的路径可以在 UI 明确显示 missing 或不列入本版支持矩阵,不能靠说明文字把失败改称可用。公开发布是另一个 Gate,必须另有架构、兼容性、第三方 notices 和 GPL-3.0 法务结论。
此目标刻意不等待 Phase C Hybrid、GPU Counter [int,int] 解码、ThermalStatus 稳定来源、物理断电 Battery 三项、全 iOS 版本、Cloud/CI/团队协作与首页视觉 G1;这些能力可继续开发,但不能被首版宣传为已交付。若 Project Owner 日后要求“全指标正式版”,须另立范围与预算,不把本 Beta 偷换名称。
2. 当前事实基线与优先级
本方案起草时 main HEAD=e244845,截至 2026-10-01 共享区已有 SW-1 P1 的 launch_trace.py、realtime.py、知识页、测试与实施记录未提交 WIP,另有原四项他方 WIP;本方案不触碰这些路径,不把 WIP 当成已交付产品。Git 实况每次执行前重核。P0 数据保真、P1 已有源承接完成;P2–P7 各有开放门。Build74 A/B/C 代码及 E2 基础已有 Lead 验收,但多源长会话真机 E4、SW-1 正常路径 E4、工作台真实 UI/资源、GPU 数值、发布工程等不能由已有 E2 或旧实验包替代。
关键路径只排一条:正在实施的 SW-1 P1 → E2/包自验收 → 本 Beta 冻结支持矩阵与真机合同 → 原生 UI/多源/停止报告 E4 → 对每项支持能力作证据裁定 → 签名公证成品与内部交付。P1 若无法取得可信来源基线,按其 §22 停在影子诊断,不能为了时间表启用 active admission;本 Beta 可明确不承诺 Startup Total,但必须如实标明该缺口。前一门不通过不得用后一门的结果反向“补判”。
3. 交付范围与功能矩阵
| 分类 | 本版目标 | 进入支持矩阵的必要证据 |
|---|---|---|
| 必须:本地 Session 与 UI | 真实 App UI 的设备/目标选择、Start、实时状态、Stop、Review;Raw→Metric→Report 封存和重开核对 | 同一 App 进程入口、冻结 CapturePlan、Raw 与最终报告哈希链;完整 UI 录证,Stop/退出/报告三事件分别计时;断连与取消不伪造成功 |
| 必须:CPU/内存/网络核心值 | 仅列出本次真机证实有来源且归属正确的具体 metricID;网络源字节与聚合字节可对账 | 对每项登记 Registry ID、scope、unit、source、quality、样本数;真实负载变化方向与空值边界;网络 Σaggregate=Σsource、networkSourceDropCount=0、networkBytesBalanced=true |
| 条件:FrameTime/FPS | 只有单源与多源长会话均过真机门,才在本版标为支持;否则保留实验/不可用标签 | FrameLifetime 来源、时间轴和前台归属 E4,负载下事件循环/队列等待、0 丢失、Stop 与报告完整性同时满足;不以截图轮询代替逐帧真值 |
| 条件:Startup Total | 仅在 P1 默认 OFF 等价、ON 准入和在线发布 E2 通过后,另做真实 UI E4;未通过则可显示 missing,不得说稳定性已提升 | 原生 UI Start/Stop、冻结开关与来源身份、在线 _emitted 与在线文件、最终 Raw 回放分列;有效正例与冲突/缺值负例;候选仍标 candidate |
| 明确不承诺 | GPU Counter 数值、ThermalStatus、物理断电 Battery 三项、Hybrid Total、全 66 项校准、Cloud/CI/团队、公网下载 | 不以 Registry 中存在、E2 合成或页面入口存在代替当前版本可用性;UI 与下载页的文案须一致 |
产品支持矩阵必须在 Gate B 前冻结为一份机读清单:逐项列 metricID / mode / supported-device-build / quality / E4-evidence / known-missing-reason。对未验收项采用隐藏、禁用或明确实验标签之一,且不得将 unknown 填为 0。本计划不改变任何指标公式、Registry 定义或质量语义;若后续实施改变,先更新对应 Canonical 指标页的字段、转换、单位、范围、窗口、缺失/重置、取整、版本与来源,再改代码。
4. 五道顺序门:谁做、交什么、何时停止
Gate A · 现有 P1 收口(同一 AI 实施并自验收)
只执行既有 SW-1 P1 合同 §22,不从本计划增派第二项产品修改。交默认 OFF 逐字段等价、身份/绑定/角色负控、在线与最终分列、真实规模前后资源对照、完整实施记录及包验证;同一 AI 基于原始结果自裁 PASS / REPAIR REQUIRED / PARTIAL,注明非独立复核。未过不进入 Startup E4;即便过,只证明 E2 与可安装包,不证明稳定性提高。
Gate B · 冻结 Beta 支持矩阵与 E4 合同(同一 AI)
基于 Gate A 和现有 P2/P3/P4 证据,冻结本版精确 metricID、设备/系统范围、UI 显示状态、测试包 SHA、对照基线、每项成功/缺失定义与停止预算;把 E4 合同和矩阵写入 site/devlog/ 后由同一 AI 按冻结步骤执行。不得把旧命令入口轮次充作 App UI 轮次。若核心 CPU/内存/网络来源尚不能可信归属,Beta 目标判 blocked,不靠删掉失败样本放行。
Gate C · 真机采集与端到端资源(同一 AI 执行并判定)
只用 Gate B 冻结的已公证包;每次 Session 保留原始数据、配置、测试步骤、机器资源与 SHA 清单。最小矩阵:①纯核心指标短会话;②本版全部开放指标、截图 OFF 的 5 分钟;③同配置截图 ON 的 5 分钟;④至少一次 20–30 分钟长会话观察 UI、内存与 Stop;⑤目标退出、来源掉线/重连、立即 Stop 的负向流程。每种正式场景至少 3 次独立真实 UI 轮次,且逐轮报告,不用“总计通过”掩盖个别失效;有效轮的设备、系统、目标类别和配置必须同表登记。Startup 的 OFF/ON 与负控另按 Gate B 新合同执行,不能从这些多源轮次自动算作 SW-1 正式 E4。
共同硬门:Session 原始/派生哈希一致;sourceConsumerTaskCount 全 completed、timedOut=0,closeoutStatus 非 timed-out;已开放指标不发生无解释的来源丢失;网络字节守恒;用户 Stop 不被报告生成阻塞;任何缺值有非空 reason 且不显示假 0。记录点击→首反馈、首有效点、Stop→核心退出、Stop→最终报告、P50/P95/最慢轮、CPU/RSS/磁盘 I/O 峰值与报告体积;没有同轴时间戳的区间记 unknown。沿用现有 Swift 10 s watchdog 与项目已立的 UI 首响应、报告完成门槛,不擅自放宽;若当前项目门槛缺精确起止事件,先补同轴取证再裁定,不用文件 mtime 代替事件。超时、源丢失、哈希不符或资源监测中断即保留 partial 证据并停相应后续轮次,Lead 判归因后才可重测。
Gate D · 证据自验收与最终内部包(同一 AI)
逐项重算 Gate B 矩阵和 Gate C 原始证据、负例、性能与异常轮,不以代码作者的先验判断替代测试;仅对通过的具体设备/系统/metricID 给出 validated 或受限 candidate 结论。此为同一 AI 的自验收,不是第三方独立证明。任何核心项失败则 REPAIR REQUIRED,形成新的窄范围合同;条件能力失败则从本版支持矩阵剔除或保持实验状态,前提是不会损害核心采集闭环。随后对最终相同源码与配置重新构建可安装包:Developer ID、Notary Accepted、staple、codesign --verify --deep --strict、spctl、独立解包安装/启动、完整 SHA 与回滚包;不能拿先前实验包的公证替代。若需要 arm64/universal2,而当前包仅 x86_64,就在支持矩阵限定架构;不得宣传未构建的平台。窄范围提交、双远端、Webhook;GitLab 只尝试一次,失败记 partial、不阻断其它独立工作、不强推。
Gate E · 内部交付判定(同一 AI)
全部必需 Gate 通过,才交内部用户:安装包绝对路径与 SHA、适用设备/系统/架构、支持矩阵、已知缺值、验证摘要、回滚步骤。若任何必须 Gate 不满足,则交付状态 partial/blocked,只交已验证产物和明确缺口,不称“可用内测版”。网站只可发布与该状态一致的开发记录;本计划本身不授权生产网站发布。公开分发须另开 Gate:GPL-3.0 正式法务结论、完整第三方 notices/EULA、目标架构包、跨版本长稳和下载/更新策略,不能借内部 Beta 自动放行。
5. 性能、复杂度与执行预算
热路径保持单 Session 单目标、有界并发;网络 100 ms host 聚合而非逐事件写盘,Raw 只追加、派生和报告只做必要增量/单遍处理。对 N 条 Raw 记录,目标新增门的处理为 O(N),有界候选 ≤4096、绑定账本 ≤65536;不得复制整块大 Raw 或在 UI 线程做全量扫描。P1 自身沿 §22 的 OFF 吞吐退化 ≤5%、RSS 增量 ≤8 MiB、ON 相对 OFF 吞吐退化 ≤10%、RSS 增量 ≤16 MiB、单 chunk 同步持有 ≤50 ms 目标;这都是待验证门槛,不是当前成绩。
Gate C 必须以与本版真实 5 分钟及 20–30 分钟 Session 同规模的输入做 baseline/ship 交错比较,分别列首响应、稳态吞吐、长任务完成、P95/最坏响应、CPU、RSS、I/O 峰值;并发固定 1 个受控采集会话,超时按既有 Stop/closeout 守卫执行。不能测的资源为 unknown,该项不算性能门通过。测试失败不通过提高超时/容量阈值、减少指标或跳过截图来隐蔽;可按 Gate D 明确缩小首版支持矩阵,并重新跑冻结矩阵。
6. 依赖、止损与进度预期
- 唯一在途开发:SW-1 P1。同一 AI 接管并逐行审查共享区既有未提交实施字节;四项他方 WIP 不暂存、不改写、不清理。不增新工作树或并行改码。P1 自验收后再冻结 Beta 矩阵。
- 设备与授权:真机、目标应用可用、真实 App UI 入口和本机签名/公证凭据是 Gate C/D 前置;不存在时状态
partial,不以合成回放填补。GPL 法务未结不妨碍本地开发证据,但阻止公开商业分发。 - 止损:P1 若只提高“有数字”而不提高可信候选,或身份门造成大量有效记录被拒,Lead 不继续同构实验;转查上游来源时序/端点交付。多源长会话若同类 Stop/queue 缺陷连续复现,先收敛单一归因,不持续扩大样本。
- 条件工期仅作资源规划:Gate A 实施/修复约 3–7 个工作日,Lead E2 审核与 Gate B 冻结约 1–2 日,Gate C 真机矩阵与分析约 3–5 日,Gate D 包与验收约 1–3 日;串行关键路径约 2–4 周,不是发布日期承诺。遇真实数据不支持、来源身份不可冻结、签名/法务或设备阻断,时间停止计数并报具体阻塞;不得用日程替代证据。
7. 唯一下一动作与交接
当前不另派新开发任务:同一 AI 按已定稿 §22 完成 SW-1 P1,重算测试、资源、包和偏差并明确自验收;随后按本计划 Gate B 冻结 Beta 支持矩阵及真机合同。Project Owner 当次要求调整首版目标时,先改本计划与门禁,绝不在执行中静默扩范围。此计划的完成是 E1 决策完成,不是 Beta 实现或验收完成。