Codex History Manager
在 VS Code 内直接浏览、预览并管理你的 Codex 历史对话记录。
功能特性
一个用于在 VS Code 中浏览和管理 Codex 历史对话的扩展。
✨ 功能特性
核心功能
- 📚 浏览对话历史:在 Webview 或侧边栏中查看所有 Codex 对话历史
- 👁️ 对话预览:查看对话的详细内容
- 🗑️ 删除对话:删除不需要的对话记录
- 📝 添加备注:为对话添加自定义备注
- � 置顶功能:标记重要对话,置顶会话优先显示
- �📦 归档管理:归档/取消归档会话,归档会话自动移至专用目录
删除体验优化
- ⌨️ Delete 键删除:选中会话后按 Delete 键快速删除
- 🎯 智能选择:删除后自动选中下一条会话
- 🗑️ 批量删除空会话:一键删除所有空会话,释放空间
会话管理
- 🔄 重建索引:自动扫描
sessions 和 archived_sessions 目录
- 🔍 搜索功能:快速查找特定对话
- 📌 置顶功能:标记重要对话,置顶会话带⭐标识并排在列表顶部
- 📦 归档管理:
- 归档/取消归档会话,动态按钮文本("归档" / "取消归档")
- 归档会话自动移至
archived_sessions 目录
- 取消归档自动恢复到日期结构文件夹(
sessions/YYYY/MM/DD/)
- 归档会话尝试 resume 时自动警告并阻止
- ▶️ 终端恢复:一键在终端中恢复会话(归档会话需先取消归档)
智能显示
- 💬 智能标题:自动提取第一条用户消息作为会话标题
- 🤖 过滤系统提示:自动跳过 Agents.MD 和环境上下文
- 📋 清晰展示:会话 ID 作为副标题,易于识别
- 🎨 归档标识:归档会话带有 "📦 归档" 橙色徽章
- ⭐ 置顶标识:置顶会话在列表中带有星标图标
- 📊 对话轮数:显示每个会话的对话轮次统计
- 📄 消息折叠:长消息(>30行)自动折叠,支持一键展开/折叠
双向同步
- 🔄 Webview 与侧边栏同步:选择会话时双向同步并自动滚动
- ♻️ 自动刷新:重建索引、删除会话、保存备注后自动刷新
🚀 使用方法
打开历史管理器
- 使用命令面板(Ctrl/Cmd + Shift + P)
- 输入 "Codex History: 打开管理器"
- 或点击侧边栏的 Codex History 图标
管理对话
- 查看对话:点击列表中的对话查看详细内容
- 删除对话:选中对话后按 Delete 键,或点击"删除会话"按钮
- 批量删除:点击"批量删除空会话"按钮
- 恢复对话:点击"在终端恢复 ▶️"或"复制 Resume 命令"(归档会话需先取消归档)
- 置顶对话:点击 📌 按钮切换置顶状态
- 归档对话:点击 📦 按钮归档/取消归档会话
- 添加备注:在预览区输入备注并保存
重建索引
如果会话列表不完整,使用"Codex History: 重建索引"命令重新扫描所有会话文件。
⚙️ 配置
自定义 Codex Home 路径
{
"codexHistory.codexHome": "/path/to/your/.codex"
}
默认路径: ~/.codex
📋 更新日志
v0.0.12 - 2025-11-21
🔧 关键修复
- 会话列表滚动条消失问题:修复了选中某些会话(特别是置顶或归档的会话)后,左侧会话列表滚动条消失的严重问题
- 根本原因:
.preview-container 使用了 height: 100% 导致 Flexbox 布局溢出
- 解决方案:改用
flex: 1 + min-height: 0 确保正确的 Flex 布局
- 为整个布局层级添加
min-height: 0 防止溢出
♻️ 回收站优化
- 元数据保留:删除会话到回收站时,现在会保留备注、置顶状态和归档状态
- UI 改进:将"还原"按钮移至回收站工具栏,与"刷新"按钮并排,操作更直观
🐛 其他修复
- 严格过滤回收站中的空会话(
turn_count === 0 和 first_text === '(空会话)')
- 修复 TreeView 错误,实现
getParent 方法
v0.0.9 - 2025-11-20
置顶功能增强
- 动态置顶按钮文本("置顶" / "取消置顶")
- Webview 列表显示星标图标 ⭐
- 置顶/取消置顶后自动刷新 UI
📦 归档管理功能
- 归档/取消归档:一键归档或恢复会话
- 动态归档按钮:根据归档状态显示 "归档" 或 "取消归档"
- 智能恢复路径:取消归档自动恢复到日期结构文件夹(
sessions/YYYY/MM/DD/)
- Resume 保护:尝试 resume 归档会话时显示警告并阻止操作(适用于 Webview 和侧边栏)
- 自动索引更新:归档/取消归档后自动重建
history.jsonl 索引
v0.0.8 - 2025-11-20
� 对话统计
- 显示每个会话的对话轮数(一轮 = 从用户发言到助手回复)
- 轮数以粗体数字醒目显示
� 消息折叠
- 长消息(>30行)自动折叠,只显示前15行和后15行
- 点击"Show X hidden lines"按钮展开/折叠单条消息
- "全部展开/折叠"按钮一键切换所有长消息
� 双向同步
- Webview 与侧边栏选择同步
- 在侧边栏选择会话,Webview 自动定位
- 在 Webview 选择会话,侧边栏自动高亮并滚动到对应位置
- "重建索引"后 Webview 自动刷新
🗑️ 删除体验优化
- 支持 Delete 键快速删除
- 删除后自动选中下一条会话
- 批量删除空会话功能
- 修复批量删除只扫描部分会话的问题
📦 归档会话支持
- 自动扫描
archived_sessions 目录
- 归档会话带有 "📦 归档" 橙色徽章和特殊样式
- 修复归档会话预览加载问题
💬 智能标题提取
- 自动提取第一条用户消息作为会话标题
- 过滤系统提示词(Agents.MD、环境上下文等)
- 清理多行标题,移除换行符
- 空会话显示为 "(空会话)"
- 修复时间戳格式问题
- 移除会话显示限制(提升至 1000)
🔄 自动刷新
🛠️ 功能修复
- 修复 resume 命令格式(提取 UUID)
- 修复 Webview 脚本解析错误
- 修复批量删除确认对话框错误
- 修复侧边栏显示数量限制
- 修复消息折叠 JavaScript 语法错误
⌨️ 键盘快捷方式
- Delete 键删除会话
- Enter/Ctrl+Enter 保存备注
❓ 常见问题
Q: 为什么有些会话显示为"(空会话)"?
A: 这些是只包含环境上下文但没有实际用户消息的会话,通常是被取消的或立即关闭的会话。
Q: 归档会话和普通会话有什么区别?
A: 归档会话存储在 archived_sessions 目录中,带有橙色 "📦 归档" 徽章。归档会话无法直接 resume,需要先点击"取消归档"按钮。
Q: 如何归档或取消归档会话?
A: 选择会话后,点击预览区的 📦 按钮。归档会话会移至 archived_sessions 目录,取消归档会恢复到 sessions/YYYY/MM/DD/ 日期文件夹。
Q: 为什么归档会话无法 resume?
A: Codex 的 resume 命令只能加载 sessions 目录中的会话。如需 resume 归档会话,请先点击"取消归档"按钮。
Q: 如何批量删除空会话?
A: 点击工具栏中的"批量删除空会话"按钮,确认后即可删除所有空会话。
Q: 删除后如何自动选择下一条?
A: 删除会话后,扩展会自动选中下一条会话(如果是最后一条,则选中上一条)。
📝 许可证
MIT
Enjoy coding with Codex!
| |