Skip to content

4.1.21

Choose a tag to compare

@SquabbyZ SquabbyZ released this 25 Oct 09:14
· 84 commits to main since this release

版本级别:候选 patch(沿用常设规则"默认版本新增采用最小的版本位")。本次没有改 fail-open 策略、
没有动 auto-compact 三档阈值,peaks-code 的 11 步工序与 Gate A–G 一字不改;改的是一个度量的口径、
两个门禁的诚实性、CI 的一个咨询性作业、一个算错单位的守卫,以及版本号本身。

一句话:peaks observability 之前把 QA 自己的内部迁移当成了"返工循环"数出来,于是 108 个切片里有 82 个
"超了帽"。这一版把它数对了 —— 真正超帽的只有 1 个。

1. 缺陷:返工循环数的是 QA 的内部迁移

旧口径数的是每一条 detail.artifactRole === 'qa' 的 slice-transition 事件。那是 QA 阶段内部的迁移,
和"RD 被打回去重做"没有关系。四个各自独立的缺陷叠在一起:

# 缺陷 实测
1 数的是 QA 内部迁移 与返工无关
2 一次迁移发两条事件 约 8ms 间隔,其中一条没有 detail.from
3 detail.from 不可信 仅 606/1102 存在,其中 395 条与事件顺序矛盾 ⇒ 绝不读它
4 qa-handoff 是 RD 的状态 正常收尾 verdict-issued→qa-handoff→handed-off 是快乐路径,不是返工

实测对比(10 个会话目录、108 个切片、1102 条事件):

口径 ≥cap(3) 的切片 分布 峰值
旧(QA 事件计数) 82 / 108 0:11 1:1 2:14 3:2 4:50 5:12 6:5 7:2 8:7 9:1 11:2 24:1 24
新(返工循环) 1 / 108 0:93 1:13 2:1 5:1 5

唯一真正超帽的那一个,序列是真的:implemented→qa-handoff→running→verdict-issued→implemented→…,五轮。

2. 度量版本化:v2 与 v1 并列,不让新旧数被静默对比

  • metricVersion: 2;旧计数保留在 legacyQaEventCount 下,capHitCount 用 v2。
  • 返工循环的判定:QA 阶段后回到 RD 工作态(draft|spec-locked|implemented)才算;一次返工只计一次;
    重复发射折叠;绝不读 detail.from;纯 QA 往返单列为 QA rounds,不混进返工。

3. 新命令与可复算的基线产物

  • peaks observability repair-cycles --all-sessions --json
  • peaks observability baseline [--write|--check] → .peaks/observability/results-baseline.json

基线行只用率与峰值;人口描述被单独隔离并注明"不得作为门禁",产物里写明 ciEnforceable: false
及其原因(观测数据在 gitignored 的会话空间里,CI 拿不到,硬接只会造一条假门禁)。

4. 没测过的门禁,必须说"没测过"

Phase A benchmark 门禁从二态改成三态:

状态 退出码 passesGate
measured-and-passed 0 true
measured-and-failed 1 false
not-measured 3 null
runner 报错 2 —

旧的 passesGate: false 既可能是"测了没过",也可能是"根本没测",读者分不出来,而根因恰恰是零次测量。
现在未决绝不等同于通过。runner 也拒绝把 --out 指向记忆库(exit 2)—— 它以前每次运行都会往
.peaks/memory/ 里写一份 _TBD_ 存根,覆盖掉平台预留给人类真实测量的那个文件。

5. 一个算错单位的守卫

peaks-loop-internal-runtime 的 resource-budget 守卫里,process.cpuUsage() 返回微秒,
而旧式算法 /1e6 × 100 得到的是厘秒。于是 maxCpuPct: 5 实际约束的是 50 毫秒 CPU,不是 5%。
现在 cpuPct 是占单核百分比,另出 cpuCentiseconds 字段,字段名与 Sample 形状保持不变。

6. CI 增加一个咨询性作业

changed-tests-subset:只在 PR、只在 ubuntu、continue-on-error: true(咨询性,不挡合并)、
fetch-depth: 0 + 显式 merge-base、PEAKS_VITEST_MAX_WORKERS: 4、timeout-minutes: 60。
权威门禁仍是全量 test 作业。

7. 这次发版带走了什么

v4.1.20..HEAD 的 44 个改动文件里,13 个真正进入已发布产物(12 个经 src/**→dist/**,
1 个是 peaks-loop-internal-runtime);dist/ 占 tarball 2889 条目中的 2670(92.4%)。
发版影响面按输入集算:展开 package.json#files 白名单得直发集,再补上 src/**→dist/** 与
packages/**→内部包 的间接集,最后排除发布元数据。

8. 版本号本身

包 从 到
peaks-loop 4.1.20 4.1.21
peaks-loop-shared 0.0.109 0.0.110
peaks-loop-mut 0.1.74 0.1.75
peaks-loop-shared-channel 0.0.77 0.0.78
peaks-loop-internal-runtime 0.0.60 0.0.61