返回 Bug 清单
BUG-0987project-27中已修复backend-auth

ack 判定只在 --staged 生效 —— 修本器自身的误报

发现:2026-10-09验证:2026-10-09置信度:70%

症状

commit a3a35623886c (2026-10-03) fix(guard): ack 判定只在 --staged 生效 —— 修本器自身的误报

根因

**根因**:`acked = ACK_TOKEN in commit_message(cwd)` 无条件执行,

修复方案

修复 4 行,删除 1 行。改动文件: scripts/guard-unicode-combining.py

错误签名

fix(guard): ack 判定只在 --staged 生效 —— 修本器自身的误报 ## 缺陷(2026-10-02 实测 · 我在上一提交引入)

`--all` 全量盘点时,本器报「⚠️ 放行(提交信息含 [unicode-combining-ack])」,
而**根本没人给这个盘点写 ack**。

**根因**:`acked = ACK_TOKEN in commit_message(cwd)` 无条件执行,
而 `commit_message()` 读的是 `.git/COMMIT_EDITMSG` ——
在盘点模式下它装的是**上一次提交的残留信息**(其中恰含 ack 字样)。

⇒ 后果:盘点会把**未获放行**的受损文件报成"已放行",
掩盖真实受损面(本次实测:2 个文件被误报为已放行)。

## 修法

```python
acked = bool(a.staged) and (ACK_TOKEN in commit_message(cwd))
```

ack 只在 **pre-commit 语境**(`--staged`)有意义 —— 它读的是**本次*

技术信息

来源项目

project-27

涉及文件

scripts/guard-unicode-combining.py

标签

git-sweep, auto-ingested, project-27, mcp-reported, source-agent