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 验证与资源
- 聚焦 Python 41 项通过;Sidecar 全量首轮 1148 项中 1 项既有时间敏感断言在宿主负载下为 53.027 ms(门槛 50 ms),单项复核通过;完整重跑 1148/1148 OK。阈值未放宽,首轮失败日志保留。Swift 204 tests、3 skipped、0 failure;普通及条件 Fixture 无签名构建均成功;知识门禁 66 contracts PASS。
- 100100 事件的交错基准(基线/本批各 3 次):active wall 中位 766.489 → 773.607 ms(约 +0.93%),P95 tick 8.392 → 8.424 ms(约 +0.38%),吞吐 130595.4 → 129393.9 events/s(约 −0.92%);独立进程
maxRSS29.03 / 26.61 MiB,仅作资源读数,不作内存收益断言;物理 I/O 峰值unknown。无源控制例旧版输出 99 个假候选,本批为 0。新增每事件常数检查,状态 O(1),总时间 O(N)。 - 同源码 Build 79 x86_64 App 已由 Developer ID Application 签名,323/323 Mach-O 带安全时间戳;Apple 公证
Accepted、ticket stapling、codesign --verify --deep --strict、GatekeeperNotarized Developer ID、独立解包/安装验证均通过。最终 ZIP 109834779 B,SHA-256928e9b6cb00bea48824becfaec1a45fe5c4bcc6e074aa54b168aca66a064e9ca;仅为 E2 可安装诊断包,不是 Beta 最终验收包。私有签名/资源日志与原三轮证据均保留。
当前裁定与停止门
同一 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 的状态不变,网站不发布。