跳转至

改设置项 / UI 文案 — 前置自查

类型:rule(操作指南) 描述:改 settings 字段或调度相关 label/helper 前的必做检查 最后更新:2026-05-26 触发场景:用户说「改设置」/「label 不对」/「文案误导」/「加新设置项」 时 相关 wikidocs/wiki/shared-queue-architecture.mddocs/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.tsextractDataFromHtml
内页跟随(follow*) src/utils/dynamic-scraper.tsfindSubLinks

⚠️ 不读直接改 = 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="所有正在挖的官网同时进行的总数。"
/>

正解

<RHFTextField
  name="maxConcurrentTasks"
  label="实开 Tab 并发上限"                  {/*  明确上限 */}
  helperText="全局共享。同一时刻浏览器最多打开多少个 Tab。与任务数无关 —— 1 个任务也能用满 5 槽位。"
  {/*       ↑↑↑ 必含与任务数无关 + 举例 */}
/>