baa-conductor

git clone 

baa-conductor / bugs
im_wower  ·  2026-03-30

OPT-009-renewal-duplicate-utility-functions.md

 1# OPT-009: renewal 模块重复定义工具函数,建议抽取到 renewal/utils.ts
 2
 3> 提交者:Claude
 4> 日期:2026-03-30
 5
 6## 现象
 7
 8以下函数在 `conversations.ts`、`projector.ts`、`dispatcher.ts` 中各自独立定义了一份:
 9
10- `normalizeOptionalString`
11- `normalizeRequiredString`(conversations 和 projector)
12- `parseJsonValue`(projector 和 dispatcher)
13- `isPlainRecord`(projector 和 dispatcher)
14
15函数体完全相同,各文件独立维护。
16
17## 影响
18
19- 修改一处(如增加 trim 规则)需要同步修改三处
20- 代码膨胀约 60-80 行重复代码
21- 后续新增 renewal 模块文件(如 subscriber)会继续复制
22
23## 建议
24
25新建 `apps/conductor-daemon/src/renewal/utils.ts`,将共用工具函数统一导出。三个文件改为 `import { normalizeOptionalString, ... } from "./utils.js"`26
27## 优先级
28
29低。不影响功能,属于代码卫生。