Skip to content

feat(stepwise): add Answer Outline and evolve the floating panel into a multi-mode interface - #1846

Open
0xTotoroX wants to merge 6 commits into
BigPizzaV3:mainfrom
0xTotoroX:codex/stepwise-pr-ready
Open

feat(stepwise): add Answer Outline and evolve the floating panel into a multi-mode interface#1846
0xTotoroX wants to merge 6 commits into
BigPizzaV3:mainfrom
0xTotoroX:codex/stepwise-pr-ready

Conversation

@0xTotoroX

@0xTotoroX 0xTotoroX commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

摘要

本 PR 在现有 Stepwise 基础上加入回答大纲,并将原先的圆形入口重新设计为统一的多模式悬浮面板。Stepwise 与回答大纲作为面板内可独立控制的二级功能,同时完成生成链路、运行稳定性、Manager 集成与界面体验的迭代。

主要变化

功能结构

  • 新增回答大纲,可将当前回答整理为多层级结构。
  • Stepwise 与回答大纲可独立启用、关闭和切换。
  • 关闭某项功能后,不再执行该功能对应的解析与展示。

Stepwise

  • 支持 Chat Completions、Responses、Anthropic Messages 与自动兼容模式。
  • 完善最新问答识别、虚拟化消息、历史滚动与异步结果竞争处理,避免上下文误切换或旧结果覆盖。
  • 优化提示词约束、语言跟随、建议排序与去重,提升结果稳定性。

悬浮面板

  • 将原圆形入口重新设计为胶囊态,并新增胶囊态与展开态两级形态。
  • 新增状态表情系统,重新设计展开、收起和模式切换动效。
  • 完善拖动、尺寸调整、位置记忆与字体控制。
  • 提供磨砂、通透、液态、冰晶、哑光五种主题,可根据不同 Codex++ 皮肤的色彩、明暗与材质风格选择更协调的悬浮面板方案,保持整体界面的视觉一致性。

Manager

  • 将悬浮面板提升为一级设置分组,Stepwise 与回答大纲作为独立子功能管理。
  • 支持从悬浮面板直接定位到对应设置区域。
  • 改善设置页面长期存在的区块间距与内容分组问题,使页面层级更清晰。

运行稳定性

  • 收紧 CDP 页面选择范围,避免向无关页面注入。
  • 完善 Bridge 生命周期与并发请求处理,避免重复注入、重复响应和旧会话残留。
  • 保持前端缓存与请求去重,减少相同回答的重复生成。

兼容性

  • 不改变 Codex 主对话的模型调用路径。
  • Stepwise API 配置与主对话配置继续保持独立。
  • 现有设置可继续使用,并由新设置结构统一同步到 Manager 与悬浮面板。

关联 Issue

验证

  • cargo test --workspace
  • Manager:56 / 56
  • Stepwise 核心:19 / 19
  • Bridge 路由:29 / 29
  • CDP Bridge:133 / 133
  • Launcher:78 / 78
  • TypeScript 检查与 Vite production build
  • cargo clippy --workspace --all-targets --all-features
  • macOS arm64 Release 构建、ad-hoc 签名与 DMG 校验
  • 冷启动后在精确 app://-/index.html 验证脚本与 Bridge 单例稳定
  • 真实 Stepwise 冒烟测试:自动协议命中 Responses,返回 4 条中文且去重有效的建议

测试构建

macOS arm64 测试构建:

https://github.com/0xTotoroX/CodexPlusPlus/releases/tag/stepwise-pr-test-46228f9

该构建使用 ad-hoc 签名,未进行公证,仅用于本 PR 的人工测试。


恰逢 Grok 4.6 与 DeepSeek-V4-Pro-0813 上线,希望本次 Stepwise 与回答大纲的迭代,能够让来自不同模型的长回答更容易被理解、整理并继续推进。

@0xTotoroX

Copy link
Copy Markdown
Contributor Author

CI 补充说明

第一次 CI 失败发生在 Windows 构建阶段,原因是 Windows checkout 将内置的第一方注入脚本转换成了 CRLF 换行,导致 4 个源码契约测试的跨行匹配失败。该问题不是功能逻辑失败。

本次处理没有修改 CI 工作流,也没有修改测试断言或降低测试要求,而是在 .gitattributes 中固定 assets/inject/*.js 使用 LF 换行,确保不同平台下编译期嵌入的脚本内容保持一致。

第二次 CI 失败发生在 macOS arm64 的 DMG 打包阶段。Rust 编译、测试、代码签名和 App bundle 校验均已通过,但 hdiutil create 遇到了瞬时的 Resource busy 错误。

针对这一问题,打包脚本现在会先将 DMG 写入临时路径,成功后再移动到最终位置;如果遇到瞬时失败,最多重试 3 次,连续失败才会终止任务。

之后的 Windows、macOS arm64 和 macOS x64 CI 检查均已通过。

@0xTotoroX
0xTotoroX marked this pull request as ready for review August 12, 2026 20:40
@BigPizzaV3

Copy link
Copy Markdown
Owner

维护者审查:三平台 CI 已通过,功能说明和测试覆盖也很充分;但当前 PR 同时包含回答大纲、多协议 Stepwise、约 6800 行注入脚本重构、CDP target 选择、Bridge 生命周期、Launcher、Manager 导航以及 DMG 重试,改动面过大,任一运行时回归都很难单独回退或定位。

建议至少拆成三个可独立验证的 PR:

  1. CDP/Bridge/Launcher 生命周期稳定性修复及对应测试;
  2. Stepwise 多协议与运行开关逻辑;
  3. 回答大纲、悬浮面板和 Manager UI。

.gitattributes 与 DMG Resource busy 重试属于通用 CI/打包修复,也建议单独拆出。当前不建议整包直接合并;拆分后可优先审查并合并底层稳定性部分。

@0xTotoroX
0xTotoroX force-pushed the codex/stepwise-pr-ready branch from ce4bff0 to 7a3c073 Compare August 13, 2026 11:32
@0xTotoroX

0xTotoroX commented Aug 13, 2026

Copy link
Copy Markdown
Contributor Author

感谢建议!我已按功能边界完成拆分,并分别基于最新 main 创建了独立 PR:

  1. #1852 — CDP、Bridge 与 Launcher 生命周期稳定性修复及测试
  2. #1853 — Stepwise 多协议支持、自动兼容与运行开关
  3. #1854 — 跨平台构建可靠性修复(注入脚本 LF 换行与 macOS DMG 重试)

这三个 PR 已分别完成针对性测试,改动文件之间没有重叠,便于独立审查、验证和回退。

回答大纲、悬浮面板和 Manager UI 部分已在本地准备,但会等待前置功能 PR 合并后,再基于最新 main 单独整理 UI PR,避免重复携带底层依赖。

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.

[Bug]: Stepwise 大多数时候不生成建议,偶尔生成时语言不一致 [Bug]:

2 participants