Skip to content

v6.0.0 roadmap: project sessions, single-writer execution and evidence-safe optional residency #164

Open

Description

@Iviesever

决定与起点

下一主版本定为 v6.0.0:项目会话、可取消的单写者构建,以及有证据支持的可选常驻加速。目标是减少多次构建间重复的发现/解码/身份计算,同时让并发、取消、重启及文件变更下的正确性可验证;不是为了版本号强行加入 daemon/USN。

发布基线是 v5.5.0 08cdc20a9f9380e18132d21a619288224fd07fd4。保留 C++23、Windows/MSVC、单一 cpp/include/src/tests、MQB 自举及既有语义权威。开发阶段 VERSION 保持 5.5.0;最终独立 release PR 才修改 VERSION,合并它会触发现有正式发布流程。

已接受 #154/#155/#156/#157/#159/#160 与更早 mainline 改动保持。#158/#161 是有实测依据的否决,不自动复活。v5.5.0 的 584 对累计证据见 中文记录 / English。其中大型 no-op 的约 38–42% 改善属于此前累计组合,不是本路线的新增收益。两次 common129 cold 的 +5.354s/+6.480s 仍未定位。

当前交接点(2026-09-08,后续必须重新核对仓库)

M1a 已由 #165 完成并合并:合并提交 93b10cf14143f3d5da088a1fe168f4b3d2a027b1,受审阅 head 2dd9943d222ba2977cbe3750dc79085f0c825ec3,源码树 9b606a16e54efae335c0aa30be303bb3d09b464f。VERSION 仍为 5.5.0;没有新的 tag/Release,也没有修改 v5.5.0 发布资产。

合并前完成 Native C++ #693、完整 Native Release/self-host/package #592、Documentation #152、Cross-Stage #173 和独立 ABBA #533。初版真实失败、修复与两份性能原始比较全部保存在 #165;合并后重复触发的 main CI 不能自动冒充这些已完成的 PR 检查。M1a 是 opt-in process primitive:现有 CLI 尚不传取消 token,因此不代表 CLI Ctrl+C、项目互斥、取消传播或 daemon 已完成。

下一轮从 M1b 的真实 MSVC 所有权验证开始:先测试 MSPDBSRV/PDB 共享服务、交叉项目取消及异常收束;再逐步接入取消传播、项目单写者事务和 build/run 分离。不得机械为每次 cl.exe 套可终止 Job。详细平台依据与测试要求见本 Issue 评论。

产品边界

默认一次性 CLI 继续可用,并作为正确性对照;第一版常驻能力必须显式可选。build/run/plan/compdb 共用既有规划与执行语义,不另写一套“daemon 专用构建器”。驻留的是受限的项目状态,不是无限期有效的 filesystem snapshot。最终产物运行留在前台客户端,不能让游戏/交互程序持有构建写锁或被后台工具 Job 错杀。

本版本不扩张为跨平台 CMake 替代品、不增加通用远程构建/网络服务、不引入多目标配置语言或静态库 Modules 支持来分散主线。C++ Modules、Header Units、PCH、DLL/static、参数引擎及现有 inspect/plan/compdb 不能退化。

按依赖推进的路线

