外观
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 的状态不变,网站不发布。
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,网站不发布。
2026-10-02 E3 Transport-Only Preflight Plan · 网络源准备失败类别
当前设备 A 已配对且可连接,但旧 b78 三轮仅保存设备网络源 preparationState=failed,具体异常类别未留存。为避免在唯一真 UI 诊断时才发现可预先识别的传输失败,本批允许对同一设备 A、同一现时源码及已存在的 Python 运行时作一次传输连接预检。仅调用既有 open_service_provider(use_native=True)、Pmd3AsyncBackend / DtxSessionOwner 与 DeviceNetworkRawAdapter.prepare_transport();后者只开 DTX 服务连接,不进入 NetworkMonitor.__aenter__、不发送 start_monitoring、不订阅或读取事件。不启动 App/Fixture、不中断其他目标、无 Session、无 Raw、无网络流量正控;结果只能是 E3 环境线索,不能提升指标支持等级或代替 Gate C-R1 的一次真实 UI E4。
单次进程串行执行,目标总 wall ≤25 s、源准备 ≤3 s;宿主可见 CPU/RSS 每秒观察,探针 RSS 上限 64 MiB,超时/超限立即终止并记录 partial,不自动重试。所有输出仅含设备别名、路由类别、阶段、成功布尔、稳定异常类名、耗时与资源,不记录设备标识、账号、端点或异常消息/堆栈。无论成功或失败都在 finally 有界关闭 owner/lease;无法确认清理时标为 unknown,不把连接成功外推成源开始、首 Raw、守恒或真机正控。脚本、资源、结果留原私有 r1/;本轮之后仍须重新核 b79 包 SHA、设备 A 和 40 GiB 预留,再决定是否具备真 UI 诊断入口。四项共享 WIP、旧 Session 和网站不动。
2026-10-02 E3 Transport-Only Preflight Result · 仅通道准备成立
在计划限定的唯一一次传输预检中,设备 A 的现时 USB 身份与私有冻结记录一致,b79 ZIP SHA 与冻结值一致;产品侧代码相对 b79 实施提交无新增差异。使用既有 Python 运行时、既有 tunneld-native-rsd 路由和现时 DeviceNetworkRawAdapter.prepare_transport(),网络服务连接成功、owner/lease 清理结束。没有进入 NetworkMonitor.__aenter__,没有调用 start_monitoring,没有订阅或读取事件,没有运行 App/Fixture、创建 Session 或写 Raw。私有结果 r1/device-network-transport-preflight-2026-10-02.json SHA-256 为 b5dcc364a97a5da1e463f51f67c89f13a74ec0a0c0788834d9f3ca05545b7c8e,仅含设备别名与资源/阶段类别,身份形态扫描 0 命中。
监督进程总 wall 4.078532 s(≤25 s),子进程连接与清理 2.945414 s;运行中 RSS 4 次采样峰值 57.914 MiB,子进程退出高水位 58.504 MiB(均 <64 MiB)。这两个 RSS 读数分别保留,不把采样峰值当连续峰值;宿主物理 I/O 峰值 unknown。子进程 exit 0、监督无停止原因、无残留探针进程;gatec-r1-diagnostic/ 仍不存在,旧 Session 未触碰。
裁定范围只到 E3 传输通道准备:它不证明服务已启动、首条设备网络 Raw 已到、字节守恒、目标 App 非零 Tx/Rx 或 Stop→报告时序;也不能倒推解释 b78 三轮的历史准备失败(旧异常类别仍 unknown)。因此暂不凭假设修改网络源或重复预检;下一关键动作仍是取得可信设备侧正控后,按已冻结 b79 单次真实 UI 诊断。若 Fixture 在线签名授权/设备侧操作仍缺,保持 partial,不以这次通道成功代替 E4。Gate C/D/E 和完整 Beta 状态不变,网站不发布。
2026-10-02 Gate C-R1 Diagnostic Evidence Verifier Plan · 只读原始凭据门
在设备侧正控暂缺期间,先准备只读、单轮核对器,避免后续仅凭报告中的 networkBytesBalanced=true 或私有摘要的“正控”布尔值就放行正式矩阵。输入限于该轮封存的 session-D、逐文件清单及同一宿主单调时钟的 round-summary.json;工具不运行 App、Fixture 或产品 decoder,不写输入、不创建 Session、不消耗唯一诊断机会。先流式复核清单的文件集合、大小和 SHA、report seal 与 Raw delivery 摘要,再单遍逐行读取 Raw,按真实 network.device.aggregate.raw 事件类型与设备网络适配器身份双重识别来源,累计 Raw 聚合 Tx/Rx 字节,并分别计数目标进程 Tx/Rx 严格正增量。目标身份仅在私有 Raw 中解析,公开输出只写别名与聚合计数。
networkSourceReceipt 必须在 final report 与 Raw manifest 中逐字段一致,且是 perfowl.network-source-receipt/1:source-observed、连接更新数为正整数、四个字节计数均为非负整数、Tx/Rx 各自的 source 与 aggregate 字节完全相等、networkBytesBalanced is true、networkSourceDropCount == 0;还须有至少一条有效设备网络聚合 Raw、Raw 聚合字节逐方向等于 receipt 的聚合字节,并有目标进程 Tx、Rx 各至少一条正增量。缺字段、布尔值冒充整数、零事件的 0==0、跨方向抵消、报告/Raw 凭据冲突均 fail-closed;报告 coverage 中两项设备网络指标均须唯一对应设备网络源且准备态为 prepared。UI 摘要须显示 Start/Stop 成功、唯一新 Session、同轴 Stop→封存报告观察上界为有限非负值,Core 退出观察上界不超过既有 10 s watchdog;缺观察不能填 0。输出仅为单轮网络凭据是否满足后续 Lead 复核前置,不自行断言真实 UI 来源、设备身份、最终指标支持或 Gate C/D/E PASS。
实现为 tools/validation/gate_c_network_evidence.py,匹配测试覆盖正例、缺源、仅单方向正控、字节不守恒、drop、假布尔整数、Raw/报告不一致、清单篡改与缺同轴上界。复杂度 O(封存文件总字节),1 MiB 摘要缓冲、逐行 Raw、串行 1,预算 120 s / 探针峰值 RSS 64 MiB;单轮预期小于 1 GiB,超时、RSS 超限、路径逃逸或未知结构即停并留下 partial,物理 I/O 峰值不可测时明确 unknown。通过工具测试只属 E2 方法证据,仍待唯一 b79 真 UI 诊断及其后的正式矩阵。按 C2 新增不可回改 HTML 快照、时间线与 handoff;只构建站点,不发布。
2026-10-02 Implementation / Validation Update · 原始网络凭据核对器 E2
按上节计划新增 tools/validation/gate_c_network_evidence.py 与匹配测试;产品代码、Fixture、旧封存 Session、既有诊断脚本和质量公式零改动。核对器仅接收一个已封存 session-D 和同轮 round-summary.json:逐文件校验大小/SHA,Raw 单遍解析与摘要并行完成,交叉检查 manifest.json、foundation-delivery.json、report-seal.json、final report 的 Raw/报告身份;报告、嵌入 Raw manifest 和落盘 Raw manifest 三处的来源 receipt 必须一致,报告 coverage 的两项设备网络指标也必须唯一标明来源准备完成。再按真实设备网络聚合事件类型核验 Raw 字节与 receipt 对账、连接更新数、Tx/Rx 分方向字节守恒、drop=0、设备 Raw 存在与目标进程双向正增量,并核同轴 Stop→报告观察上界和 10 s Core 退出 watchdog。输出不写原始设备/会话/目标身份,仅有别名、聚合计数和失败类别;DIAGNOSTIC_CRITERIA_MET 也只表示现时字节与这一轮的窄凭据前置满足,真实 UI 来源与正式 Gate C 判定仍须另行复核。
专项 24/24 加既有 Gate D 预检 9/9,合计 33/33 匹配测试通过。负例覆盖缺源/准备失败/coverage 缺失、Tx/Rx 单方向缺正控、Tx/Rx 各自不守恒、Raw 聚合字节与 receipt 不一致、来源身份错误、无效聚合字段、drop 非零、布尔值伪装整数、报告/Raw receipt 不一致、Raw 篡改、缺同轴报告上界、Core 超 10 s、符号链接与超长 Raw 行。对一份历史 b78 短轮作临时隔离、只读内容复制的真实规模负控:30 文件现时 SHA/大小、Raw seal/delivery 和 manifest.json 摘要均核通,设备网络源 Raw 0 条,目标进程双向正增量均缺,receipt 缺失;按设计输出 PARTIAL,明确列出两项准备失败、缺 receipt、设备来源/聚合 Raw 缺失与进程双向正控缺失。该负控读取 14,782,844 B,核对 wall 0.306 s、探针 RSS 高水位 21.152 MiB(120 s / 64 MiB 预算内,串行 1);临时副本随运行结束删除,不改旧原件。宿主物理 I/O 峰值 unknown,不据此宣称 I/O 通过。
这批只是E2 验证工具准备:没有启动 b79 App、没有新 Session 或设备网络正控,唯一真 UI 诊断额度仍未使用;Gate C/D/E、六项核心 E4 支持和完整内测版继续 partial。设备侧可验证的网络请求触发或明确的 Fixture 测试签名授权仍是下一关键条件;拿到条件后按原合同只执行一次 b79 真 UI 诊断,不因工具通过而自动扩样。四项他方 WIP 保持原状,网站只构建、不发布。