Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions docs/custom-fork/CODEX_DESKTOP_PARITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@ Thread

| 项目 | 状态 | 说明 |
| --- | --- | --- |
| 模型能力菜单 | fixed in integration | PR #209 按真实 metadata 限定 reasoning levels |
| Windows 本地链接 | fixed in integration | PR #212 修复 `/C:/...` 后端解析 |
| 模型能力菜单 | fixed on main | PR #209 按真实 metadata 限定 reasoning levels |
| Windows 本地链接 | fixed on main | PR #212 修复 `/C:/...` 后端解析 |
| Turn 分组与统一 reducer | needs follow-up | 当前仍主要使用扁平 `UiMessage[]` |
| Worked/文件修改主数据源 | needs follow-up | 需要统一 fileChange/item/diff/persisted 优先级 |
| 断线恢复 | needs follow-up | 先做诊断与 reducer 对账 |
Expand Down
8 changes: 4 additions & 4 deletions docs/custom-fork/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@

## 当前状态

截至 2026-07-27,以下工作位于 `integration/upstream-prs`,尚未声明已经进入 `main`:
截至 2026-07-27,Fork PR #1 已合并到 `main`,merge commit 为 `5b9d584`:

- 已选择性集成 PR #203:Windows Codex CLI 解析。
- 已选择性集成 PR #209:按模型能力显示 `max/ultra` 推理等级,并增加无元数据模型的保守回退。
- 已选择性集成 PR #212:Windows `/C:/...` 本地浏览路径修复。
- 已选择性合并 PR #203:Windows Codex CLI 解析。
- 已选择性合并 PR #209:按模型能力显示 `max/ultra` 推理等级,并增加无元数据模型的保守回退。
- 已选择性合并 PR #212:Windows `/C:/...` 本地浏览路径修复。
- 已建立本目录的维护、架构、部署、安全、同步、需求、测试和 Desktop parity 文档。
- PR #211 Goal mode 按用户要求排除。
- Runtime Reload、Project Sync、Timeline 重构和断线诊断仍为规划项,未实现。
Expand Down
18 changes: 9 additions & 9 deletions docs/custom-fork/REQUIREMENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@
| 编号 | 用户场景 | 功能需求 | 非功能需求 | 验收标准 | 优先级 | 状态 |
| --- | --- | --- | --- | --- | --- | --- |
| BASE-001 | Windows 与 Ubuntu 双机远程使用 | 两台主机各自运行 codexapp + app-server,并可经 FRP 访问 | Windows 优先,Ubuntu 24.04 兼容 | 两平台构建、启动、RPC、WS 和核心流程通过 | P0 | planned |
| BASE-002 | 安全开始维护 | 检查分支、工作区、remote、HEAD、工具版本和测试基线 | 不覆盖本地修改,不在 main 实验 | 审计文档含真实 commit/version/result | P0 | done-in-branch |
| BASE-003 | 可持续同步上游 | 配置 `upstream=friuns2/codex-mobile`,逐 PR 选择性集成 | 不盲合并,不使用自动 ours/theirs | 每 PR 独立 diff、commit、测试、风险与回滚 | P0 | done-in-branch |
| BASE-002 | 安全开始维护 | 检查分支、工作区、remote、HEAD、工具版本和测试基线 | 不覆盖本地修改,不在 main 实验 | 审计文档含真实 commit/version/result | P0 | done-on-main |
| BASE-003 | 可持续同步上游 | 配置 `upstream=friuns2/codex-mobile`,逐 PR 选择性集成 | 不盲合并,不使用自动 ours/theirs | 每 PR 独立 diff、commit、测试、风险与回滚 | P0 | done-on-main |
| BASE-004 | 可复现构建 | 固定包管理器和依赖解析 | 供应链可审计 | lockfile 与双平台 clean install/build 通过 | P0 | planned |
| PR-203 | PowerShell 可运行 codex 但 Node 找不到 | 统一 Windows Codex 命令探测、登录、临时/主 app-server 启动 | 不增加 probe/网络,不读取认证 | shim 走 cmd.exe,bundled bin path 正确,测试/build 通过 | P0 | done-in-branch |
| PR-209 | GPT-5.6 选择 max/ultra | 从 `model/list` 读取每模型 supported/default reasoning | 未声明能力不显示新档;切模有确定 fallback | Sol/Terra/Luna/5.5 与未知模型菜单和 payload 正确 | P0 | done-in-branch |
| PR-212 | Windows 文件链接 404 | `/C:/...` 还原为 `C:/...` | Unix、UNC、已规范化、坏编码不回归 | unit、真实 GET、TestChat 三断言通过 | P0 | done-in-branch |
| PR-203 | PowerShell 可运行 codex 但 Node 找不到 | 统一 Windows Codex 命令探测、登录、临时/主 app-server 启动 | 不增加 probe/网络,不读取认证 | shim 走 cmd.exe,bundled bin path 正确,测试/build 通过 | P0 | done-on-main |
| PR-209 | GPT-5.6 选择 max/ultra | 从 `model/list` 读取每模型 supported/default reasoning | 未声明能力不显示新档;切模有确定 fallback | Sol/Terra/Luna/5.5 与未知模型菜单和 payload 正确 | P0 | done-on-main |
| PR-212 | Windows 文件链接 404 | `/C:/...` 还原为 `C:/...` | Unix、UNC、已规范化、坏编码不回归 | unit、真实 GET、TestChat 三断言通过 | P0 | done-on-main |
| PR-211 | 不需要 Goal mode | 不集成 Goal mode PR | 不引入无关 UI/状态 | 分支与文档无 Goal mode 代码 | P0 | excluded |

