mirror of
https://gitcode.com/JianFeeeee/HomeAgent.git
synced 2026-10-15 12:15:16 +00:00
test(gui): 修 silent-start 判据的字节窗口假红(被注释挤爆)
## 问题
`make test` / CI 的 `npm test` 都红:
✗ 非静默时经 ready-to-show 显示 — 没有 ready-to-show → show()…
## 归因(逐提交二分)
origin/main (7e4f1058) 通过
2bbbb6b8 / bca791a1 通过
3988c198 / 85d76ad4 通过
878fd770 通过
7bd569ec ★ 失败 ← 引入点
04c5883f / 5f12ea3d ★ 失败
不是本次内核改动引入;是 7bd569ec(10-05「修长时间挂后台后打开白屏」)
把 `once` 改成 `on` 时**同时补了一段解释性注释**,把
`ready-to-show` 与 `show()` 的间距从 331 字符推到 558 字符,
而判据的窗口是硬编码 `{0,120}`。
**实现是对的,判据的字节窗口太小。**
## 修法
判据该断的是**结构关系**(ready-to-show 处理器的回调里有 show()),
不是两者相隔多少字符 —— 后者会随注释/排版无意义地红。
- 先去行注释再量(注释不该参与结构判定)
- 窗口放到 400(容纳该回调体,仍远小于「跑到别的函数里」的距离)
## 验证
- 修后 `node silent-start.test.mjs` 全部通过
- ★ 变异自证仍能红:删掉 ready-to-show 处理器 → 判据报红
(证明不是把判据改松到什么都不抓)
- `make test` 全绿(go test + test-gui + csrc-test + check-csrc + check-codec-cgo-only)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@ -67,7 +67,19 @@ check(
|
||||
);
|
||||
check(
|
||||
"非静默时经 ready-to-show 显示",
|
||||
/ready-to-show[\s\S]{0,120}show\(\)/.test(createBlock),
|
||||
// ★ 2026-10-06:原来写死 `{0,120}` 字符窗口,被新增的**注释**挤爆而假红。
|
||||
//
|
||||
// 实情:main.js 在 ready-to-show 与 show() 之间夹了 558 字符 —— 其中
|
||||
// 大部分是解释「为什么用 on 而非 once」的注释(7bd569ec 白屏修复)。
|
||||
// 实现是对的,判据的字节窗口太小。
|
||||
//
|
||||
// ⇒ 判据该断的是**结构关系**(ready-to-show 处理器的回调里有 show()),
|
||||
// 不是两者相隔多少字符 —— 后者会随注释/排版无意义地红。
|
||||
// 去掉行注释后再量,且把窗口放到足够容纳该回调体。
|
||||
(() => {
|
||||
const noLineComments = createBlock.replace(/\/\/[^\n]*/g, "");
|
||||
return /ready-to-show[\s\S]{0,400}show\(\)/.test(noLineComments);
|
||||
})(),
|
||||
"没有 ready-to-show → show(),非静默启动可能白屏闪现",
|
||||
);
|
||||
check(
|
||||
|
||||
Reference in New Issue
Block a user