Skip to content

[shared] 抽取 _append_jsonl 通用 JSONL 落盘 helper #17

@beachspainc

Description

@beachspainc

现象

_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)。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions