Codex 桌面应用技术栈全景分析

 ### 基础架构

 ┌──────────┬─────────────────────────────────────────────┐
 │ 层级     │ 技术                                        │
 ├──────────┼─────────────────────────────────────────────┤
 │ 运行时   │ Electron 41.2.0 + Chromium 146 + Node.js 22 │
 ├──────────┼─────────────────────────────────────────────┤
 │ 打包     │ MSIX (Windows Store) + Squirrel (自动更新)  │
 ├──────────┼─────────────────────────────────────────────┤
 │ 构建工具 │ electron-forge 7 + Vite 8                   │
 ├──────────┼─────────────────────────────────────────────┤
 │ 语言     │ TypeScript 5.9.3                            │
 ├──────────┼─────────────────────────────────────────────┤
 │ 包管理   │ pnpm (monorepo workspace)                   │
 ├──────────┼─────────────────────────────────────────────┤
 │ CDP 调试 │ 启动时已默认开启 127.0.0.1:9222             │
 └──────────┴─────────────────────────────────────────────┘

 ────────────────────────────────────────────────────────────────────────────────

 ### 前端 UI 技术栈

 ┌──────────┬─────────────────────────────────────────┬───────────────────────┐
 │ 类别     │ 库                                      │ 用途                  │
 ├──────────┼─────────────────────────────────────────┼───────────────────────┤
 │ 框架     │ React 19.2                              │ UI 核心               │
 ├──────────┼─────────────────────────────────────────┼───────────────────────┤
 │ 路由     │ react-router-dom 7.13                   │ 页面导航              │
 ├──────────┼─────────────────────────────────────────┼───────────────────────┤
 │ 状态管理 │ Jotai 2.19 + @tanstack/react-query 5.90 │ 原子状态 + 服务端状态 │
 ├──────────┼─────────────────────────────────────────┼───────────────────────┤
 │ 表单     │ @tanstack/react-form 1.27               │ 表单处理              │
 ├──────────┼─────────────────────────────────────────┼───────────────────────┤
 │ UI 组件  │ Radix UI (20+ 组件)                     │ 无样式头组件库        │
 ├──────────┼─────────────────────────────────────────┼───────────────────────┤
 │ 样式     │ Tailwind CSS + tailwind-merge           │ 原子化 CSS            │
 ├──────────┼─────────────────────────────────────────┼───────────────────────┤
 │ 动效     │ framer-motion 12.23 + Lottie            │ 动画                  │
 ├──────────┼─────────────────────────────────────────┼───────────────────────┤
 │ 拖拽     │ @dnd-kit 6                              │ 拖拽排序              │
 └──────────┴─────────────────────────────────────────┴───────────────────────┘

 ────────────────────────────────────────────────────────────────────────────────

 ### 编辑器相关

 ┌─────────────────────────┬─────────────────────────────────────┐
 │ 库                      │ 用途                                │
 ├─────────────────────────┼─────────────────────────────────────┤
 │ Lexical 0.32            │ 所见即所得富文本编辑器（Meta 出品） │
 ├─────────────────────────┼─────────────────────────────────────┤
 │ ProseMirror (6 个包)    │ 底层文档模型（代码编辑器核心）      │
 ├─────────────────────────┼─────────────────────────────────────┤
 │ xterm.js 5.5 + node-pty │ 终端模拟器                          │
 ├─────────────────────────┼─────────────────────────────────────┤
 │ Shiki 3.20              │ VS Code 级别语法高亮                │
 ├─────────────────────────┼─────────────────────────────────────┤
 │ yjs + y-protocols       │ CRDT 协同编辑                       │
 ├─────────────────────────┼─────────────────────────────────────┤
 │ diff / diff3            │ Git diff 引擎                       │
 └─────────────────────────┴─────────────────────────────────────┘

 ────────────────────────────────────────────────────────────────────────────────

 ### 数据可视化

 ┌───────────────────┬───────────────────┐
 │ 库                │ 用途              │
 ├───────────────────┼───────────────────┤
 │ Mermaid 11.12     │ 流程图/时序图/UML │
 ├───────────────────┼───────────────────┤
 │ d3 7.9 (完整套件) │ 数据可视化        │
 ├───────────────────┼───────────────────┤
 │ dagre-d3-es 7     │ 有向图自动布局    │
 ├───────────────────┼───────────────────┤
 │ cytoscape 3.33    │ 图形网络可视化    │
 ├───────────────────┼───────────────────┤
 │ mapbox-gl 3.21    │ 地图渲染          │
 ├───────────────────┼───────────────────┤
 │ Three.js 0.179    │ 3D 渲染           │
 └───────────────────┴───────────────────┘

 ────────────────────────────────────────────────────────────────────────────────

 ### 文档 & 内容

 ┌─────────────────────────────────────┬───────────────┐
 │ 库                                  │ 用途          │
 ├─────────────────────────────────────┼───────────────┤
 │ react-markdown 10 + remark + rehype │ Markdown 渲染 │
 ├─────────────────────────────────────┼───────────────┤
 │ KaTeX 0.16                          │ 数学公式      │
 ├─────────────────────────────────────┼───────────────┤
 │ react-pdf + pdfjs-dist 5.4          │ PDF 渲染      │
 ├─────────────────────────────────────┼───────────────┤
 │ docx-preview                        │ Word 文档预览 │
 ├─────────────────────────────────────┼───────────────┤
 │ highlight.js 11                     │ 代码高亮      │
 └─────────────────────────────────────┴───────────────┘

 ────────────────────────────────────────────────────────────────────────────────

 ### 后端 & 系统能力

 ┌────────────────────────────────┬────────────────────┐
 │ 库                             │ 用途               │
 ├────────────────────────────────┼────────────────────┤
 │ better-sqlite3 12.8            │ 本地 SQLite 数据库 │
 ├────────────────────────────────┼────────────────────┤
 │ isomorphic-git 1.37            │ Git 操作（纯 JS）  │
 ├────────────────────────────────┼────────────────────┤
 │ ws 8.19                        │ WebSocket          │
 ├────────────────────────────────┼────────────────────┤
 │ zod 4.1                        │ Schema 验证        │
 ├────────────────────────────────┼────────────────────┤
 │ smol-toml 1.5                  │ TOML 配置解析      │
 ├────────────────────────────────┼────────────────────┤
 │ @modelcontextprotocol/sdk 1.24 │ MCP 协议支持       │
 └────────────────────────────────┴────────────────────┘

 ────────────────────────────────────────────────────────────────────────────────

 ### 监控 & 分析

 ┌────────────────────────────────────────┬─────────────────────────┐
 │ 库                                     │ 用途                    │
 ├────────────────────────────────────────┼─────────────────────────┤
 │ Sentry (electron + node + browser)     │ 错误监控 $$3 层全覆盖$$ │
 ├────────────────────────────────────────┼─────────────────────────┤
 │ Segment                                │ 用户行为分析            │
 ├────────────────────────────────────────┼─────────────────────────┤
 │ Statsig                                │ 特性开关 / A/B 测试     │
 ├────────────────────────────────────────┼─────────────────────────┤
 │ OpenTelemetry (25+ instrumentation 包) │ 全链路追踪              │
 └────────────────────────────────────────┴─────────────────────────┘

 ────────────────────────────────────────────────────────────────────────────────

 ### 原生模块 (node-gyp 编译)

 ┌─────────────────────────────┬────────────────┬───────────────┐
 │ 模块                        │ 大小           │ 用途          │
 ├─────────────────────────────┼────────────────┼───────────────┤
 │ better-sqlite3              │ ~3MB           │ SQLite 数据库 │
 ├─────────────────────────────┼────────────────┼───────────────┤
 │ node-pty                    │ ~200KB         │ 伪终端        │
 ├─────────────────────────────┼────────────────┼───────────────┤
 │ better-sqlite3              │ 内嵌           │ SQLite        │
 ├─────────────────────────────┼────────────────┼───────────────┤
 │ bufferutil / utf-8-validate │ WebSocket 加速 │               │
 └─────────────────────────────┴────────────────┴───────────────┘

 ────────────────────────────────────────────────────────────────────────────────

 ### Monorepo 内部包

 ```
   openai-codex-electron (主应用)
   ├── app-server-types (workspace:*)
   ├── commands (workspace:*)
   ├── protocol (workspace:*)
   ├── shared-node (workspace:*)
   ├── browser-backend-common (link)
   └── browser-common (link)
 ```
