现象
_append_jsonl 在多个模块重复定义,核心逻辑都是“确保目录存在 + json.dumps + 追加写入 + ignore 异常”。当前重复度高,且失败策略不统一。
重复位置:
apps/agentic/relay/loopback.py:32
apps/shared/governance/events.py:43
apps/server/worker/llm_monitor.py:52
apps/server/gateway/llm/supervise.py:24
apps/server/daemon/services/llm/memory.py:22
apps/server/daemon/services/llm/usage.py:16
apps/client/sdk/process/worklog/tools.py:40
建议
- 抽取到
src/cobnet/shared/jsonl.py(或现有共享工具层)
- 定义统一签名,支持
Mapping[str, Any] / Mapping[str, object]
- 明确并集中错误处理策略(是否静默、是否加锁、是否保持
newline)
- 为关键场景补充最小单测(多路径创建、并发写入、异常兜底)
价值
- 降低重复代码噪音,统一日志/审计 JSONL 落盘行为
- 便于后续接入统一日志规范与可观测性管控
与已存在 issue 的关系
当前 open issue 列表未包含该重复点(#8-15 为 backplane helper)。
现象
_append_jsonl在多个模块重复定义,核心逻辑都是“确保目录存在 + json.dumps + 追加写入 + ignore 异常”。当前重复度高,且失败策略不统一。重复位置:
apps/agentic/relay/loopback.py:32apps/shared/governance/events.py:43apps/server/worker/llm_monitor.py:52apps/server/gateway/llm/supervise.py:24apps/server/daemon/services/llm/memory.py:22apps/server/daemon/services/llm/usage.py:16apps/client/sdk/process/worklog/tools.py:40建议
src/cobnet/shared/jsonl.py(或现有共享工具层)Mapping[str, Any]/Mapping[str, object]newline)价值
与已存在 issue 的关系
当前 open issue 列表未包含该重复点(#8-15 为 backplane helper)。