Files
MailUI4Agents/biome.jsonc
JianFeeeee 33e44074e7 fix(tooling): pi-lens 的项目防护其实一直没生效(JSON 里带注释 → 整份被忽略)
## 现场

跑 `pi --help` 时有一行不起眼的警告:

    [pi-lens] ignoring invalid project config …/.pi-lens.json:
    Expected double-quoted property name in JSON at position 60

`.pi-lens.json` 是 `d50c55d` 专门加的项目级防护(关掉 pi-lens 的格式化与
autofix),但它的说明写成了 `//` 注释 —— 读 pi-lens 的源码确认:

    PROJECT_CONFIG_BASENAMES = ['.pi-lens.json', 'pi-lens.json'];  // 没有 .jsonc
    raw = JSON.parse(text);                                        // 不去注释
    // 解析失败 → 打一行警告,然后**整份忽略**

所以「已经关掉了」这个结论是**错的**,防护从落地那天起就没生效过。
而它要防的是两次已发生的真实损失:一次是 `19a3161` 把约 7000 行 biome 重排
扫进功能提交(无法审查、还掩盖了一处删行),一次是 prettier 改坏
`client/electron/index.html` 并打破 `test/theme.test.mjs` 的两条断言。

失败方式是静默的:进程照常跑,只有启动时一行警告 —— 而我正是在
`pi --help` 的输出里才看见它。

## 修

- `.pi-lens.json` 改为**严格 JSON**(只有 `$schema` / `format` / `autofix`;
  `$comment` 也不行 —— pi-lens 校验未知键,会为它刷一条
  「unknown key … ignored」的警告,而噪声会训练人忽略告警)。
- 理由移到 `docs/DEV-TOOLING.md`(含 pi-lens 的源码依据、两次事故、
  以及「为什么不是把格式化器配成本仓库风格」——试过,仍改 17 个文件)。
- `biome.jsonc`(允许注释)里加指针:它只是两道闸中的一道,真正的总开关是
  `.pi-lens.json`,而那份**必须是严格 JSON**。
- 验证:`pi --help` 现在 **0 行** pi-lens 输出;反向对照(故意塞回一行注释)
  会重新出现 `ignoring invalid project config`。

## 顺带:仓库里有一个活的凭据

`scripts/verify-l2.sh` 把**管理员 user key 硬编码**在文件里(`1759666` 起就在
git 历史里)。实测它**仍然有效**(`/auth/me` → 200),属于用户 `jianf`。

- 已改为从 `VERIFY_L2_TOKEN` 或 `/root/gotmp/verify-l2-token.txt`(600)读取,
  两者都没有时**报错退出**(反向对照验过:EXIT=2,不静默跑);
- 跑通一次确认可用(6 通过 0 失败)。

**但删掉当前这行不能把它从历史里拿掉** —— 要真正作废必须轮换那把 key。
这需要你定(它是你账号的密钥,可能还有别的工具在用),见提交后的说明。
2026-09-12 23:49:55 +08:00

43 lines
1.9 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
// ⚠️ 本文件只是**两道闸中的一道**biome 挡得住 biome挡不住 prettier。
// 真正的总开关是根目录的 `.pi-lens.json`(两条改写路径一起关),
// 而它**必须是严格 JSON** —— 带 // 注释会被 pi-lens 整份忽略、防护静默失效。
// 完整来龙去脉见 docs/DEV-TOOLING.md。
//
// 本仓库**不使用** biome 的格式化器,只借它做诊断(且由 pi-lens 统一调度)。
//
// # 为什么显式关闭
//
// pi-lens 内置「安全格式化」,会对编辑过的文件跑
// `biome format --write`(沿 biome 标准向上查找配置)。本机没有任何
// biome 配置时biome 用它自己的默认值:**tab 缩进 + 双引号**。
//
// 本仓库的手工排版与那套默认不兼容:注释按语义换行、数组与调用按可读性
// 手工折行,长注释常超过 100 列。实测把缩进/引号/lineWidth 全部对齐到本仓库
// 习惯之后,`biome format --write` 仍然改动 17 个文件 —— 也就是说只要格式化器
// 开着,每次编辑都会产生与内容无关的大面积 diff把真正的改动埋掉。
//
// 曾经发生过:一次 `git add -A` 把约 7000 行纯重排扫进了功能提交
// 19a3161使那次提交无法审查 —— 还掩盖了一处 Go 文件的删行。
//
// # 因此
//
// - formatter 关闭:保持本仓库既有排版,不再产生重排噪声
// - linter 关闭:`biome lint --write` 会做自动修复,同样会改到与本次改动
// 无关的行;本仓库的静态检查由 pi-lens 的其它 runnertsc / tree-sitter /
// ast-grep / go vet与各自的测试套件承担
//
// 新文件仍应遵守本仓库的既有风格2 空格缩进、单引号)。
"vcs": {
"enabled": true,
"clientKind": "git",
"useIgnoreFile": true
},
"formatter": {
"enabled": false
},
"linter": {
"enabled": false
}
}