planP7E1implemented · gate-open2026-10-01

Gate C-R1 · 先纠正无来源零值,再验证真实网络正控

1. 冻结事实与范围

Gate C 三轮短会话 原件不回改。三轮均请求设备网络 Tx/Rx;resolvedPlan.coverage 对 pmd3.device-network.raw 均记 preparationState=failed,Raw 事件中该适配器为 0 条,源阶段 itemCount=0,sourceAdapterDiagnostics={}。但引擎由 sysmontap 的目标进程样本定时 flush,把未收到的字节默认为 0,报告给每轮约 63–64 个设备网络 candidate=0。这是缺源与合法零混淆;candidate 数量不能补足来源证明。失败的具体准备异常尚未在封存件中保留,原因 unknown;不能猜测为协议或设备问题。进程网络源有 Raw 事件,但目标流量增量为 0,缺非零正控。

本合同只允许:修复设备网络 metric 的 fail-closed 质量语义,保存有界源准备与源对账凭据;在同一私有 Gate C 批次内,用受控目标 App A 做至多一次诊断性、真实 UI 的非零网络正控。该轮不替换旧三轮,也不算原 Gate B 的 3/3。诊断如触发失败/超限即停,另立窄合同;不顺势扩样、进入 5 分钟或 Startup。不得修改被测 App、系统服务或依赖包,不注入/Hook,不新建常驻环境,不发布网站。

2. 公式与质量语义(实现前冻结)

对每个方向 d ∈ {Tx,Rx},同一 (adapterID, sourceEpoch, reconnectGeneration) 来源窗内,B_d = Σ valid nonnegative source delta bytes,Δt = (相邻 sysmontap 目标进程锚点 hostReceiveMonotonicNs 差)/1e9,rate_d = B_d/Δt,单位 bytes-per-second,公式版本从 network-window-rate.v2 升至 network-window-rate.v3。聚合 Raw 的 txBytes/rxBytes 与 legacy ConnectionUpdateEvent.tx_bytes/rx_bytes 两种输入均保留;不混源、不跨 epoch。每个方向须在当前 flush 窗中确有至少一个有效源字段,才允许数值 0 或正数;没有源字段则 value=null, quality=missing-source。首次有效窗 warmup;Δt<=0 为 invalid-window;来源窗重置清掉旧字节和有效字段标记。一个方向缺值不得冒充另一个方向的 0。进程网络公式和质量不变。

已封存旧 Session 的解释保持原样,不能因新公式版本倒灌重写。新数据只在新包/新 Session 上判定。旧 checkpoint 读取必须 fail-closed 或有明确迁移;不得静默把旧累计 0 判成已观察的 0。来源准备状态与取值状态分开记录,避免 valueQuality=candidate 覆盖源准备失败原因。

3. 凭据与正控判据

新 Session 的源准备结果记录每个已请求 source 的 prepared/failed 与稳定异常类别(不落设备身份或堆栈);实际启动、首 Raw、停止分开标记。源未启动/无 Raw 时,networkSourceDropCount、networkBytesBalanced 应为 null/unknown,不是 0/true。真实源活跃且收过至少一条有效事件时,再从 DeviceNetworkBurstAccumulator 记录 networkSourceTxBytes/RxBytes、networkAggregateTxBytes/RxBytes、networkBytesBalanced、networkSourceDropCount;字节必须逐方向完全相等、drop=0,且目标 App 自己的进程网络 Tx/Rx 原始增量至少各有一个严格正值。设备与进程的不同 scope 不互相相减。

受控 App A 使用明确的、可重复的用户触发网络请求,优先现有 fixture.network.request UI 控件;目标端点、请求字节和响应是否到达仅在私有证据中留存,公开文档只写别名。若没有可靠的设备侧 UI 操作通路或端点不可达,记录 unknown/partial,不把宿主网络流量冒充目标流量。任何新增 Fixture 行为必须默认关闭、先文档化、重新构建与安装并单独记录来源,不得偷偷改变受测目标。

