文件分析:history.ts 该文件是 Claude Code 项目的核心模块之一,主要负责用户交互历史记录的管理,包括历史记录的存储、检索、引用解析和删除等关键功能。以下是详细分析:核心功能历史记录存储通过 addToHistory() 函数将用户输入(文本或粘贴内容)转化为结构化日志(LogEntry),并按以下规则处理:小型文本(≤1024字符):直接内联存储在 content 字段大型文本/图片:计算哈希值存储到外部粘贴库(pasteStore),仅保留 contentHash 引用历史记录检索getHistory():按会话分组返回当前项目的历史记录(当前会话优先)getTimestampedHistory():为 Ctrl+R 搜索提供去重后的历史记录(仅显示文本+时间戳)粘贴内容解析expandPastedTextRefs():将占位符如 [Pasted text #1] 替换为实际内容parseReferences():正则匹配占位符并提取 ID2. 关键设计异步持久化机制使用 pendingEntries 缓冲区和 flushPromptHistory() 实现延迟写入,通过文件锁(lock())确保并发安全:async function immediateFlushHistory(): Promise {const release = await lock(historyPath, { … }); // 获取文件锁await appendFile(historyPath, jsonLines); // 写入磁