mirror of
https://github.com/aiclientproxy/proxycast.git
synced 2026-09-24 23:10:56 +08:00
3.6 KiB
3.6 KiB
Runtime Persistence Map
本文件定义 Lime 当前与 Claude Code 持久化对齐相关的单一事实源,重点回答:
- 线程里的文件快照到底从哪里来
SessionDetail / thread_read / export / replay各自应该消费哪层事实- 哪些路径属于 current,哪些只是 sidecar 或兼容辅助层
Current 主链
当前文件持久化主链固定为:
runtime_turn ArtifactSnapshot -> AgentTimeline FileArtifact -> artifact_document_service sidecar versions -> SessionDetail / AgentRuntimeThreadReadModel / agent_runtime_* -> evidence / replay
含义如下:
RuntimeAgentEvent::ArtifactSnapshot是运行时写入文件快照的唯一事件入口- 时间线里的
AgentThreadItemPayload::FileArtifact是线程侧唯一事实源 artifact_document_service负责把当前文档与versions/vNNNN.artifact.json历史快照落到工作区 sidecarAgentRuntimeThreadReadModel.file_checkpoint_summary只做轻量摘要,不复制第二套 transcript- 深一点的读取统一走:
agent_runtime_list_file_checkpointsagent_runtime_get_file_checkpointagent_runtime_diff_file_checkpoint
runtime_evidence_pack_service与runtime_replay_case_service统一消费同一份 file checkpoint 读模型,不再各自重新解析 artifact 状态
事实源分层
1. Timeline facts
文件:
src-tauri/src/services/agent_timeline_service.rssrc-tauri/crates/core/src/database/dao/agent_timeline.rs
职责:
- 记录线程里“有哪份文件快照”
- 保留
path / source / content / metadata - 为
SessionDetail.items与thread_read提供稳定事实
约束:
- 不再为“文件持久化”新增第二套并列事件模型
- 不从 UI 状态反写 timeline 真相
2. Sidecar snapshot store
文件:
src-tauri/src/services/artifact_document_service.rs
职责:
- 把当前 artifact 文档落到工作区
- 维护
artifactVersion*metadata 与历史versions/快照 - 提供
artifactVersionDiff / artifactVersions / artifactDocument / previewText
约束:
- sidecar 负责详情补充,不单独定义 thread 真相
- 当前 / 历史版本路径都必须继续走工作区相对路径
3. Runtime read models
文件:
src-tauri/src/services/runtime_file_checkpoint_service.rssrc-tauri/src/commands/aster_agent_cmd/dto.rssrc/lib/api/agentRuntime/threadClient.ts
职责:
- 把
FileArtifact + metadata + sidecar snapshot收敛成统一读模型 - 在线程面板暴露“最近文件快照”摘要
- 给前端、导出与后续治理提供稳定命令边界
约束:
thread_read只保留轻摘要- list / detail / diff 复用同一 service,不在各个导出服务重复解析
Export / Replay 消费口径
文件:
src-tauri/src/services/runtime_evidence_pack_service.rssrc-tauri/src/services/runtime_replay_case_service.rs
当前约束:
runtime.json与artifacts.json必须带fileCheckpoints / fileCheckpointCount- replay
input.json必须带fileCheckpoints / fileCheckpointCount recentArtifacts继续保留,用于路径级快速摘要;fileCheckpoints才是正式快照读模型
非 current 路径
以下不再视为文件持久化 current 主链:
- 组件本地推导的 artifact 状态
- 额外维护一套 Claude Code 式 transcript 文件真相
- analysis / replay / review 各自单独扫描工作区再猜“最新版本”
如果需要补持久化能力,优先继续扩展:
runtime_file_checkpoint_serviceAgentRuntimeThreadReadModel.file_checkpoint_summaryagent_runtime_*file_checkpoint*命令边界
而不是再开平级旁路。