当前设备侧没有已验证的 AX 触达通路时,允许仅对受控 Fixture 使用编译条件 FIXTURE_GATEC_R1_AUTO_NETWORK 的测试变体:正式默认构建无此条件、行为关闭;变体在目标视图首次出现后每隔 6 s 发一条 GET,最多 6 条,通过不同查询项绕过本地缓存,复用既有 Fixture URL 输入和 URLSession,不在源码/公开文档加入测试账号或私有端点。其构建参数、签名、安装前后包 SHA 与目标身份仅记私有证据;不能把该变体的主动流量当成普通业务 App 的稳定性证明。若构建/签名/设备安装任何一步不能核实,停止本次正控而不是改用宿主流量。

4. E2 与 E4 停止门、资源预算

E2:对无设备源、只有 Tx、只有 Rx、显式零、显式正值、无效字段、来源 epoch/重连切换、checkpoint 恢复与 Raw→在线/离线一致性各设匹配测试。无源时任意非空设备网络数值即失败;已有正常有源场景不得退化。先跑聚焦单测与全量 Python、Swift 适用回归,再做基准前后对比(每秒输入至少 1,000 条、峰值 RSS/CPU/物理 I/O、P50/P95 和总耗时,串行有界);每事件只增加常数次判断、时间 O(N)、额外状态 O(1)。E2 未通过不得进入 E4。

产品代码开发结束必须按 AGENTS.md 对同一源码重新制作 Developer ID 签名、公证成功、staple、Gatekeeper 和独立安装验证的包;缺证书记 partial,不得以旧 b78 包代替。新包 SHA 冻结后才可做诊断性真实 UI E4。设备/桌面/可用容量(至少 40 GiB)预检;单轮 60–120 s、Raw ≤1 GiB、探针 RSS ≤64 MiB、≤1 Hz 采样、Stop→Core 退出 10 s watchdog,报告可读用同一 monotonic clock 的轮询上界,物理 I/O 被拒则 unknown。触发超限、无来源、源丢数、字节不守恒、目标正控失败、隐私泄漏或监测中断,即真实 UI Stop、封存 partial 并停止后续相依场景,不自动重试。

该轮仅可修复错误质量和定位来源故障;只有设备网络真实源、非零正控、守恒/丢数、同轴时序与资源凭据全部齐备,才能另立 Gate C 正式 3/3 复验合同。Startup 稳定性改善仍 NOT PROVEN,A1 UI E4 仍 OPEN,Hybrid 仍 FROZEN。完整 Beta 不因本合同或 E2 代码测试变为已交付。

2026-10-01 Implementation Update · E2 完成,真实 UI 诊断待证

本批只改两项设备网络指标的缺源语义与来源凭据,不回改旧三轮 Session。旧三轮的独立复核确认:设备网络源准备均 failed、该源 Raw 事件均为 0、源诊断为空;旧公式仍输出每轮约 63–64 个 candidate=0。这批零值不是合法零流量证据。准备失败的具体异常旧件未保留,仍为 unknown;进程网络有 Raw 事件但非零正控尚缺。

实际修改:metric_engine.py 对 Tx/Rx 分方向记录“本窗是否收到有效源字段”,只有显式有效的 0 才可产出零;无字段一律 value=null, quality=missing-source,保留 warmup、无效窗口与 epoch/重连重置。公式升级 network-window-rate.v3,Swift Registry、机读快照和 Canonical 指标页同批更新;旧 checkpoint 因公式合同不一致而 fail-closed,不迁移假 0。realtime.py 分别留存预热和 Start 源准备失败类别,并在 Raw manifest 输出有界 networkSourceReceipt;源未见事件时 drop、守恒及字节均为 null/unknown。online_report.py 把该 receipt 带入最终报告。受控 Fixture 只增加默认关闭的 FIXTURE_GATEC_R1_AUTO_NETWORK 测试构建条件;普通构建行为不变。

相对方案的偏差:本机可编译普通/条件变体,但当前设备没有适配该 Fixture 的本地 provisioning profile,带自动网络正控的签名安装未完成;未请求 Xcode 自动生成凭据、未改变正式目标 App。现有设备上已安装 Fixture 的手动“发起请求”入口可作为正控,但设备侧操作尚未取得可核实配合,因此没有启动新 E4 Session,亦不把主机流量当正控。

E2 验证与资源

当前裁定与停止门

同一 AI 的 E2 程序/包子门自验收 PASS,不冒充独立复核;Gate C 正式 E4、六项核心支持矩阵、完整 Beta 均 partial / 未完成。新包的真实 UI 来源激活、目标 App 正流量、drop/字节守恒、同轴 Stop→报告上界与资源仍待一次有界诊断。若一次诊断证明源仍失败或目标正控无法触达,立即封存 partial,不重试、不扩至 5 分钟/长轮/负例/Startup。Startup 稳定性改善 NOT PROVEN、A1 UI E4 OPEN、Hybrid FROZEN。

2026-10-02 Validation Update · 旧 Raw 的只读 v3 反事实检查

Owner 当前不方便操作设备,本轮没有启动 b79 UI 采集。为核实 E2 修复不仅覆盖小型合成输入,使用现时 RawMetricEngine / network-window-rate.v3 对已封存的三轮 b78 Raw 逐行、只读解析;每轮先在同一流中计算 Raw SHA 并与 foundation-delivery.json.sourceRawSHA256 对照,源目录没有任何写入。三轮分别为 195 / 196 / 193 条 Raw,pmd3.device-network.raw 仍各 0 条;v3 引擎按每个方向输出 65 / 65 / 64 个 value=null, quality=missing-source,0 个非空设备网络值、0 个假候选零。这里数的是引擎输出帧,不是旧 metrics.csv 的采样行数,不能把两个粒度直接相减;旧报告与旧 Session 保持历史原文。

私有机读件 gate-d-preflight/v3-counterfactual.json SHA-256 142a72008ebbe08491596cd8ab73edb6d46d7a3f4f7cd72dd3266c444583f73e;wall 1.005019 s、峰值 RSS 30.309 MiB(预算 120 s / 64 MiB,单进程串行)。旧批次 SHA256SUMS-core-short.txt 136/136 项现时 SHA 与大小再次复算一致(59,159,952 B,零漂移)。这仅是E2 离线反事实:不证明 b79 真机设备网络源能启动、不证明真实非零流量/丢数/守恒,也不替换正式 E4 三轮。Gate C、Gate D、Gate E 和完整 Beta 的状态不变,网站不发布。

2026-10-02 Validation Update · 诊断脚本预检与封存边界

Owner 当前不方便操作设备,故未启动 b79 App 采集、未创建新 Session。只读审计待运行的私有单轮诊断脚本发现:旧脚本在核对 App 路径、40 GiB 空间、AX 控件与冻结目标之前就创建唯一的 gatec-r1-diagnostic 输出目录;一次失败的只读预检会占用该名称,使随后真正的单次诊断无法开始。旧提示还误称 b78,AX 树未先核 ok,目标/设备控件仅检查“至少一个”。封存器原先允许复制 Session 内符号链接。

在原私有批次 r1/ 内就地收窄未执行的工具:先完成只读预检,再创建唯一输出目录;AX 树须有成功状态和节点数组;目标与设备选择控件均须唯一,目标必须是冻结 Fixture;提示改为 b79。封存前确认来源位于本机 Session 根下,并拒绝来源或其子项的符号链接,避免把外部字节带入证据副本。未修改产品代码、测试目标、冻结合同或任何旧 Session/清单;该调整不是对真实设备身份的最终核对,运行当时仍须重新核设备 A 与包 SHA。

新增私有离线守卫测试 4/4 通过(0.356 s):错误 App 预检不占批次名、来源越界拒绝、嵌套符号链接拒绝、最小合成已结束 Session 可封存。三份现时工具 SHA-256 依次为 85187498e185ec94cd75dcc71bd1d4e206f1ccbe584b4183bf519e5adb8c53f9、f4210ee4794c40ebc2bc6fc80102a2a07f5502cf5d2661d012380d277f92a545、6ac7c05ee53839d25fc257c5ec8e606a7decdcafc8ff92b499d6d3cb603eb4da;两份旧脚本修改前摘要另留私有记录。gatec-r1-diagnostic/ 仍不存在,唯一真 UI 诊断额度未使用。测试只覆盖脚本守卫,不证明设备网络源、正流量、报告时序或资源门;Gate C/D/E 与完整 Beta 继续 partial,网站不发布。