|
2 | 2 |
|
3 | 3 | ## 中文 |
4 | 4 |
|
5 | | -### tool_search 工具链打通 + MCP 授权可移植保险箱 + Usage 命中率 + Code Graph + 一批稳定性修复 |
| 5 | +### tool_search 工具链打通 + MCP 授权可移植保险箱 + Usage 命中率与稳定性修复 |
6 | 6 |
|
7 | | -本版自 v2.1.16 起合入 16 个 PR:打通 Codex 0.130+ 的 `tool_search` MCP 工具全链路、把 MCP 授权做成可移植可恢复的保险箱、补齐 Usage 缓存命中率可视化与 Code Graph 自动生成,并收掉一批真机暴露的稳定性 bug。 |
| 7 | +本版自 v2.1.16 起合入 16 个 PR:打通 Codex 0.130+ 的 `tool_search` MCP 工具链、把 MCP 授权做成可移植可恢复的保险箱,并补 Usage 缓存命中率与一批稳定性修复。 |
8 | 8 |
|
9 | | -主要改动: |
| 9 | +本版改动: |
10 | 10 |
|
11 | | -- `tool_search` 工具链全链路(#289 / #290 / #291 / #293 / MOC-48 #296):Codex 0.130+ 把 server-side MCP 工具(`mcp__notion__*` / `mcp__linear__*` 等)defer 到 `tool_search`、不再直接进 `tools[]`,代理此前会 silently drop。现已在 chat 路径打通:从 `tool_search_output` 发现工具 → 注入 chat `tools[]` → 按 `namespace` 路由回上游;新增 dropped-tools 计数器 dashboard + observability 加固,README 兼容矩阵补说明。 |
12 | | -- MCP 授权可移植保险箱(MOC-62 #307,默认开):把 Codex MCP OAuth 凭据改存为可移植文件 `~/.codex/.credentials.json`(0o600),并在 `~/.codex` 之外维护镜像 `~/.codex-app-transfer/mcp-credentials.json`。整个凭据文件被切账号 / 误删 / 换机清掉时,下次启动弹确认让你从备份恢复;单个 server 的主动登出会被尊重、绝不复活。不解决 OAuth 自然过期(过期仍需重新授权);token 明文落盘(0o600,Codex 官方支持的模式)。 |
13 | | -- Usage 缓存命中率(#305):按对话视图显示每对话缓存命中率,点数字弹出逐轮命中率直方图(命中含于总计、双色,hover 看命中 / 总输入 / 输出);proxy 本地记录 `session → 真实上游模型`,按对话模型列显示真实上游模型而非 Codex 客户端占位名 `gpt-5.x`(本版本之后的新对话)。 |
14 | | -- Code Graph 自动生成 + Pages 部署(MOC-52 #298 / #300,#297 加 README 链接):`cargo metadata` 自动生成交互式 crate 依赖图,GitHub Actions 直接部署到 Pages(无 gh-pages 分支、不提交 main);下载量趋势 SVG 同址发布。 |
15 | | -- `apply_patch` chat 路径长文档信封修复(#303):长文档编辑场景下非破坏性修正 patch 信封,避免长文档 diff 失败。 |
16 | | -- 启动防白屏(#257):前端初始化链加 try-catch,`config.json` 锁 / 损坏 / 权限问题不再让整条初始化断裂导致白屏,getSettings 失败时回退默认值保证 UI 可用。 |
17 | | -- `model_catalog.json` 自动同步(#266 / #287):改 model 或重启 Codex 时自动同步 catalog,避免模型清单与实际配置不一致。 |
18 | | -- 关闭桌面宠物开关真正生效(MOC-34 #286):关掉自动唤醒 Codex 桌面宠物后 pet 真正关闭,不再残留。 |
19 | | -- 杂项修复(MOC-54 #306):残留配置扫描改 await auto_apply 落盘消除启动竞态(修复清掉残留、重启又报残留的根因);致谢概览长度改 CI 门禁强制(`README.md` ≤ 20 字 / `README.en.md` ≤ 40 字);活跃度图单点态渲染 grid + marker 不再空荡。 |
20 | | -- 修若干 fetch 失败场景(#285)。 |
| 11 | +- `tool_search` 工具链全链路:Codex 0.130+ 把 server-side MCP 工具 defer 到 `tool_search`、不再直接进 `tools[]`,代理此前会 silently drop;现 chat 路径打通(发现 → 注入 → 按 `namespace` 路由回上游),并加 dropped-tools 计数器与 observability。 |
| 12 | +- MCP 授权可移植保险箱(默认开):凭据改存可移植 `~/.codex/.credentials.json` 并维护 `~/.codex` 外镜像,整文件被切账号 / 误删 / 换机清掉时下次启动弹确认恢复,单 server 主动登出不复活;不解决 OAuth 过期。 |
| 13 | +- Usage 缓存命中率:按对话显示命中率与逐轮命中率直方图,模型列显示真实上游模型而非 `gpt-5.x` 占位。 |
| 14 | +- Code Graph 自动生成:`cargo metadata` 出交互式 crate 依赖图,GitHub Actions 部署到 Pages。 |
| 15 | +- 稳定性修复:`apply_patch` chat 长文档信封、启动防白屏 try-catch、`model_catalog.json` 自动同步、关闭桌面宠物开关真正生效、残留扫描启动竞态与活跃度图单点态。 |
21 | 16 |
|
22 | 17 | ### 验证 |
23 | 18 |
|
24 | 19 | - `cargo fmt --all -- --check` |
25 | | -- `cargo test --workspace` + `cargo test -p codex-app-transfer` |
26 | | -- CI 全绿(含新增 `docs-acknowledgements` 致谢长度门禁) |
| 20 | +- `cargo test --workspace` |
| 21 | +- `cargo test -p codex-app-transfer` |
27 | 22 |
|
28 | 23 | ## English |
29 | 24 |
|
30 | | -### tool_search tool-chain wired end-to-end + portable MCP auth vault + Usage hit rate + Code Graph + stability fixes |
| 25 | +### tool_search tool chain wired + portable MCP auth vault + Usage hit rate and stability fixes |
31 | 26 |
|
32 | | -This release merges 16 PRs since v2.1.16: wires the Codex 0.130+ `tool_search` MCP tool chain end-to-end, turns MCP authorization into a portable, recoverable vault, adds Usage cache-hit-rate visualization and automatic Code Graph generation, and clears a batch of field-surfaced stability bugs. |
| 27 | +This release merges 16 PRs since v2.1.16: it wires the Codex 0.130+ `tool_search` MCP tool chain, turns MCP authorization into a portable recoverable vault, and adds Usage cache-hit-rate plus a batch of stability fixes. |
33 | 28 |
|
34 | | -Changes: |
| 29 | +Changes in this release: |
35 | 30 |
|
36 | | -- `tool_search` tool chain end-to-end (#289 / #290 / #291 / #293 / MOC-48 #296): Codex 0.130+ defers server-side MCP tools (`mcp__notion__*` / `mcp__linear__*`, etc.) to `tool_search` instead of putting them directly in `tools[]`; the proxy used to silently drop them. Now wired on the chat path: discover tools from `tool_search_output` → inject into chat `tools[]` → route back upstream by `namespace`; added a dropped-tools counter dashboard + observability hardening, with the README compatibility matrix updated. |
37 | | -- Portable MCP auth vault (MOC-62 #307, on by default): stores Codex MCP OAuth credentials in a portable file `~/.codex/.credentials.json` (mode 0o600) and keeps a mirror outside `~/.codex` at `~/.codex-app-transfer/mcp-credentials.json`. When the whole file is wiped by an account switch / accidental delete / new machine, the next launch prompts you to restore from backup; an intentional per-server logout is respected and never resurrected. Does not fix natural OAuth expiry (expired tokens still need re-authorization); tokens are stored in plaintext (mode 0o600, a Codex-supported mode). |
38 | | -- Usage cache hit rate (#305): the by-conversation view shows each conversation's cache hit rate; clicking the number opens a per-prompt hit-rate histogram (cached contained within total, two-tone; hover for cached / total input / output). The proxy locally records `session → real upstream model`, so the model column shows the real upstream model instead of Codex's `gpt-5.x` placeholder (for conversations after this version). |
39 | | -- Automatic Code Graph + Pages deploy (MOC-52 #298 / #300, #297 adds the README link): `cargo metadata` generates an interactive crate dependency graph deployed straight to Pages via GitHub Actions (no gh-pages branch, no commits to main); the download-trend SVG is published at the same site. |
40 | | -- `apply_patch` chat-path long-document envelope fix (#303): non-destructive envelope correction for long-document edits, avoiding failed long-document diffs. |
41 | | -- White-screen guard on startup (#257): the frontend init chain is wrapped in try-catch so a locked / corrupt / permission-denied `config.json` no longer breaks the whole init into a white screen; getSettings falls back to defaults to keep the UI usable. |
42 | | -- Automatic `model_catalog.json` sync (#266 / #287): the catalog auto-syncs when changing model or restarting Codex, avoiding drift between the model list and actual config. |
43 | | -- Desktop-pet toggle truly takes effect (MOC-34 #286): turning off the auto-wake Codex desktop pet now actually disables it. |
44 | | -- Misc fixes (MOC-54 #306): the residual-config scan now awaits auto_apply persistence to remove a startup race (the root cause of "clean the residue, restart, residue reappears"); acknowledgement-overview length is now CI-enforced (`README.md` ≤ 20 chars / `README.en.md` ≤ 40 chars); the activity chart renders a grid + marker in its single-point state instead of looking empty. |
45 | | -- Several fetch-failure fixes (#285). |
| 31 | +- `tool_search` tool chain: Codex 0.130+ defers server-side MCP tools to `tool_search` instead of `tools[]`, which the proxy used to silently drop; the chat path is now wired (discover, inject, route back by `namespace`), with a dropped-tools counter and observability. |
| 32 | +- Portable MCP auth vault (on by default): credentials move to a portable `~/.codex/.credentials.json` with a mirror kept outside `~/.codex`; if the whole file is wiped by an account switch, delete, or new machine, the next launch prompts to restore, while an intentional per-server logout is respected; OAuth expiry is not solved. |
| 33 | +- Usage cache hit rate: per-conversation hit rate with a per-prompt histogram, and the real upstream model shown instead of the `gpt-5.x` placeholder. |
| 34 | +- Code Graph: `cargo metadata` generates an interactive crate dependency graph deployed to Pages via GitHub Actions. |
| 35 | +- Stability fixes: `apply_patch` long-document envelope on the chat path, white-screen try-catch on startup, automatic `model_catalog.json` sync, the desktop-pet toggle truly disabling, and the residual-scan startup race plus activity-chart single-point state. |
46 | 36 |
|
47 | 37 | ### Verification |
48 | 38 |
|
49 | 39 | - `cargo fmt --all -- --check` |
50 | | -- `cargo test --workspace` + `cargo test -p codex-app-transfer` |
51 | | -- CI green (including the new `docs-acknowledgements` length gate) |
| 40 | +- `cargo test --workspace` |
| 41 | +- `cargo test -p codex-app-transfer` |
0 commit comments