Skip to content

评审 E 批 P0 三连:rigid O(n²) 单遍刷写 + 双端 golden fixture + B8 验收门禁 - #109

Merged
leslie520-bye merged 4 commits into
mainfrom
fix/rigid-on2-issue100
Oct 22, 2026
Merged

leslie520-bye merged 4 commits into
mainfrom
fix/rigid-on2-issue100

Conversation

@leslie520-bye

Copy link
Copy Markdown
Contributor

十角色评审(growth/PLAN-review10-optimization.md)产出的引擎侧三条 P0(#100/#98/#99),全量回归六腿绿。

#100 rigid 写回 O(n²)→O(n)

#98 双端契约单一来源

  • contracts/golden/intents.json(parse 28 用例)+ contracts/golden/presets.json(预设 14 行全字段)
  • Rust(agent+infer,dev-dep serde_json 不挂 feature)与 kernel.test.mjs 双端共读;改任一侧不更 fixture → 双端同红
  • 两侧表现状一致性实证通过(此前仅注释纪律)

#99 B8 验收门禁

  • b8_gate_smoke:rule 参照后端四腿聚合冒烟(确定性/usage 计量/流式诚实/降级链),进 CI workspace 腿
  • STABILITY.md §B8:门禁入口 + 深度四腿测试指认清单 + 裁定记录(不新开 CI 独立腿)

稳定性验证

fmt ✓ / clippy --all-targets 零警告 ✓ / workspace 234 ✓ / genai 53 ✓ / agent json 59 ✓ / infer native-http 92 ✓ / rigid 15 ✓ / kernel 27 ✓ / studio_e2e 三赛道 PASS(孪生指纹 b6945a34162dcb45 与基线一致=零回归)

Closes #98, closes #99, closes #100

- 步骤 4 原每实体一次 for_each2_mut 全列扫(n 体 = n 次全列遍历,1k 体即卡帧)
  → writeback 暂存表(clear() 复用分配,EntKey→钳制后 xyz)+ 单次列遍历查表刷写
- 每实体写回只依赖自身 body 状态,批量刷写保持写序语义
- 新增 thousand_bodies_all_receive_their_writeback:1k 体线性运动无接触精确
  断言(dx=vx·dt,漏写即红);two_runs_are_bit_identical 红线不动
- 裁定:全岛休眠跳步不做——rapier islands 自带 sleep,跳步引入语义风险
  大于收益;时间断言 bench 归 #103 bench 四件套(避免 CI 时间 flaky)
- contracts/golden/intents.json:parse 词汇 28 用例(中英+否定+落空),
  Rust parse() 与 kernel parseIntent() 双端共读镜像断言
- contracts/golden/presets.json:预设 14 行全字段(caps 五字段恒显式/
  price 四字段或 null),Rust preset_json 规范化对照 + kernel norm 对照
- 测试挂 dev-dependencies serde_json(不受 feature 门控,任何 CI 腿都跑)
- 改任一侧解析/预设而不更新 fixture → 双端 CI 同红——漂移从此有闸门
- 现状两侧表一致性同时得到实证(此前仅注释纪律维持)
- 门禁入口 b8_gate_smoke:rule 参照后端四腿聚合冒烟(确定性/usage 计量/
  流式拼接诚实/降级链韧性),离线零网络进 CI workspace 腿
- 深度四腿不重复——STABILITY.md §B8 显式指认既有常驻测试清单
- 裁定:行为腿 #92-#95 已高度覆盖,B8 增量=显式入口+登记单一来源,
  不新开 CI 独立腿(native-http 腿已常驻)避免时长膨胀
评审发现(两位独立评审 PASS-with-findings,红线零违反):
- [P1] 全角数字双端漂移实锤(JS v2.1 已归一、Rust 无)→ Rust parse 补
  全角归一(对镜 kernel),fixture 新增放5个/生成10个钉住
- [P1] 覆盖缺口必补:清屏(clear 第三同义词)、清空,但别关灯(否定后置
  不抑制,比较方向翻转 fixture 必红)
- [P2] b8_gate leg4 断言强化:health_report 必须记到失败计数(name-only
  检查防不住 record() no-op 回归)
- [P2] 1k 测试网格原点 5→9:原 origin-5 对墙嵌入 3 单位(r=8),断言成立
  依赖 rapier 软接触;现体-体/体-墙全程无接触,前提为真
- [P2] kernel.test.mjs 行数断言改读 presets.json rows.length(演进少一处)
- [P2] JS kind 推导裁定保留(读 fixture 会成同义反复),注释化说明

rebase 到 origin/main(上游 4 提交)后 golden 门禁当场抓到新漂移:
- kernel 侧先行加了 xlite 行(15)而 Rust 表仍 14 → Rust 补 xlite 行 +
  presets.json 第 15 行,双端重新对齐
- price_for_label kind:model 撞行(xlite/openai 同为 gpt-4o-mini)→ 改为
  首个有登记价的行胜出(网关未登记价按源厂牌价记账,绝不猜价)
- 顺手 cargo fmt:上游 2f93226 带入的 http.rs 三处格式残留(CI 首红主因)
@leslie520-bye
leslie520-bye force-pushed the fix/rigid-on2-issue100 branch from 3f947d4 to b28f43a Compare October 22, 2026 15:59
@leslie520-bye
leslie520-bye merged commit e64cd05 into main Oct 22, 2026
4 checks passed
@leslie520-bye
leslie520-bye deleted the fix/rigid-on2-issue100 branch October 22, 2026 16:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant