Skip to content

feat: 支持 Codex 会话恢复并改进终端与 Git 视图 - #448

Merged
J3n5en merged 5 commits into
J3n5en:mainfrom
hmhm2022:pr/codex-resume-full-history-squash
Aug 2, 2026
Merged

feat: 支持 Codex 会话恢复并改进终端与 Git 视图#448
J3n5en merged 5 commits into
J3n5en:mainfrom
hmhm2022:pr/codex-resume-full-history-squash

Conversation

@hmhm2022

Copy link
Copy Markdown
Contributor

说明

本 PR 为 EnsoAI 增加 Codex 会话历史查看与恢复功能,并改进 Windows 终端稳定性、Git 提交历史展示和文件状态显示。

主要改动

Codex 会话

  • 支持查看 Codex 历史会话和消息记录
  • 支持通过真实 CLI 会话号恢复 Codex 对话
  • 使用 SQLite 建立本地会话索引,减少重复扫描 JSONL 文件
  • 监听会话文件变化并增量更新索引
  • 索引不可用时自动改用文件扫描
  • 增加会话选择器和历史消息面板

终端

  • 将 Windows PTY 的创建和销毁移到独立辅助进程,并补充超时清理与打包配置,避免 ConPTY 启停阻塞 Electron 主进程
  • 修复 Codex Shift+Enter 无法正确换行
  • 恢复 Codex 会话时使用 --no-alt-screen 保留终端滚动内容,并过滤 xterm 颜色查询响应,避免控制字符被 Codex 当作普通输入显示

Git 提交历史与文件树

  • 在版本管理面板新增 Git 提交历史图表,展示提交之间的父子关系、分支和标签
  • 在文件树中显示 Git 文件状态,方便识别新增、修改、删除和未跟踪文件
  • 修复文件变化后文件树没有自动刷新的问题,并改进 Windows 路径匹配

改动文件

查看全部 92 个文件
electron-builder.yml
electron.vite.config.ts
src/main/index.ts
src/main/ipc/codexHistory.ts
src/main/ipc/files.ts
src/main/ipc/git.ts
src/main/ipc/index.ts
src/main/ipc/terminal.ts
src/main/services/ai/code-review.ts
src/main/services/codex/CodexHistoryIndexStore.ts
src/main/services/codex/CodexHistoryIndexer.ts
src/main/services/codex/CodexHistoryMetadata.ts
src/main/services/codex/CodexHistoryParser.ts
src/main/services/codex/CodexHistoryService.ts
src/main/services/codex/CodexHistoryWatcher.ts
src/main/services/codex/__tests__/CodexHistoryIndexStore.test.ts
src/main/services/codex/__tests__/CodexHistoryIndexer.test.ts
src/main/services/codex/__tests__/CodexHistoryMetadata.test.ts
src/main/services/codex/__tests__/CodexHistoryParser.test.ts
src/main/services/codex/__tests__/CodexHistoryService.test.ts
src/main/services/codex/__tests__/CodexHistoryServiceBackground.test.ts
src/main/services/codex/__tests__/CodexHistoryWatcher.test.ts
src/main/services/git/GitService.ts
src/main/services/git/__tests__/gitLogFormat.test.ts
src/main/services/git/gitGraphFormat.ts
src/main/services/git/gitLogFormat.ts
src/main/services/terminal/PtyManager.ts
src/main/services/terminal/WindowsPtyHelper.ts
src/main/services/terminal/__tests__/PtyManagerConptyConfig.test.ts
src/main/services/terminal/__tests__/PtyManagerWindowsHelper.test.ts
src/main/services/terminal/__tests__/WindowsPtyHelper.test.ts
src/main/services/terminal/__tests__/ptyHelperPackaging.test.ts
src/main/services/terminal/__tests__/ptyHelperRuntime.test.ts
src/main/services/terminal/ptyHelper.ts
src/main/services/terminal/ptyHelperProtocol.ts
src/main/services/terminal/ptyHelperRuntime.ts
src/main/utils/__tests__/processUtils.test.ts
src/main/utils/processUtils.ts
src/preload/index.ts
src/renderer/App.tsx
src/renderer/App/hooks/useOpenContextListener.ts
src/renderer/App/hooks/useOpenPathListener.ts
src/renderer/components/chat/AgentGroup.tsx
src/renderer/components/chat/AgentPanel.tsx
src/renderer/components/chat/AgentTerminal.tsx
src/renderer/components/chat/CodexHistoryPanel.tsx
src/renderer/components/chat/CodexSessionPickerDialog.tsx
src/renderer/components/chat/SessionBar.tsx
src/renderer/components/chat/__tests__/AgentPanelStopNotification.test.ts
src/renderer/components/files/BreadcrumbTreeMenu.tsx
src/renderer/components/files/EditorArea.tsx
src/renderer/components/files/FilePanel.tsx
src/renderer/components/files/FileSidebar.tsx
src/renderer/components/files/FileTree.tsx
src/renderer/components/files/fileTreeGitDecorations.ts
src/renderer/components/settings/GeneralSettings.tsx
src/renderer/components/source-control/ChangesList.tsx
src/renderer/components/source-control/CodeReviewModal.tsx
src/renderer/components/source-control/CommitGraph.tsx
src/renderer/components/source-control/CommitGraphHistoryList.tsx
src/renderer/components/source-control/CommitGraphRefBadges.tsx
src/renderer/components/source-control/CommitHistoryList.tsx
src/renderer/components/source-control/SourceControlPanel.tsx
src/renderer/components/source-control/commitGraphLayout.ts
src/renderer/components/source-control/commitRefLabels.ts
src/renderer/hooks/useAutoExecuteTask.ts
src/renderer/hooks/useFileTree.ts
src/renderer/hooks/useGitHistory.ts
src/renderer/hooks/useXterm.ts
src/renderer/lib/__tests__/agentCommand.test.ts
src/renderer/lib/__tests__/terminalInputFilter.test.ts
src/renderer/lib/agentCommand.ts
src/renderer/lib/agentSessionMatch.ts
src/renderer/lib/clipboard.ts
src/renderer/lib/fileTreePaths.ts
src/renderer/lib/gitFileStatus.ts
src/renderer/lib/terminalInputFilter.ts
src/renderer/lib/terminalNewline.ts
src/renderer/stores/agentSessions.ts
src/renderer/stores/agentTasks.ts
src/renderer/stores/codeReviewContinue.ts
src/renderer/stores/settings/index.ts
src/renderer/stores/settings/migration.ts
src/renderer/stores/settings/types.ts
src/renderer/stores/worktreeActivity.ts
src/shared/i18n.ts
src/shared/types/codexHistory.ts
src/shared/types/git.ts
src/shared/types/index.ts
src/shared/types/ipc.ts
src/shared/utils/path.ts
vitest.config.ts
</details>

## 验证结果

- [x] pnpm typecheck
- [x] pnpm test:28 个测试文件、165 项测试全部通过

hmhm2022 added 5 commits July 25, 2026 23:05
- 增加 Codex 会话历史查看、恢复和 SQLite 索引
- 使用独立辅助进程管理 Windows PTY
- 增加 Git 提交历史图表和文件树状态显示
- 修复文件树刷新及 Codex 终端输入问题
@J3n5en
J3n5en merged commit 3be817c into J3n5en:main Aug 2, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants