Parent roadmap: #15
What
为 Codex App Server 的 Thread/Turn/Item 建立结构化前后端模型,并在 Flowix 会话 UI 中分别展示消息、Reasoning、计划、命令执行、文件变更和 MCP 调用。
Why
当前 Codex 事件被压缩为通用 Text, Reasoning, ToolCall, ToolResult chunk,很多运行状态、增量内容、命令进度和文件 Diff 会丢失或只能显示为原始 JSON,无法形成完整的任务工作台体验。
Implementation
- 定义
CodexThread, CodexTurn, CodexItem 及稳定的 discriminated variants。
- 映射 agent message delta、Reasoning、plan、command execution、file change、MCP tool call 和错误/完成状态。
- 保留 App Server 的 thread/turn/item ID,用于增量更新、审批关联和恢复。
- 命令卡片展示命令、cwd、实时输出、运行状态和退出码。
- 文件变更卡片展示文件路径、Diff、增加/删除统计及打开文件操作。
- 计划卡片展示步骤、当前状态和完成进度。
- MCP 卡片展示 server、tool、输入摘要、进度和结果摘要。
- 未识别 Item 转为
unknown 类型,保存类型名和安全截断后的摘要,不中断整个 Turn。
- 保留现有通用 Agent 消息适配层,使其他外部 Agent 不受影响。
Acceptance criteria
- 所有已支持 Item 都能增量更新而不会重复渲染。
- 命令、文件 Diff、计划和 MCP 调用具有独立且可读的 UI。
- 大输出和大 Diff 有明确截断、展开和性能保护。
- 未知 Item 不会导致会话加载或流式运行失败。
- 历史加载与实时通知生成相同的前端数据模型。
- 覆盖 delta 合并、乱序事件、重复通知、未知类型和大输出测试。
Dependencies
Non-goals
- 不在本 Issue 中处理用户审批决策。
- 不实现 Codex 账户配置或 Flowix MCP Server。
- 不改变 Claude、Hermes 等其他 runtime 的协议模型。
Parent roadmap: #15
What
为 Codex App Server 的 Thread/Turn/Item 建立结构化前后端模型,并在 Flowix 会话 UI 中分别展示消息、Reasoning、计划、命令执行、文件变更和 MCP 调用。
Why
当前 Codex 事件被压缩为通用
Text,Reasoning,ToolCall,ToolResultchunk,很多运行状态、增量内容、命令进度和文件 Diff 会丢失或只能显示为原始 JSON,无法形成完整的任务工作台体验。Implementation
CodexThread,CodexTurn,CodexItem及稳定的 discriminated variants。unknown类型,保存类型名和安全截断后的摘要,不中断整个 Turn。Acceptance criteria
Dependencies
Non-goals