改设置项 / UI 文案 — 前置自查¶
类型:rule(操作指南) 描述:改 settings 字段或调度相关 label/helper 前的必做检查 最后更新:2026-05-26 触发场景:用户说「改设置」/「label 不对」/「文案误导」/「加新设置项」 时 相关 wiki:
docs/wiki/shared-queue-architecture.md、docs/wiki/settings-field-semantics.md
什么时候用¶
- 用户说「label 写错了」「文案误导」
- 改
src/sections/settings/view/settings-view.tsx的任何一行 - 给 storage-data 加字段
- 重命名调度相关变量
为什么有这条¶
历次踩过的坑(v0.10.12 / v0.10.14 重复踩同一个): 望文生义命名设置项 → 与实际调度逻辑矛盾。
maxConcurrentTasks 字段名是「同时几个任务」—— 但实际是 activeTabs.size 全局上限。两个版本都犯了这个错。
标准动作(按顺序)¶
1. 先查字段语义对照表¶
打开 docs/wiki/settings-field-semantics.md,找到你要改的字段。如果不在表里 → 先把它加进表(即使你不全懂,把已知的写下)。
2. 读源码顶部注释¶
| 字段类 | 必读文件 |
|---|---|
| 地图抓取并发(max/pager/request) | src/entrypoints/background/batch-controller.ts 顶部(约 1-55 行的注释) |
| 网站抓取并发(deepScrape*) | src/utils/engine-manager.ts 顶部 + getConcurrency() |
| 任务调度(pumpTasks 相关) | src/entrypoints/background/task-manager.ts 顶部 |
| 解析层(emailRegex / phoneRegex 等) | src/utils/scraper.ts 的 extractDataFromHtml |
| 内页跟随(follow*) | src/utils/dynamic-scraper.ts 的 findSubLinks |
⚠️ 不读直接改 = 100% 踩坑。
3. 自查清单¶
- 字段是 per-task 还是全局?label 中要明示
- 是「上限」还是「确切数」?写「上限」
- 与字段名暗示的语义一致吗?不一致 → helper 必须解释
- 有具体使用场景的例子吗?("1 个任务 vs 5 个任务下分别如何")
4. 改完做对比¶
打开 更新规则.md 第七章 A 节的字段语义表,看你的文案是否与表对得上。
死亡 5 短语(看到立即改)¶
文案出现以下任何一条 → 大概率有错:
| 死亡短语 | 修正方向 |
|---|---|
| "同时进行的任务数" | 改成「Tab 并发上限」或「worker 数」,且加「与任务数无关」 |
| "= 同时进行的 X" | 用「= 」做等价定义最危险,先确认真的相等 |
| "同时挖几个网站" | 改成「同时抓几个 URL」或「worker 线程数」 |
| "每个任务可以..." | 大概率把 per-task 和全局搞反 |
| 没有「全局」/「上限」字样的并发字段 | 加上 |
完成后必做¶
- 与
docs/wiki/settings-field-semantics.md对得上 - helper 含具体例子
- 浏览器实开 settings 看看排版没溢出
反面教材(已修复)¶
v0.10.12¶
<RHFTextField
name="maxConcurrentTasks"
label="实开 Tab 并发(= 同时进行的任务数)" {/* ❌ 等号那段错 */}
helperText="多任务 round-robin 共用。"
/>
v0.10.14(被用户抓到才改)¶
<RHFTextField
name="deepScrapeConcurrency"
label="同时挖几个网站" {/* ❌ 实际是 worker 数 */}
helperText="所有正在挖的官网同时进行的总数。"
/>