M1a — 可取消的进程树边界(#165 已落地)

  • 为 process 请求加入显式、可选的取消能力;默认不可取消 token 保持既有执行/argv/cwd/env 行为,不创建额外 Job/event/callback。
  • Windows 平台使用每次调用独立的 Job + 取消事件;在进程开始执行前完成归属,禁止“先启动再 Assign”的逃逸窗口。取消只影响该请求,不影响同 runner 的其他调用。
  • 明确区分正常退出、取消与基础设施错误,保留已捕获诊断。成功结束确认等待保留的受管成员句柄,且要求清点期间总关联数不变、active 数为零,再排空管道。无法证明覆盖完整时返回错误;错误返回或 owner 死亡不意味着写 lease 可安全转交。
  • 测试预先取消、运行中取消、后代持有 stdout/stderr、根进程先退出、无 capture、并行取消隔离、owner 死亡、句柄生命周期及无取消兼容。不能把内核卡住的终止声明为有确定时限。

源码依据是 v5.5.0 基线的 ProcessSpec 没有取消字段、WindowsProcessRunner::run 对根进程无限等待。先仅加一个父进程锁,在强制退出后未必解决残余工具写入,因此先建立生命周期原语。#165 的初版发现 accounting 归零先于后代句柄 signaled 的真实竞态,已修复并保留立即检查断言;这不是直接启用真实编译器取消的充分证据。

M1b — 单写者项目执行事务与异常恢复

  • 先验证真实工具服务所有权:MSVC /Zi/ZI/FS、MSPDBSRV、PCH/Modules、Debug/Release、并行及跨项目取消,覆盖服务预先存在/由本请求启动。取消 A 不破坏 B;不能通过全局杀服务、静默换 /Z7 或删除 /FS 绕过问题。
  • 提取前台应用中的“构建”与“运行产物”边界;所有实际构建状态写入受同一个物理项目/产物空间 lease 管理,含 discovery/toolchain/scan/compile/link/archive;工具退出确认之前不得释放。
  • 多进程竞争、取消等待、owner 异常退出、过期状态与复用根目录均 fail closed;互斥不能只依靠可复用 PID、超时锁文件或文本路径。明确外部 discovery root/共享 .mqb 的所有权,避免嵌套锁死锁。
  • 不同项目可并行;同一项目先采用易证明的单写者,后续仅在依赖/产物冲突证明充分时细化。现有 paired native subshards 共用仓库 .mqb,必须处理测试构建并发适配,不能靠忽略 busy 错误通过 CI。
  • plan/compdb 不启动服务、不写缓存/锁文件;与写者竞争时采用明确的只读快照/忙碌策略。前台 --run 在写事务完成后启动。
  • dirty/committed 标记与中断后保守恢复有实际故障注入,不能将 Job kill-on-close 误当成磁盘事务或“另一客户端可以立即安全抢锁”的证明。

M2 — 同进程项目会话,先不加 IPC

  • 不可变 request + 显式 session 生命周期;去除对进程全局 cwd、environment、日志路由和 collector 的隐含依赖。多个 session 并行不串状态。
  • 一个 cache/identity/依赖模型;缓存解码结果、toolchain 元数据和 path/layout 数据有独立失效域、代际及有界容量。不要把跨请求 snapshot 直接塞回已有 invocation evidence table。
  • 全图输入包含配置及有序参数、工具/SDK、环境、源码/依赖、缺失候选头、搜索目录、module provider/IFC、库解析输入、输出缺失与物理别名。保留执行后依赖复核及晚期 object/link/archive 观察。
  • 每种复用先通过“同一系列变更:一次性 CLI oracle vs session”差分测试,覆盖删除、重命名、原子替换、同时间戳写入、大小变化、junction/大小写别名、配置切换与外部依赖。

M3 — 变更源与证据连续性(不是 watcher=truth)

  • 先定义可注入的 change-source/cursor/coverage 模型,证明注册、基线采集、事件重放、代际封存及构建中变更如何衔接;事件队列暂时为空不是静止证明。
  • ReadDirectoryChangesW 后端在 overflow/零字节、断连、根目录替换、未知错误、未覆盖依赖时使相关证据失效,回到完整 freshness;不把丢事件当成“未变”。
  • USN 是可选能力增强,不是安装/运行前提;校验 volume/journal ID、cursor range、记录版本及 wrap/recreation。无权限、不支持的文件系统/网络盘保持正确的一次性或全复核路径。不创建/删除/扩大用户卷 journal,不要求管理员。
  • 不声称变化日志能提供任意并发写入的原子快照;对仍有不确定性的集合保留直接复核。复用 probe 的删除必须有等价边界与净减少的证据。

M4 — 可选本地驻留服务

  • 只承载已通过 M1–M3 的同一 session engine;单用户、本机 IPC,无监听网络端口/系统服务/默认自启动。协议长度、消息类型、版本与 request ID 有上限和明确状态机,验证对端身份/权限,限制连接与内存。
  • 启动竞争、版本升级、繁忙、取消、客户端断开、server 崩溃、idle shutdown、遗留 endpoint 都有测试。未知执行结果不能盲目 fallback 再次提交同一写请求。
  • status/stop/显式 off 模式与可观察诊断齐全;stderr、退出码、环境、stdin/运行产物不会因服务化改变。成功加速后再决定 auto 是否有资格成为未来默认,v6.0 不强推。

M5 — 性能、长稳与独立 Release

  • 固定 released v5.5.0 对照,分开测一次性、会话首用/复用、常驻启动/已启动,不把 startup 排除后宣称所有请求更快。20/129/更大 TU、shared/private headers、modules/PCH/static/DLL、发现真命中、修改/删除/修复、冷构建、并发、取消恢复、长会话均覆盖。
  • 首次性能主题应补齐 v5.5.0 cold 尾部的可归因记录:保存构建与环境身份、每次 root/tool 执行/排队/写出信息及对照;固定样本、保留异常、追到可证据解释的层次,不重跑直到绿。不能用未复现或中位数持平证明异常不存在。
  • 每轮独立 PR、精确 base/head、独立 ABBA;变更计数器解释其语义。主性能结论采用 timings-off 外部 elapsed,内部 work 不当作可加 elapsed。原始失败/不利样本与重复运行都留存。
  • 常驻能力放行前,要同时证明有实际代表性的复用收益、有界内存及 idle 成本、无正常一次性路径的实质退化;内存增长/取消/重启 soak 和失效压力测试不可用 no-op benchmark 代替。数字门槛在测量前写入对应 PR,不临时挑有利阈值。
  • 累计比较、双语兼容/迁移文档、长尾风险处置与原始证据完成后,才开单独 VERSION/release PR;再执行精确版本 native/self-host/installer/package/最终 main publication 验证。不得改写 v5.5.0 tag 或既有资产。

有条件候选,不是路线必做项

Object handoff 必须保留晚期 freshness 且真正减少总探测;link-resolution/multi-key discovery 先证明残余需求;cache pack 仍要求隔离后的实际剩余 I/O >=25–30%,包含解码且重叠的 work 时长不能充数。已否决实现只有新证据、新设计才重开,不机械 cherry-pick。冷尾调查和路径/layout 热点可产生小修复,但不能掩盖主线的生命周期/正确性缺口。

实施纪律与交接

本 Issue 是路线与状态的单一入口。每轮在此追加 PR、精确 head、通过/失败证据、合并/否决决定和下一未完成里程碑;代码与 CI 必须重新读取,不能把本 Issue 的叙述当成当前状态。不要用一整套新的审计文档模板或重复路线文件增加负担。当前没有 v6.0 发布授权;每轮只推进一个可审阅主题,版本号保持 5.5.0。

原始平台契约

Activity

  1. Iviesever commented on Sep 8, 2026

    @Iviesever
    OwnerAuthor

    首轮已提交;补充 M1b 的真实工具链边界

    M1a 首轮实现为 #165,head 610c51e35cf9164f1b6d7870177271c0f6d4662e,基于已发布 v5.5.0 的 08cdc20...。当前是 opt-in process primitive,现有 CLI 不传 token;原生/独立 ABBA 正在验证,尚未宣布 M1a 完成或合并。

    M1b 放行条件补充:必须先验证真实 MSVC 共享工具服务,而不是机械给每次 cl.exe 加 token。 Microsoft 对 /FS 与 /Zf 的文档表明,多编译进程的 PDB 写入会经 MSPDBSRV/RPC。由此推导出的设计风险是:正常 CreateProcess 亲缘关系不自动等于独占的业务所有权;不能把一个请求树的 cleanup 误用于其他编译仍依赖的共享服务。

    在传播取消、设计 Job 层次/项目事务时,必须覆盖真实 Debug/Release、/Zi/ZI/FS、PCH/Modules、并行与交叉项目取消、root 正常退出、编译服务已存在/由当前请求启动两种状态,证明取消 A 不破坏 B,且 lease 释放前不存在尚未收束的请求写入。不能通过静默改成 /Z7、删除 /FS、全局杀 mspdbsrv 或放宽 freshness 来过关。

    #165 的 helper 测试不是这些真实工具链场景的替代品;本轮默认 CLI 不受影响。后续会在此追加最终合并/验证记录。

  2. added 2 commits that reference this issue on Sep 8, 2026
  3. Iviesever commented on Sep 8, 2026

    @Iviesever
    OwnerAuthor

    M1b 本轮交付:真实 MSVC 共享服务所有权反证已合并;取消集成尚未获准

    已完整核对本 Issue 及原评论、main/#165、仓库约束与 CI,并完成独立 PR #166。本轮是 M1b 的 evidence-only 子迭代,不是 M1b 完成,也不改写原路线。

    精确状态与决定

    • Base:93b10cf14143f3d5da088a1fe168f4b3d2a027b1(feat: add opt-in request-owned process cancellation for v6.0 sessions #165 合并提交)。
    • 最终验证 head:c47d75833a15d62905cda45fb608bb77da6b209e。
    • 已合并 main:7af2d9ccad13b9bcee916c9caaa903ad45d76d20,使用普通 merge、expected-head 校验,无保护规则绕过。
    • 候选、PR 测试合并提交 c5e2da93040c7d676fd198fc3b70b3572b00d415、最终 merge 的 tree 均为 1de96aa0fe01fcde71615deefb624dbb37af4a4e。
    • 接受这套证据采集代码;否决将现有 request-tree Job 直接用于全部真实 cl 调用的取消策略。
    • 仅新增三个文件、680 行:cpp/tests/platform/windows/msvc_service_ownership_probe.cpp、tests/native/collect_msvc_service_ownership.ps1、.github/workflows/msvc-service-ownership.yml。生产源码/头文件、原有 79 项 native 测试清单、benchmark harness、cache/freshness、CLI 均未修改。
    • 合并后实际读取 VERSION = 5.5.0;没有修改历史 tag、Release 资产或正式发布。

    真实结果:正常结束也会误杀 B 正在使用的服务

    实际工具链 MSVC 14.51.36231 / Hostx64-x64,Windows 10.0.26100、runner image 20260824.214.3。固定 42 场景:/Zi Debug、/ZI Debug、/Zi Release、PCH Debug/Release、Modules Debug/Release × 服务预存/A 启动 × A 非受管正常/受管正常/受管取消。A/B 输出目录和 PDB 分离,但共享一个仅用于夹具隔离的端点。

    服务来源 A 结束方式 原服务存活 B 首次 compile/link/run 成功 单独恢复编译成功
    A 外预存 非受管正常(对照) 7/7 7/7 7/7
    A 外预存 受管正常 7/7 7/7 7/7
    A 外预存 受管取消 7/7 7/7 7/7
    A 启动 非受管正常(对照) 7/7 7/7 7/7
    A 启动 受管正常 0/7 2/7 7/7
    A 启动 受管取消 0/7 2/7 7/7

    42/42 完整采集,0 基础设施/对照失败,14/14 非受管对照通过。 但 A 启动的服务在 14 次受管结束中全部死亡,10 次 B 首次构建失败;其中 9 个场景出现 C1090 PDB API 错误,一个 /ZI 场景出现 C1001。这些原始失败没有被恢复编译覆盖,失败场景的 link/run 未执行也未计为通过。另有 4 次服务死亡但 B 首次构建成功,同样保留,不挑选有利于论点的数据。

    因此已得到真实跨项目反例:进程祖先关系不等于独占服务所有权;危险不只存在于 cancel,也存在于受管正常结束清理。 当前 CLI 继续不接入 M1a token。

    不把观测缺口包装为安全证明

    42/42 都观测到 B 编译进程存活,但这不证明取消瞬间有 RPC 正在执行。Restart Manager 的 PDB 资源查询只在 14/42 场景记录到与保留 HANDLE 对应的服务 PID + 创建时间;其余 28/42 缺少该维度的身份物证,未标成隔离成功。五个首次失败场景同时具有这一准确资源身份观测。

    夹具使用 _MSPDBSRV_ENDPOINT_ 隔离外部服务,并由外层 Job 限定 A+B 整个实验;这是实验方法,不是将未公开端点机制作为产品所有权契约。尚未验证未改动的默认端点、直接 per-cl 取消、RPC 完成/残留写入、owner 异常退出和写租约恢复。所有记录仍明确 safe_to_integrate_cancellation=false、safe_to_transfer_write_lease=false。

    已完成的独立验证与不利性能证据

    • Native C++ #696 / 34208933311:Debug 构建、全部分片、ambient/options/runtime、include/default-library/__has_include freshness、side-output repair 和 gate 通过。
    • Native Release #594 / 34208933308:Stage 0、全部 Release 分片、完整 self-host、runtime-only package 和实际打包产物验证通过;publish-release skipped。
    • Documentation perf: deduplicate target-wide filesystem evidence #155 / 34208933318 通过。
    • Ownership refactor: add first-class incremental link state #2 / 34208933370:上述 42 场景完整采集。
    • 独立 ABBA #537 / 34208933416:上述精确 base/head 各自构建,19 场景 × 4 对,共 76 对,AB/BA/AB/BA。72/72 instrumented pairs 的 counters、breakdown、compile/link/archive hit/miss 完全相同;另外 4 对 timings-off 的计数不可用,未填零推断。

    外部 timings-off no-op 的 paired median −0.534 ms / −4.33%,MAD 0.210 ms,四对中的最大不利差值 +0.321 ms,未触发事先声明的“同时超过 +1 ms 且 +10%”门槛。其余 18 场景是 instrumented 时钟,不冒充外部 elapsed。本轮没有生产代码变化,不记任何性能优化收益,也不宣称零开销。

    不利证据仍保留:cold 中位差 +35.231 ms;scale-no-op 单对 +22.491 ms/+66.96%;link-only 单对 +32.393 ms/+61.75%;scale-cold 最大差 +138.528 ms。有利的 build-run 单对 −155.630 ms 也保留;未隔离这些尾值的成因,未假定是噪声而删样本。原路线的 v5.5.0 历史 cold-tail 债项依然未关闭。完整 19 行数据在 最终 review。以上为已完成的 PR 精确树验证,不把合并后新触发的 push CI 冒充已经完成。

    原始证据位置与保留范围

    • Ownership artifact 10049245800:4,876,938 bytes,SHA-256 6819ca85460e4b649ff5f0261e78613b38d572c80570ff4957d47851297d33fa。2,140 项输入/argv/诊断/JSON;503 项生成二进制的 post-case 哈希。二进制本体未打入诊断 ZIP,恢复后哈希不是取消瞬间快照。
    • ABBA artifact 10049273574:35,360 bytes,SHA-256 b0c6f7c980dd1e0f0bd7e4ddde15f0e1a594c2a0fd3eabfa98099cb6f1b495e2。内含所有 paired samples 的 comparison JSON,不是 stdout/stderr 归档。
    • 初始 head be05806... 的四条长运行因代码更新取消;没有当作通过。本轮修正了 /Zi 与 /ZI 输出目录大小写碰撞,以及基础设施错误的采集判定。初始 ownership artifact 10048948921 仍保留并核验:1,842 bytes,SHA-256 c16f7c44c14aca0e5dda3b9f7a2f52a378e07ad185a59ce16657bdd3932dae0e,只含 identity 和 build argv,因为取消发生于探针构建阶段、尚无实验观测。没有 same-head repeat-until-green。
    • Actions artifact 保留期为 30 天,不声称永久保存;对应原始 ZIP 已在当前交付会话另外保留。

    下一接手点(不扩展本轮主题)

    从 7af2d9ccad13b9bcee916c9caaa903ad45d76d20 继续 M1b。下一独立 PR 优先在一次性干净 Windows 环境验证未改动默认端点,明确共享服务与请求私有进程的不同生命周期,并用实际在途使用/残留写入证据评估最小取消边界;不能把本轮“预存服务没有被 A 的 Job 杀掉”外推成完整取消隔离。

    之后再按原 #164 小步接入取消传播、单写者项目事务及 build/run 分离。取消错误、父进程退出、服务重启或一次恢复编译成功,都不能成为移交写锁的证明。项目会话、可靠失效证据、可选常驻服务与累计性能/发布验证保持原有先后;本轮不提前开启这些阶段,最终 VERSION/release PR 和正式发布仍单独处理。

  4. Iviesever commented on Sep 8, 2026

    @Iviesever
    OwnerAuthor

    M1b 交接更新:#167 已核验合并,下一单主题 PR #168 已发布

    本次重新核对真实仓库后发现 #167 已在进行中,因此接手审阅它,没有上传上一会话那份不同的未提交补丁,也没有创建重复的默认端点 PR。

    #167 已完成并合并

    • 精确 base 7af2d9ccad13b9bcee916c9caaa903ad45d76d20,接受 head 88db6362c7ceb43926d1b4dbb96f52f53cbc67f1。
    • 已使用普通 merge 和 expected-head 合并至 a9792704e0b2f040206974f717cc103d2a1e3c71。候选、PR 测试合并和实际 main 的 tree 均为 e9aa95e6cbf9890ed122be7939be1f3bc366a632。
    • 完整最终审阅及原始证据 已记录:Native C++ #699、完整 Release/self-host/package #596、Documentation perf: bound compile cache reads to one opened stream #157、Cross-Stage test: verify real target admission preserves cache barriers #179、默认端点 refactor: add first-class incremental link state #2、private feat: add target output and structured run argv #4、独立 ABBA #540 均完成;publish-release skipped。
    • 默认端点 56/56、private 42/42 完整采集;两种模式各自的 14 个非受管对照全部通过。默认端点下 14/14 自然排空场景成功保留原服务、等待 A 编译句柄完成、抑制待办 TU 并让 B 首次 compile/link/run 成功。
    • 反证没有消失:当前 head 的按祖先树清理仍使所有 28 次 A-started 受管结束杀死原服务,并留下 5 次 default + 3 次 private 的 B 首次构建失败。原始失败均保留,不被恢复编译覆盖。
    • 观测缺口仍明确:精确 B PDB 资源所有者记录仅为 default 10/56、private 2/42,14 个 drain 场景为 0/14。空集合或编译进程 signaled 不证明所有共享服务写入终止,不能释放项目写租约。自然排空 fixture 的 request-to-result 为约 2.869–9.270 秒,也不是有界取消延迟承诺。
    • 独立 ABBA 76 对,72 对 instrumented counters/breakdowns/hit-miss 完整相等。唯一外部 timings-off no-op paired median −0.523 ms / −4.27%,未过预先声明的退化门槛;但其单对最大不利差值 +9.040 ms。其他 instrumented 不利样本包括 scale-cold +3.738 秒、scale-single-tu 最大 +517.648 ms、discovery-cold 中位 +216.967 ms,全部保留,不按“噪声”删除。不声明新增性能收益,也不关闭历史 cold-tail 债项。
    • 初始 head 两个 /ZI drain 对照的 C1128 失败及原始 artifact 已独立读取并保留;修复是大对象 fixture 的 /bigobj,不是同一 head 重跑直到绿。

    决定:接受 #167 的默认端点/自然排空实验代码;继续否决机械 per-cl/request-tree 终止策略。不标记 M1b 完成。

    下一迭代 #168 已发布:显式调度层停止派发与自然排空

    • Base a9792704e0b2f040206974f717cc103d2a1e3c71。
    • 提交 head 6b7a7759e2b47d9a993f9bb458845804ecc06275,tree 00702e4c6b7587414b5bbc520bcc3fbba01c28fa。
    • PR feat: add opt-in scheduler admission stop and natural drain #168,分支 codex/v6-scheduler-admission-stop,4 文件、433 行纯新增。新增 run_with_admission_stop(...),关闭待办 admission 后等待所有已派发 callback 完成;保留异常、区分外部停止与 callback false,并隔离并行批次。
    • 原三个 run(...) 函数体和所有生产调用点不变;默认不可停止 token 委托原实现。不把 token 传入 ProcessSpec,不添加 Job、不终止编译器、不接 CLI Ctrl+C、不授予写锁转交权限。没有新增生产 TU,原 79 项 native 清单、manifest、benchmark、freshness 不变。
    • 本地 GCC14/C++23、严格警告、ASan/UBSan 的实际 scheduler + 全部旧/新 scheduler tests 通过;只对平台资源观测和性能计数用了明确披露的 Linux-only shim。这不是 MSVC/完整 MQB 验证。 部分 worker 启动后再失败的故障注入及真实编译器通过新 API 的验证尚未完成,未声称覆盖。
    • PR 已在新 head 测量前写好完整正确性、真实工具回归与独立 ABBA 门槛,当前 仅发布审阅,尚未批准合并。临时 perf 标题仅触发既有独立测量,非提速宣称。

    VERSION 一直保持 5.5.0;未修改 tag/历史资产或正式发布。 下一边界仍按本 Issue:调度层能力的真实编译传播与异常所有权证据,再到单写者事务及 build/run 分离。项目会话、可靠失效证据、常驻服务和最终发布不提前跳过。

  5. Iviesever commented on Sep 8, 2026

    @Iviesever
    OwnerAuthor

    独立证据加固 PR #169 已发布(尚未批准合并)

    重新核对实际 main a9792704e0b2f040206974f717cc103d2a1e3c71 和正在推进的调度器 #168 后,没有重复实现或混入其改动。本次写入通道已恢复,已将上一会话未提交的证据加固补丁进一步补齐可执行故障测试,发布独立 Draft PR #169。

    • 精确 base:a9792704e0b2f040206974f717cc103d2a1e3c71;提交 head:3d80ee34bb086f46e157098a350259767561787f。
    • 四个 test/CI 文件,406 additions / 29 deletions。拒绝被工具链环境覆盖的默认端点而非重置它;在可能抛错的 postflight 前保存诊断;严格核对必需及实际工具结果、原始退出码、场景身份和清理字段;清理未证实时不再读取/哈希二进制。
    • 新增实际 PowerShell 验证函数的 126 个合成场景(98 正常形状、27 损坏记录拒绝、1 原始 managed B 失败保留);另有 C++ 七项环境/诊断自测。正常记录通过与损坏记录拒绝都必须证明,不能只靠 fail closed 导致全部拒绝。
    • 本地仅 GCC14/C++23 strict+ASan/UBSan 的七个抽取辅助测试及旧策略负向回归已运行;无本地 MSVC 或 PowerShell 验证。对应 Windows 自测、真实 default56/private42、完整 native/self-host/package 和独立 ABBA 已在 PR 中预先声明门槛,结果尚待实际检查,未借用 test: validate default MSVC endpoint and natural-drain cancellation boundary #167 绿灯。
    • 生产代码、调度器、原 79 个 native executable 清单、manifest、benchmark、CLI/freshness 和 VERSION5.5.0 均不改。未修改历史 tag/资产或正式发布。

    #168 继续作为独立调度层主题审阅;#169 不授权 CLI 取消、RPC/残留写入完成或写租约移交,不标记 M1b 完成。下一交接和合并/否决判断将在精确源码验证后追加,不重写原路线。

  6. Iviesever commented on Sep 8, 2026

    @Iviesever
    OwnerAuthor

    M1b 本轮已交付并合并:#169 证据失败路径加固

    上一会话未提交的 guardrails 已补齐实际 Windows 验证并作为独立 PR #169 发布、审阅、合并;不是继续只交付补丁。本轮没有重复或混入调度器 #168。

    精确状态与决定

    • Base:a9792704e0b2f040206974f717cc103d2a1e3c71。
    • 接受 head:3d80ee34bb086f46e157098a350259767561787f。
    • 实际 main / merge:361780d580b9be17548f3873f802b3df5deb7279。
    • 候选、native PR test-merge 1da47599c2c0206176d30f07da530ff469b3ea6f、最终 merge 的 tree 都是 c9cae9887556185805739ffb99211529e60082a6。
    • 使用普通 merge + expected-head 校验,未绕过保护规则。合并后重新读取 VERSION,仍为 5.5.0;没有变更历史 tag/资产或正式发布。
    • 最终源码/验证审阅。接受证据加固,不标记 M1b 完成,也不授权 CLI 取消或写租约转交。

    代码交付

    四个 test/CI 文件,406 additions / 29 deletions:现有 MSVC 探针、采集器、default-endpoint workflow,以及新增 tests/native/verify_ownership_evidence_contract.ps1。

    默认端点遇到工具链覆盖、空赋值或 removal entry 直接拒绝,不先重置成看似干净的环境;已捕获诊断和基础设施 native code 在可能抛错的 postflight 前输出并刷新;采集器核对必需及实际工具记录、原始退出码、严格身份/类型/安全字段;默认清理未证实时停止后续场景及二进制读取/哈希。

    没有生产源码/头文件、manifest、原79项 native executable 清单、benchmark、调度器、CLI 或 freshness 改动。七种 MSVC profile、/Zi或/ZI、/FS、固定24k A/6k B输入和大型A专用/bigobj都保持。新测试并非新产品取消策略。

    已完成的精确源码验证

    全部为该 head 首次运行,没有 same-head 重跑直到绿。合并后新触发的 push CI 不冒充上述已完成的 PR 源码树验证;标题/ready切换后跳过的性能 job 不替代实际 #544。

    不利数据与未证实边界仍保留

    真实矩阵各自14个非受管对照通过,14个默认自然排空对照通过。但是按祖先树受管清理仍杀死全部28次A-started原服务,保留 3个default + 2个private的B首次C1090失败,后续98次恢复编译成功不覆盖首次失败。

    准确B PDB服务身份只在default 8/56、private 3/42 出现;drain的B 3/14、A-at-request 9/14。空A-after集合不证明残留写入已经停止。自然排空request-to-result约 4.570–12.327秒,包括捕获/诊断开销,不是有界取消保证。所有安全授权字段仍为false。

    外部timings-off no-op paired median −0.723ms/−6.29%,MAD0.867ms,最大不利+0.895ms,未触发预先声明的“同时>+1ms且>+10%”中位门槛。不声明提速或零开销。 Instrumented public-header和link-only均4/4更慢,中位分别+17.561ms/+14.74%、+32.838ms/+47.77%;modules-cold最大+582.944ms。所有不利/有利样本保留,成因尚未隔离,不当作噪声删除;历史cold-tail债项(含#167的+3.738秒)未关闭。

    可复核物证

    完整真实矩阵审阅;全部19行ABBA;合成检查与LF/CRLF审计纠正。首次外部哈希断言错误是LF/CRLF比较不一致,已用精确CRLF重建核对并保留,不涉及源码修正或CI重跑。

    已下载并独立核验原始ZIP SHA-256:

    • contract 10054039934:bc6c1af7dd8452adbeac7710cbcdd5d85cbd0cb4931fb932772984ef68629e5e
    • default 10054532474:40379c8325184e6e663ceced0f277c40ce35ea28e62b03b97ef79270c9ffcb8d
    • private 10054513092:6a86db0d6c8ddba81a3ba3f908f35fc578215bec06b6cd4d872c512f950e1665
    • ABBA 10054320263:f2cd3d6b05a0f95e32e44254b0902d04ea0492da1fe44077cabf4d54eb357854
    • exact input 10054310818:d8ce6491df8ad8e5284e4e4ee19d77e5a5b319e91aec79f7f297fad9eb1020b1

    诊断ZIP排除生成二进制本体,只保存post-case哈希,不是取消瞬间快照;单独的exact-input ZIP包含两份实际预构建可执行文件,其哈希与observer provenance一致。Actions保留期30天,当前交付会话另保留原始ZIP、精确代码、patch、复算脚本和日志。

    下一接手点

    以 361780d580b9be17548f3873f802b3df5deb7279 为新main继续。#168仍独立、未合并:本次已完整审阅其源码、独立复算旧base/head ABBA,并核对default56/private42原始artifact;未发现新的源码阻塞,但未把这些旧base结果当作更新后的组合树验证。#168交接评论记录了7个default/8个private原始B失败和准确artifact哈希。

    下一步收束#168在最新main上的源码树/必要CI与合并判断,之后使真实MSVC自然排空夹具实际调用该scheduler API;目前夹具尚未调用它,不能把通过的drain实验冒充生产取消传播。部分worker启动失败、异常owner及外部writer权威仍需证据,之后再按本Issue接单写者事务和build/run分离。会话、可靠失效、常驻服务及最终VERSION/release保持原路线顺序,不提前跳过。

  7. Iviesever commented on Sep 8, 2026

    @Iviesever
    OwnerAuthor

    #168 已按更新后的 base 收束并合并;下一独立 PR #170 已发布

    先完成前一交接点,不把旧 base 验证挪作新组合源码的证据:将 main #169 的四个独立文件合入 #168 分支,保留调度器全部源码与历史,得到 head df2299cf7206dc50a0d83f2c0b34116ad7fd11eb,精确 base 361780d580b9be17548f3873f802b3df5deb7279。

    #168 接受与实际 main

    已普通 merge(expected-head 校验,无保护绕过)到 main d01bb920e030202c33639f59139491ac7f49117c。候选、PR test-merge c7d6a7331218c96d490f5f1fddcfbce5bd226ce5、实际 merge 的 tree 均为 ff277482bb55b3c4cb6e6665c75da1b849e620e9。合并后重新读取 VERSION5.5.0,未改 tag/历史资产或正式发布。

    完整最终审阅与全部19行ABBA。新head首次运行 Native Debug#705、完整Release/self-host/package#600、Documentation#161、Cross-Stage#185、default56/private42+126合成契约、独立ABBA#547均完成。实际scheduler测试在Debug job102063095038及Release job102062680076的subshard3/8均编译/链接/执行PASS;publish-release跳过。没有同head重跑直到绿。

    ABBA#547共76对;72对instrumented counters/breakdown/hit-miss一致;外部timings-off no-op配对中位−0.025ms/−0.11%,未触发原先声明的同时>+1ms和>+10%门槛。不宣称提速或零开销:cold4/4慢、common-header no-op3/4慢及全部不利/有利样本保留,历史cold-tail债项不关闭。原始ZIP10056074034 SHA256 e838faa8b1daba07c37ceb8f82ca2ef81a048df394e9549ec228c7f66eff54e2。

    真实矩阵保留default2个/private1个B首次失败(C1001/C1090),全部28次A-started受管结束仍杀死原服务;恢复编译不覆盖首次失败。全部14个direct-drain对照通过,但这些夹具尚未调用新增scheduler API。原始default/private ZIP10056245910/10056194181已独立核验;完整限制和哈希在审阅中。初始layout失败、修正和旧base ABBA#543不删除、不当作新head证据。

    下一项已实际提交:#170

    独立 Draft PR #170,精确base d01bb920...、提交head f52a8adc170c91910f497ec12dbda780920d7f4a、tree ebea0dbe0bd5e2339202860fc4582c74998e7bb9。仅四个fixture/collector/contract/workflow文件,156 additions/15 deletions,不重复改scheduler实现或生产调用者。

    新增14个真实 scheduler-drain 场景,实际调用 BoundedWorkScheduler::run_with_admission_stop,保留原56个默认端点场景作为独立对照;默认总数70,private仍42。A一项在途编译、一项pending;夹具桥接事件到API token,在途cl自然完成、pending不得派发,B继续原始compile/link/run。检查真实返回summary、原始A编译结果、取消转发时callback仍活动及A/B句柄观测。token不传ProcessSpec,10ms桥接等待不是取消时限。

    150个合成证据契约、default70/private42、完整native/release/self-host/package及独立精确base/head ABBA门槛已在PR测量前声明。当前仅本地GCC严格语法/静态检查通过,没有声称本地MSVC或PowerShell运行;#170尚未批准合并,不能借用#168绿灯。

    #168只完成opt-in scheduler原语;#170只拟验证其真实工具夹具调用。都不是CLI Ctrl+C、RPC完成、外部writer穷举或写lease释放证明,M1b仍未完成。部分worker启动失败、异常owner/清理未证实和事务权威仍是后续边界,随后再按原路线接单写者事务与build/run分离。

  8. Iviesever commented on Sep 8, 2026

    @Iviesever
    OwnerAuthor

    本轮交付完成:#168 已合并;#170 真实 API 夹具验证通过,但否决本轮合并

    延续前一条交接,不改写路线。先收束了 #168 更新到 #169 后的精确源码验证并普通合并,再发布独立 #170 做真实 MSVC 对 scheduler API 的调用验证。两项没有混为一个 PR 或共用性能结果。

    仓库实际状态

    本轮新增代码与真实结果

    #170 仅四个 fixture/collector/contract/workflow 文件,157 additions/15 deletions。不改生产源码/头文件、scheduler 实现、manifest、native executable 清单、benchmark、CLI 或 freshness。

    原 default56 和 private42 保留;新增 14 个 scheduler-drain,default 总数70。A 实际调用 BoundedWorkScheduler::run_with_admission_stop(2,1,...),取消只关闭回调接收,已启动的真实 MSVC 编译自然完成,pending TU 不再派发;B 原始两项编译/链接/运行不受这个 admission token 终止。既有直接排空对照继续保留。

    14/14 新 API 场景通过:实际 summary 的 worker_count/started_count 都为1,三个 stop 字段为true,取消事件确实在callback活动期间转发,bridge_error0,无callback/scheduler异常;原始A编译0、pending未派发、A/B真实进程重叠、A句柄退出、原MSPDBSRV存活、B首次compile/link/run0。独立比较了与直接对照的 56份源文件字节和70份仅归一化case目录的argv,输入保持一致,不是改工作量换取通过。

    这只弥补了“真实夹具尚未调用新API”的缺口,范围是A单worker、一项在途/一项pending。不宣称多worker真实取消、CLI Ctrl+C、全orchestration传播、owner崩溃或写lease安全。callback活动包含compile/capture/diagnostics,不等于RPC在途证明。两个安全授权字段仍为false。

    正确性和精确源码验证已完成

    修正后的head首次执行:Native Debug #708/34229725695(全部分片及freshness/runtime/parameter等)、完整Release/self-host/实际package验证 #602/34229725662、Documentation #163/34229725639、Cross-Stage #188/34229725648 全部通过;publish-release skipped。

    Default #8/34229725685:150/150合成预期匹配(113接受/37拒绝)、7项C++helper自测、2项拒绝检查、真实70/70完整;Private #10/34229725690:42/42完整。所有非受管对照和14个旧direct-drain对照通过。精确预构建两份exe的实际hash与observer provenance匹配。

    不利结果保留:default 3次原始B失败(C1090/C1001),private 1次(C1051/C2471);原有受管策略在28次A-started结束中仍全部杀死原服务。后续112次恢复编译成功没有覆盖首次失败。B资源身份只在9/70default、5/42private出现;新scheduler-drain的A-at-request8/14、B1/14。空A-after集合不证明外部writer已经收束。新场景request-to-result约4.319–10.005秒,含诊断/捕获开销,不是取消时限。

    为什么 #170 不在本轮合并

    首次head f52a8adc... 的独立外部timings-off no-op,配对中位 +1.6946ms/+13.7988%,实际触发预先声明的“同时>+1ms且>+10%”门槛。核对了原始4对、两种顺序、时钟及语义计数,没有定位原因;没有删掉不利数据当作噪声。

    该head还在probe编译阶段报C2676:mutable字符串调用被ADL选为std::quoted。已只修正为(quoted)(callback_exception)并补说明,保留初次default/private构建失败artifact,初次真实矩阵均0观测。该代码修正解释了编译失败,不解释MQB计时异常;初次Release因真实源码更新取消,未计入完整验证。

    新head独立ABBA #550/34229725755 实际完成19x4=76对,72对instrumented counters/breakdowns/hit-miss一致,4对外部计时counter不可用。新外部no-op中位 +0.14575ms/+1.6312%,本次未越门槛;但这不能倒推首次异常消失。新不利尾值:scale-cold +3946.398ms,single-TU +1076.118ms;scale-single-TU中位 +87.006ms/+84.69%。没有声称这是测试代码导致的因果回退,也没有声称它无害。缺少性能那一对实际exe及逐次外部span/OS物证,归因仍不足。

    决定:功能夹具结果接受为限定范围证据;#170 本轮不合并,保持Draft,性能调查未闭环。 不修改门槛,不因后一组更小中位数自动放行,不回退已独立接受的#168。没有同head重跑直到绿,历史cold-tail债项不关闭。首次异常及新head完整19行表均保留。首次MAD文本笔误已在最终审阅更正为0.91645ms,复算结果和门槛判断不变。

    物证与下一接手点

    已下载核验原始ZIP:default10057916488 SHA256 5081cd6141a1792e7c9efeebb3241b21e562a4f69a185ffdc078ce73ef19d839;private10057682494 cfa647a2a9472a11477320e1a7fa2e76b39284cbe99668ea6444274342f79862;新ABBA10057522616 f2479c1e3d740d096b32f3380144c76bfb780297af118703644733cd5358dcd9;首次ABBA10057161311 f751e428a0d19a0ab28e18fafdb802512096b3010500a85e8801aa5089d04126。其他contract/input/build完整hash和初次失败在审阅/本次交付包。诊断ZIP只保留post-case二进制hash,不冒充取消瞬间快照;单独input ZIP保留两份observer输入exe,不能当作performance binary pair。Actions保留30天,本次会话另留原始ZIP、精确代码和可复算脚本。

    下一独立主题先做固定预算的性能归因:测量前声明样本和判定,保留实际benchmark二进制/环境身份和逐次外部记录,配合A/A校准与A/B,而非重复跑到绿;历史缺失物证不能事后伪造,后续任何风险接受必须明确留下这个缺口。先据此收束#170,再推进真实多worker/失败传播与typed取消结果,之后才是单写者事务和build/run边界。M1b仍未完成,M2–M5原路线顺序与最终VERSION/release独立处理要求不变。

  9. Iviesever commented on Sep 8, 2026

    @Iviesever
    OwnerAuthor

    下一轮已实际提交:独立 PR #171 固定预算性能归因

    main仍为d01bb920e030202c33639f59139491ac7f49117c;#170仍是Draft/HOLD,head283b50733601926840fdcd0474d10a06a4f75c7d,没有借此修改或放行取消/写lease。

    新Draft #171 基于上述main,新增可选调用记录器、固定AA/AB采集器、实际helper契约测试和专用workflow。产品源码/头文件、manifest、scheduler、CLI/freshness和VERSION5.5.0不改。原fixture输入/调用顺序/cache断言保留。

    调查预算在运行前已写入#170评论及#171:固定runtime A=d01、B=283b,8个AA对+8个AB对=32份完整报告、672次调用记录,交错contrast和执行顺序;AA两侧用同一路径同一A二进制,不扣除AA波动、不挑样本、不反复跑到绿。保存实际二进制、source/build/runner身份、白名单环境、原始合并文本输出/退出码、四个外部单调时钟边界。18个场景仍启用MQB内部timings,只有timings-disabled-no-op真正timings-off;新的observed外部时钟单独标记,不冒充历史无observer样本。缺失的历史OS trace不能重造,未实现的子进程PID/CPU/ETW不填成已知。

    同时#171还运行独立PR base/head、observer OFF的原19x4ABBA,与固定调查pair分开。原同时>+1ms且>+10%外部no-op配对中位门槛不改;#170的首次越线和历史cold-tail债项保留。

    初版head0a747bac...的Windows契约测试在inactive-observer兼容测试处真实失败:测试错误地让旧版wildcard Push-Location接受[]目录,之前25项检查和原始记录保留。固定调查被依赖门禁跳过,尚无AA/AB新调查数据。只修正测试:保留旧版拒绝[]目录的限制作为负向断言,再用普通含空格目录检查legacy兼容;observer对literal路径的测试不删。新head 928a5b9e3ce415c1741c441ee7702d4736291ac2 等待自身实际验证,未做同head重跑。初版artifact10060163305与日志保留。

    本轮目标是补齐可归因外部记录和校准,不声称已经解释#170异常;最终合并/继续HOLD决定将以真实结果追加。M1b和最终VERSION/release边界不变。

  10. Iviesever commented on Sep 9, 2026

    @Iviesever
    OwnerAuthor

    恢复实际交接状态并开始单主题:link-cache 保存子区间

    本次重新读取确认:#171 已合并,main为 c8c8c0172850ff11351b63d5bd1507a7f57ac01e,tree af6b293f04521575a2bdbd2fc31bc156b676d0c8。上次聊天最终答复仍称main=d01、未交付归因代码,与实际仓库不符;以后以上述真实状态和#171最终审阅为准。#170继续Draft/HOLD,head 283b50733601926840fdcd0474d10a06a4f75c7d;此次不修改它或放行CLI/lease。

    #171 已完成固定AA/AB的32份报告、672次调用记录,保留同二进制AA的长尾并将部分开销缩到link/cache-save范围。它没有证明具体磁盘/杀软/OS根因。本轮从已合并的观察工具继续,不重复实现AA采集器。

    本轮单主题:在既有timings收集器中,为 LinkCacheFile::save 增加序列化、目录/临时路径准备、整个stream生命周期、payload write、flush、安装替换的子区间。stream包含payload/flush与隐式close,安装包含原有失败清理;不改变文件格式、顺序、错误分类、写入次数或freshness,不把flush当作durability证明。只加观察,不声称性能优化。

    测量前固定验证:完整native Debug/Release、自举和实际package;独立原19x4精确base/head ABBA,72对instrumented语义计数一致,timings-off外部no-op原门槛(同时>1ms且>10%)不改;另行固定 8份候选完整fixture报告=4个同路径同二进制AA对、168次调用记录,保留实际binary/source身份、原始输出与嵌套子区间,检查144个instrumented样本的包含关系和零写入场景。不得把嵌套work相加成wall elapsed。任何异常均保留,不自适应增加样本或同head跑到绿。

    分支 codex/v6-link-cache-write-subspans 已从精确main建立。VERSION保持5.5.0,历史tag/资产及正式发布不动。本轮不提前推进单写者事务或daemon;最终接受/拒绝决定以实际新head验证追加。

  11. Iviesever commented on Sep 9, 2026

    @Iviesever
    OwnerAuthor

    本轮已交付 #172;因真实默认端点对照失败,保持 Draft/HOLD,不合并

    先纠正接手状态:#171 已实际合并,本轮重新读取的 main 仍是 c8c8c0172850ff11351b63d5bd1507a7f57ac01e,不是旧 d01。#170 继续独立 HOLD;没有重复开发 #171 的 A/A 观察器。

    精确代码与决定

    独立 PR #172,base 为上述 c8;head 6386cc2be1207c25692e96c1fe160755f6271edc,tree 14ed3d293e64593e3b213cccb57067df59f6bc2b。Native test-merge fd769b90b9ad80c4af1f5978603486c47a55d062 的 tree 和精确父提交已核对,且从 CI 源码归档独立重建了完整 base/head Git tree。

    六个文件、429 additions/8 deletions:在既有 LinkCacheFile::save 中增加序列化、准备、完整 stream 生命周期、安装替换四个子区间,以及嵌套在 stream 内的 payload/flush。生产改动是诊断插桩,不是纯测试改动,也不宣称零开销。保留原文件格式、读写顺序、错误诊断、cache counters、manifest、79项 native executable 清单和 freshness;未改原 benchmark/ABBA。补齐字节一致性和真实文件失败路径 native 测试、9项合成契约与固定4个AA对的采集。

    最终完整审阅、19行ABBA与不利证据。本轮不批准合并,PR保持Draft。 VERSION5.5.0、main、历史tag/资产及正式发布均不改。

    实际验证:14条成功,1条失败

    Native Debug #712/34307133464、完整 Release/self-host/实际package #605/34307133347、Documentation#166、Cross-Stage#189、Reporting#8及相关incremental/PCH/module/build-plan均成功。扩展的link-cache测试在Debug job102327478334、Release job102327521691确实编译/链接/执行通过;publish-release skipped。

    子区间研究 #1/34307133260:9项合成预期全部匹配;固定 8份报告、168次调用、144份插桩子区间记录完整,72个未保存样本为零,72次实际保存计数正确,72对AA语义计数一致。保留实际测量exe与完整源码归档。

    独立原ABBA #556/34307133279:精确base/head分别构建并实际测量19×4,72对instrumented counters/breakdowns/hit-miss一致;4对timings-off计数不可用。外部no-op配对中位 +0.9536ms/+8.0065%,MAD1.49965ms,最大+3.2324ms,3/4更慢;未触发原先“同时>1ms且>10%”门槛,但接近门槛,不当作零成本证明。

    阻塞项不是可忽略的错误策略反例

    Default Endpoint #9/34307133230失败:56个记录齐全,但 pch-release-A-started-drain 的 A 首次编译退出2,原始stdout为 C1041无法打开A/compiler.pdb。实际argv已经有 /FS /Zi /O2 /MT /bigobj /Yucommon.hpp,A/B的PDB路径不同。此前PCH创建和warm编译均退出0。A/drain.json保留first_compile_exit2,root退出1,lifecycle/drain_control均false。原始诊断审阅。

    原服务存活、B首次compile/link/run成功、pending被抑制、后置清理成功,都不能把A失败算成成功排空;后续恢复编译属于B,不是A。默认排空对照因此是 13/14,违反预先验收门槛。原因尚未定位,缺少该次PDB打开的锁/RPC/OS物证;没有假定是杀软、磁盘或新插桩导致,也没有以不相关为由豁免。未同head重跑、未删场景/改FS/PCH/缩输入。

    Private #11/34307133236 的42/42采集通过。两套矩阵另外保留 6个default+2个private的B首次失败,属于旧受管清理反例,和上述阻塞的A对照失败分别记录。全部28次A-started受管结束仍杀死原服务。原始558/413份工具结果、1116/826份stdout/stderr已核对;全部98次后续B恢复编译不覆盖原失败。准确B资源身份仅3/56和2/42,空快照不证明外部写入收束。

    新定位结果与局限

    固定子区间研究中,72次保存最大 3.039ms,未复现秒级cache-save尾部;这不推翻历史结果。独立ABBA最差的discovery-header配对总差 +3539.437ms,其中link_execution从111.929到3651.657ms,而link_cache_write仅从1.762到1.842ms。本次这个尾值主要落在进程启动/等待/捕获/清理范围,而不是链接缓存保存;不等于已经证明link.exe CPU、某个syscall或OS根因。嵌套/并行work不得相加作wall elapsed。其他不利/有利样本及历史cold-tail债项均保留,#170不解锁。

    物证和下一接手点

    五份原始ZIP均已下载核验SHA256/CRC,随本次交付另存:contracts10087043962;subspans10087181253;ABBA10087256050;default失败10087359460;private10087263565。完整hash在最终审阅。失败审计保留原positive gate拒绝,不把“失败记录复核成功”冒充“实验通过”。源码CRLF归档与LF Git blob的首次本地审计不匹配已明确纠正,并用完整tree重建验证,无原始数据/CI变更。Actions保留30天。

    下一轮先针对真实A/PCH/PDB-open失败做固定预算、保留精确工具和A/B PDB身份的最小调查,不能用一次成功重跑关闭它。 收束该正确性门槛后再考虑#172合并;性能后续优先观察已定位的link/process范围和可信底层事件,而不是盲跑中位数。历史缺失物证不能伪造,M1b、CLI取消、外部writer权威及写lease均未放行。单写者事务、build/run分离与后续会话/失效/驻留/发布仍按原路线依赖推进。

  12. Iviesever commented on Sep 9, 2026

    @Iviesever
    OwnerAuthor

    下一独立主题:PCH/PDB-open 失败的观察器对照,旧 PR 继续 HOLD

    重新核对 main 仍为 c8c8c0172850ff11351b63d5bd1507a7f57ac01e,#172 head 6386cc2... 保持 Draft,其 pch-release-A-started-drain 的原始 A/C1041 对照失败未解释;#170 的性能 HOLD 也不解除。本次不把用户授权判断理解为跳过证据合并。

    本轮只做一个有界调查:在同一最新main基础上扩展测试探针,保留原 default56/private42 模式,新增显式 PDB 调查模式。固定 4 对、8 个 pch-release/A-started/drain 新夹具,交替启用/禁用 Restart Manager 资源查询,既有 /FS、/Zi、/O2、/MT、PCH、24k A/6k B 输入及 A/B 并发都不改。要检查的假设仅是“观察查询是否可能干扰时序/访问”,不是已认定它导致C1041。禁用查询的维度明确标成未观测,不填成空且成功。

    两侧均增加相同的阶段性 metadata-only、共享读写删除的文件身份快照,保留 volume+128位file ID、原生错误、A/B PDB和PCH身份及查询时间区间;这些句柄在快照结束时关闭,不充当lease,也不声称不扰动。文件身份帮助区分别名,不证明没有外部writer。保存原始工具诊断/参数/结果及post-cleanup失败文件字节和工具哈希;无法验证清理时停止后续场景,不读写可能仍在变化的二进制。

    运行前固定上述预算,不重复同一槽位,不把一次不复现称作问题消失。调查有效性与对照构建成功分开:任何原始A/B失败照实保留并阻止旧PR解锁。新增metadata文件自测验证不同文件/硬链接、缺失路径、读取共享冲突的原生码和观测不改文件内容;仍需实际Windows验证。独立PR精确base/head原19x4 ABBA、完整native/selfhost/package与旧所有权矩阵照常,门槛不改。

    VERSION5.5.0、产品源码、CLI/freshness、历史tag/资产及正式发布不动;不提前做事务、服务或写锁转交。新PR及最终接受/否决结果将追加。

  13. Iviesever commented on Sep 9, 2026

    @Iviesever
    OwnerAuthor

    本轮已完成:#173 调查工具合并;#170/#172 继续 HOLD

    按实际证据分别作决定,没有把用户授权理解为必须合并旧PR。#173 已普通 merge(expected-head校验,无保护绕过);#170性能历史越线和#172原始A/C1041对照失败仍未解释,因此两者保持未合并。

    精确交付状态

    • Base:c8c8c0172850ff11351b63d5bd1507a7f57ac01e。
    • 接受 head:8b93235b534a37a188ca673b7612d8bdd5d34dc1。
    • 当前 main / merge:792fa39d3c2489ad520d25139709d6b0144ea29a。
    • 候选、native test-merge 2aae2c2022dc2dfb22463bb7e9320554fef389bd、实际 merge 的 tree 都是 26c21df19800de6eac2d1597fbfe3998dc1f617f;本地完整源码归档重建树亦匹配。
    • 合并后重新读取 VERSION5.5.0。没有历史tag/资产或正式Release,publish-release skipped。
    • 最终完整审阅。本轮只接受调查工具,不标记M1b完成、不放行CLI取消或写lease。

    新增代码与固定研究结果

    三个test/CI文件,480 additions/9 deletions。原探针增加显式PDB调查模式,新采集器和独立Windows工作流;产品src/include、scheduler、原default/private采集器与工作流、benchmark、manifest、native清单、CLI/freshness均不变。

    预先声明的4对/8个PCH Release A-started drain夹具全部完成:资源查询开启4次、关闭4次,交替顺序。两组A首次编译、B首次compile/link/run均4/4成功,pending A未派发、原MSPDBSRV存活。源文件及仅归一化case目录的argv与历史失败夹具完成24项一致性核验;没有缩输入、删PCH或改/FS。

    24个阶段快照的96次metadata-only文件身份读取成功,A/B PDB和PCH物理身份均不同;三次有限快照之间未观察到身份更换。16次RM查询返回成功(15次空集合、1次准确A-at-request服务身份),另16个禁用槽位明确null/unattempted,不算成功空查询。保存88份原始工具结果和176份stdout/stderr、精确probe/MQB字节、六种工具文件post-case哈希。

    这次没有复现C1041,但没有证明RM是原因或无关,也没有重造#172失败时的exe/主机/锁/RPC事件。 两组都有新增metadata观察,可能改变时序;空资源集合不是无writer证明。因8例都成功,失败后PDB/PCH复制路径未在真实失败中被执行。旧#172失败记录不改为通过,#170也不解锁。原始研究及矩阵审阅。

    完成的独立验证与不利证据

    Native Debug #713/34313621122 全部分片及freshness/runtime/parameter检查通过;完整Release/self-host/实际package #606/34313621138通过,正式发布跳过;Documentation#167、Cross-Stage#190通过。

    PDB研究 #1/34313621181:10项合成预期匹配(3接受/7拒绝),7项真实文件身份/共享测试通过,8固定编译场景完整。原Default #10/34313621117 56/56、全部14个drain对照通过;原Private #12/34313621161 42/42,全部非受管对照通过。它们是新head自己的验证,不能倒推旧head失败不存在。

    保留Private的3个B首次C1090/C1051失败;Default本次B首次构建全成功,但两套矩阵全部28次A-started受管结束仍杀死原服务。成功恢复编译不覆盖原失败,成功构建也不等于服务所有权安全。

    独立原ABBA #558/34313621163:19×4=76对,72对instrumented counters/breakdown/hit-miss一致;4对timings-off计数不可用。外部no-op中位 +0.8505ms/+7.1121%,MAD0.35225ms,最大+1.3756ms,4/4更慢,未触发原同时>1ms且>10%的中位门槛,不作零成本/提速结论。scale-single-TU也4/4更慢,中位+22.045ms/+16.82%;discovery-cold尾部+550.034ms。全部不利/有利样本保留,无同head重跑、无噪声删除,历史cold-tail债项不关闭。完整19行表。

    8份原始ZIP已独立核验SHA256/CRC并另存交付,包括实际调查输入二进制,但不是ABBA二进制对;完整hash在审阅中。源码树、补丁和只读复算脚本同时保留。Actions原始保留期30天。不把合并后新触发push CI冒充上面的已完成PR检查。仅有pre-PR转录占位符修正,历史保留,无post-PR源码修正或同head重跑。

    下一接手点

    从 792fa39... 继续。不要再以“多跑几次都成功”作为解除HOLD条件;下一最小调查需要实际cl/MSPDBSRV文件打开或RPC失败事件的原生返回码、进程/文件身份及事件完整性验证,并加入单独标记的受控失败阳性校准。不要把刻意制造的共享冲突当作自然排空失败,也不要把RM枚举冒充事件跟踪。观察器可能扰动、历史缺失事件不能补造的限制继续记录。

    旧#170/#172今后重审时必须针对新的main/组合源码树核对验证,不能沿用旧base标签。收束正确性/性能决策后再继续真实多worker、失败/取消结果传播及单写者事务和build/run边界;会话、失效、可选驻留和最终VERSION/release保持原路线依赖,不提前跳过。

  14. 138 remaining items

  15. added 8 commits that reference this issue on Sep 22, 2026
  16. added 7 commits that reference this issue on Oct 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions