返回 Bug 清单
BUG-0988project-27高已修复backend-logic

修复 148 个 U+FE0F 受损文件 + 守卫加 --all/归一化判定 + 受损清单

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

症状

commit 15eaf20876f2 (2026-10-03) fix(guard+data): 修复 148 个 U+FE0F 受损文件 + 守卫加 --all/归一化判定 + 受损清单

根因

commit message 描述: fix(guard+data): 修复 148 个 U+FE0F 受损文件 + 守卫加 --all/归一化判定 + 受损清单

修复方案

修复 209 行,删除 2 行。改动文件: .governance/references/UFE0F-LOSS-INVENTORY-20261002.csv, scripts/guard-unicode-combining.py

错误签名

fix(guard+data): 修复 148 个 U+FE0F 受损文件 + 守卫加 --all/归一化判定 + 受损清单 ## 本轮做了什么

承上一提交(守卫落地)与审计台账,本提交**执行了修复**。

### 1. 守卫增强(`scripts/guard-unicode-combining.py`)

| 新增 | 作用 |
|:---|:---|
| `--all` | 全量盘点:所有相对 HEAD 有内容变的已跟踪文件(出修复清单用) |
| `--csv <path>` | 写出修复清单(path/head/work/lost/only_combining) |
| **归一化判定 `only_combining`** | ★ 区分「纯剥离」与「混有真实改动」 |

**归一化判定为什么必要**:仅比较 U+FE0F 计数会**假阳** ——
若某文件**有意删除整段文字**,其 U+FE0F 计数也会下降,但**不该恢复**。

判据:把受守护字符 + 行尾 + BOM 全部消掉后比较正文:
- 归一后**相同** ⇒ 本次改动**只是**剥离组合字符 ⇒ **可安全

技术信息

来源项目

project-27

涉及文件

.governance/references/UFE0F-LOSS-INVENTORY-20261002.csv, scripts/guard-unicode-combining.py

标签

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