JianFeeeee
8ea33aeb91
跨端: fix(套件): 把自检 4 移到到期闸之前,并修掉"锚点自匹配导致它空转报 ok"
dsh 报了"移动未完成"(他两次栽在自己的锚点假设上)并把行号级配方留在上一封里。
这一笔把那一步做完,并在做的过程中撞到**移动本身引出的新洞**:
1. 自检 4 从到期闸**下游**移到**上游**(与自检 1/2/3 同层)
—— 否则"闸一 exit,自检连跑的机会都没有",而那正是它唯一要防的场景。
`let selfCheckFailed` 的声明一起上移(否则在声明前赋值 → ReferenceError)。
2. ★ 移动后它**空转报 ok**(比原来更糟:连失效都不响)。原因:
锚点写的是 `indexOf('let dueFailed = false;')` / `indexOf('const probeSummary')`,
而**这两串字本身就写在自检代码里**(作为 indexOf 的实参)。自检块一旦移到真闸之前,
`indexOf` 第一次命中的就是**自检自己那两行** ⇒ 扫描区间变成自检自己的两行 ⇒ 真闸从没被扫过。
⇒ 修法:锚点改 `lastIndexOf`(真闸在自检之后),并加一道**自匹配断言**
(区间里若出现 `selfSrc.indexOf` 就判红,不许空转)。
实测(pi):
- 正常跑:`ok 4 - 到期闸是记账而不是 exit`、汇总照常打;
- 变体(把 `process.exit(1)` 塞回 `dueFailed = true;` 之后):**`✗ 套件自检 4`当场打出来**
(报文:到期闸区块里又出现了 process.exit())—— 修复前这个变体是 0 命中;
- 变体撤销后文件字节恢复(`git diff` 空)。
2026-09-15 12:22:15 +08:00
..
2026-09-14 15:41:52 +08:00
2026-09-15 12:09:37 +08:00
2026-09-15 12:06:15 +08:00
2026-09-15 07:46:54 +08:00
2026-09-15 11:58:19 +08:00
2026-09-14 16:21:27 +08:00
2026-09-15 11:17:23 +08:00
2026-09-15 09:16:05 +08:00
2026-09-14 16:59:16 +08:00
2026-09-14 17:35:53 +08:00
2026-09-14 17:33:05 +08:00
2026-09-14 17:22:19 +08:00
2026-09-15 12:06:15 +08:00
2026-09-14 17:36:02 +08:00
2026-09-15 11:58:19 +08:00
2026-09-15 11:17:23 +08:00
2026-09-15 12:06:15 +08:00
2026-09-15 12:20:41 +08:00
2026-09-15 12:06:15 +08:00
2026-09-14 18:57:53 +08:00
2026-09-15 12:10:49 +08:00
2026-09-15 12:06:15 +08:00
2026-09-14 18:38:51 +08:00
2026-09-15 11:58:19 +08:00
2026-09-15 12:06:15 +08:00
2026-09-15 11:51:39 +08:00
2026-09-14 16:21:27 +08:00
2026-09-14 15:11:47 +08:00
2026-09-15 08:45:54 +08:00
2026-09-15 07:46:54 +08:00
2026-09-14 17:33:05 +08:00
2026-09-15 12:22:15 +08:00
2026-09-14 16:21:27 +08:00