## Runtime Reload 与诊断
Expand Down Expand Up @@ -62,11 +62,11 @@
| --- | --- | --- | --- | --- | --- | --- |
| SEC-001 | 保护认证 | 禁止读取/上传/记录敏感认证与完整配置 | 默认最小数据;无遥测 | 代码审查和日志/响应泄密测试通过 | P0 | planned |
| SEC-002 | 限制进程控制 | 只能重启当前 bridge child,不接受任意 PID/命令 | 现有认证覆盖 | 恶意 PID/命令字段被拒绝 | P0 | planned |
| TEST-001 | 每阶段可验证 | 提供修改文件、设计、单测、build、手测、限制、回滚 | 真实结果,不因耗时跳过 | `ROADMAP/AUDIT/TEST_PLAN` 同步更新 | P0 | done-in-branch |
| TEST-002 | UI 不回归 | 亮/暗、375x812、768x1024,文件链接使用 TestChat 三断言 | 截图可追溯;无重叠/溢出 | assertion + screenshot 路径入测试报告 | P0 | done-in-branch |
| PERF-001 | 功能不拖慢应用 | 每行为变更审计 duplicate requests、阻塞、fanout、payload、cache 和 bundle | 以测量或具体路径为证 | 每提交有性能记录 | P0 | done-in-branch |
| TEST-001 | 每阶段可验证 | 提供修改文件、设计、单测、build、手测、限制、回滚 | 真实结果,不因耗时跳过 | `ROADMAP/AUDIT/TEST_PLAN` 同步更新 | P0 | done-on-main |
| TEST-002 | UI 不回归 | 亮/暗、375x812、768x1024,文件链接使用 TestChat 三断言 | 截图可追溯;无重叠/溢出 | assertion + screenshot 路径入测试报告 | P0 | done-on-main |
| PERF-001 | 功能不拖慢应用 | 每行为变更审计 duplicate requests、阻塞、fanout、payload、cache 和 bundle | 以测量或具体路径为证 | 每提交有性能记录 | P0 | done-on-main |
| PARITY-001 | 对齐 Desktop | 先观察、截图、列差异,再自行实现 | 不复制私有源码/资源 | 每项标 fixed/deviation/follow-up | P2 | planned |

## 状态更新规则

代码只在集成分支通过不等于已发布;进入 `main` 后把对应项改为 `done-on-main`,生产部署验证后再改为 `deployed`。任何 stub UI 测试必须标明 stub 范围,不能替代真实 app-server/Provider 验证。
进入 `main` 只表示代码已合并,生产部署验证后才能改为 `deployed`。任何 stub UI 测试必须标明 stub 范围,不能替代真实 app-server/Provider 验证。
27 changes: 13 additions & 14 deletions docs/custom-fork/ROADMAP.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Custom Fork 路线图

状态定义:`done` 表示已在当前集成分支验证;`in-progress` 表示正在集成但尚未进入 `main`;`planned` 表示只有设计边界;`deferred` 表示本轮明确延期。
状态定义:`done-on-main` 表示已验证并进入 Fork `main`;`done` 表示已验证但没有发布含义;`planned` 表示只有设计边界;`deferred` 表示本轮明确延期。

## P0 安全基线与上游 PR

Expand All @@ -9,20 +9,20 @@
| 检查分支、工作区、origin/upstream、HEAD | done | 基线 `fac2291`;开始时三者 `main` 一致,工作区干净 |
| 记录 Node/pnpm/Codex 版本 | done | Node 22.16.0;pnpm 10.18.3 用于验证;Codex CLI 0.144.6 |
| 单元测试与 frontend/CLI build 基线 | done | 见 `TEST_PLAN.md` |
| PR #203 Windows CLI 解析 | in-progress | 集成提交 `bcd9524`,待进入 fork `main` |
| PR #209 GPT-5.6 max/ultra | in-progress | 集成提交 `90c5ae2`,待进入 fork `main` |
| PR #212 Windows browse path | in-progress | 集成提交 `e73599c`,待进入 fork `main` |
| PR #203 Windows CLI 解析 | done-on-main | Fork 提交 `bcd9524`;经 PR #1 合并 |
| PR #209 GPT-5.6 max/ultra | done-on-main | Fork 提交 `90c5ae2`;经 PR #1 合并 |
| PR #212 Windows browse path | done-on-main | Fork 提交 `e73599c`;经 PR #1 合并 |
| PR #211 Goal mode | deferred | 用户明确排除 |
| PR #187/#199/#206 | deferred | 本轮不做复杂前端/渲染改动;后续逐项深审 |

## P0 长期维护文档

| 项目 | 状态 | 说明 |
| --- | --- | --- |
| 维护入口、架构、部署、安全 | done | `docs/custom-fork/` |
| 上游同步与 PR 审计 | done | 记录选择性 cherry-pick 和复查条件 |
| 需求与测试计划 | done | 所有后续阶段必须更新 |
| Desktop parity 工作流 | done | 仅定义合法观察/实现流程,未进行大型 UI 对齐 |
| 维护入口、架构、部署、安全 | done-on-main | `docs/custom-fork/` |
| 上游同步与 PR 审计 | done-on-main | 记录选择性 cherry-pick 和复查条件 |
| 需求与测试计划 | done-on-main | 所有后续阶段必须更新 |
| Desktop parity 工作流 | done-on-main | 仅定义合法观察/实现流程,未进行大型 UI 对齐 |

## P1 后端优先能力

Expand All @@ -47,9 +47,8 @@

## 下一实施顺序

1. 将当前三个集成提交与文档通过 fork PR 合并进 `main`。
2. 单独修复或约束 Windows dev wrapper,并确认 Codex CLI 0.144.6 app-server 退出原因。
3. 为 Runtime Reload 写状态机单测,再实现只读 status API。
4. 实现 restart 单飞、活动 turn/approval 保护、旧 RPC 失败收敛和 diagnostics。
5. 实现 Project Sync 的 Desktop reader、thread/list 全分页和 preview API。
6. 最后开始 Reload/Sync UI 与 Timeline/Parity 工作。
1. 单独修复或约束 Windows dev wrapper,并确认 Codex CLI 0.144.6 app-server 退出原因。
2. 为 Runtime Reload 写状态机单测,再实现只读 status API。
3. 实现 restart 单飞、活动 turn/approval 保护、旧 RPC 失败收敛和 diagnostics。
4. 实现 Project Sync 的 Desktop reader、thread/list 全分页和 preview API。
5. 最后开始 Reload/Sync UI 与 Timeline/Parity 工作。
4 changes: 3 additions & 1 deletion docs/custom-fork/TEST_PLAN.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,13 @@
| pnpm | 10.18.3 via Corepack |
| Codex CLI | 0.144.6 |
| 基线 commit | `fac2291` |
| 集成分支 | `integration/upstream-prs` |
| 合并结果 | Fork PR #1,merge commit `5b9d584` |
| lockfile | 不存在 |

依赖安装使用 `COREPACK_ENABLE_PROJECT_SPEC=0` 和 `--lockfile=false`,避免 Corepack 自动改写 `package.json`。这只适合当前开发验证,不能替代生产可复现依赖策略。

GitHub 已确认 PR #1 为 `MERGED`,`mergedAt` 非空,`origin/main` 包含 `bcd9524`、`90c5ae2`、`e73599c` 和文档提交 `a0fab0b`。

## 自动化结果

| 阶段 | Targeted | 全量 unit | Frontend/typecheck | CLI build/smoke |
Expand Down
8 changes: 4 additions & 4 deletions docs/custom-fork/UPSTREAM_PR_AUDIT.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Upstream PR 审计

审计基线:`fac2291`。本轮“合并”指把选定上游提交集成到 `CYZice/codex-mobile` 的 `integration/upstream-prs`;在进入 fork `main` 前状态仍为 `in-progress`,且不会声称上游 PR 已由 `friuns2` 合并
审计基线:`fac2291`。选定上游提交已通过 Fork PR #1 合并到 `CYZice/codex-mobile` 的 `main`,merge commit 为 `5b9d584`。这不表示上游 `friuns2` 的原 PR 已由其维护者合并或关闭

## 已集成

Expand Down Expand Up @@ -31,6 +31,6 @@

## 后续动作

1. 推送 `integration/upstream-prs` 到 origin,创建 fork PR
2. 在 fork PR checks 通过后合并到 `main`,验证 `origin/main` 包含三个 Fork 提交
3. 上游若更新 PR head,先比较新旧 head;不自动覆盖本地调整
1. 上游若更新 PR head,先比较新旧 head;不自动覆盖本地调整
2. 在 Windows dev wrapper 和 Codex app-server 兼容性问题解决后,重跑真实 RPC/模型菜单验证
3. 到达各自复查条件后,再深审 #187、#199、#206