Skip to content

Releases: gzy3894-png/codex-cli-zh-binary-skill

codex-for-tui-v2.5.26

Choose a tag to compare

Codex for TUI 2.5.26

2.5.26 是模型默认值与上下文压缩热修,修复 2.5.25 真机上 /model 已切换、control 配置仍是旧值,以及低上下文占用切模连续自动 compact。

用户可见变化

1. /model 即时写回配置真源

  • Codex 仍先把选择写到当前 profile 的隔离 runtime。
  • 交互 launcher 自动启动轻量 codex-session-defaults watch-runtime
  • runtime 变化后立即事务更新当前 profile 与 ~/.codex/config.toml,不再等下一次启动消费 pending 文件。
  • 每次写回携带 profile generation;配置模式或其他新会话已改过配置时,旧 watcher 会停止,不能覆盖较新的选择。

2. 固定压缩阈值真正生效

Codex 0.144.1 在两个模型的 comp_hash 不同时会无条件 auto compact,即使只用了很少上下文。固定策略 materialize 到 runtime 时,本版会清除 runtime 副本中的:

  • comp_hash
  • 模型自带 auto_compact_token_limit

profile/control 模型目录仍保留上游值;切回「跟随模型」会恢复。固定模式下只有用户设置的 token 阈值和上下文安全边界能触发自动压缩。

3. 只读命令零副作用

codex --versioncodex -Vcodex --helpcodex -hcodex help 直接调用真实二进制,不再准备 profile runtime,也不会消费待写默认值。

回归证据

问题会话在约 57 秒内发生两次 PreCompact:auto

  • 第一次约 8k / 353k
  • 第二次约 26k / 258k

两次都紧邻 thread_settings_applied,对应 gpt-5.5.comp_hash=2911gpt-5.6-sol.comp_hash=3000 的切换,而不是达到 token 阈值。

版本元数据

  • versionName=2.5.26
  • versionCode=92
  • runtime epoch:apk-2.5.26
  • Codex binary:0.144.1-zh.1
  • 包名:com.gzy3894.codexfortui

回滚

Android 已安装 versionCode=92 后不能普通覆盖降级。若本版安装后出现产品问题,应发布更高 versionCode 的前滚热修;脚本级临时回退可设置:

CODEX_FOR_TUI_SESSION_DEFAULTS_WATCH=0 codex

这只关闭即时默认值同步,不会改写模型目录或会话记录。

codex-for-tui-v2.5.25

Choose a tag to compare

Codex for TUI 2.5.25

2.5.25 在 2.5.24 之上补齐 flag on 时自动常驻 watch(Runtime Emitter 产品路径),默认仍 不改变 折叠行为。

相对 2.5.24 的变更

1) ensure-watch / stop-watch

  • codex-tui-fold-bridge ensure-watch:仅当 session-fold-bridge.policyenabled=1 时后台启动 watchenabled=0 时 no-op 并停掉旧 daemon。
  • stop-watch:停止后台 watch。
  • status 增加 watch.running / pid / log 路径。

2) launcher 自动挂钩

  • codex 交互启动(codex_for_tui_run_real)best-effort 调用 ensure-watch
  • 默认 policy enabled=0不启 daemon(≡ 2.5.23 / 2.5.24 flag-off)。
  • 可用 CODEX_TUI_FOLD_BRIDGE_AUTO_WATCH=0 完全关闭挂钩。

3) 仍继承 2.5.24

  • fold-bridge map/tail/discover/watch + 库内包装
  • 文件托盘文本可选中/复制/分享(MediaPreviewPane
  • flag 默认 enabled=0 / mode=dry-run

明确未完成

  • T-DELIVER 长 final 强制入托盘 + T-S1 终端摘要分流
  • 默认仍 开 PTY tap

版本元数据

  • versionName=2.5.25
  • versionCode=91
  • runtime epoch:apk-2.5.25
  • 包名:com.gzy3894.codexfortui

test 开启(测完务必关)

cat > "$PREFIX/local/ops/session-fold-bridge.policy" <<'EOF'
enabled=1
mode=apply
title_prefix=turn
EOF
# 下次 `codex` 交互启动会 ensure-watch;也可手动:
codex-tui-fold-bridge ensure-watch
# 回滚
cat > "$PREFIX/local/ops/session-fold-bridge.policy" <<'EOF'
enabled=0
mode=dry-run
EOF
codex-tui-fold-bridge stop-watch

回滚

  1. flag:enabled=0 / mode=dry-run + stop-watch
  2. 卸 2.5.25,重装 2.5.23(versionCode=89)或 2.5.24(versionCode=90

验证建议

sh tests/codex-for-tui-fold-bridge-smoke.sh
sh tests/codex-for-tui-static-guards.sh

CODEX_TUI_EXPECTED_VERSION_CODE=91 \
CODEX_TUI_EXPECTED_VERSION_NAME=2.5.25 \
  sh tests/codex-for-tui-installed-device-smoke.sh
# flag on:单 turn 后 session-fold 出现 start…done(无需模型调 codex-session)
# flag off:无自动 fold
# 托盘文本可复制

codex-for-tui-v2.5.24

Choose a tag to compare

Codex for TUI 2.5.24

2.5.24 是 test 通道 能力包:会话折叠 Runtime Emitter(fold-bridge)库内 MVP + 文件托盘文本可复制。
默认不改变 2.5.23 的折叠/长文行为session-fold-bridge flag 默认 enabled=0 / mode=dry-run

本版包含

1) session-fold Runtime Emitter(方案 A · N3.4)

  • 新增 libexec/codex-tui-fold-bridge.py:把 Codex rollout jsonl 的
    task_started / task_complete / turn_aborted 映射为 codex-session start|done|fail
  • 命令:map-file · tail-once · discover-active · watch · status · self-test
  • 策略文件:$PREFIX/local/ops/session-fold-bridge.policy(样例见 docs/architecture/session-fold-bridge.policy.example)。
  • 安装路径:support 清单 / bootstrap / apk-upgrade / MkSession managed asset codex-tui-fold-bridge
  • 本地门禁:tests/codex-for-tui-fold-bridge-smoke.sh + static test_fold_bridge_runtime_emitter

test 开启(测完务必关):

cat > "$PREFIX/local/ops/session-fold-bridge.policy" <<'EOF'
enabled=1
mode=apply
title_prefix=turn
EOF
# 对当前活跃 rollout 轮询(或指定路径)
codex-tui-fold-bridge watch --interval-ms 1500
# 回滚
cat > "$PREFIX/local/ops/session-fold-bridge.policy" <<'EOF'
enabled=0
mode=dry-run
EOF

2) 文件托盘文本复制修复

  • MediaPreviewPane 文本预览:SelectionContainer 可选中;顶栏 复制 / 分享
  • 缩略图长按文本 → 复制正文(不再跳过 TEXT)。
  • 复制/展示优先读磁盘全文(上限 2Mi 字符),避免卡在 12KB textPreview 切片。

3) 明确未完成(后续版本)

  • 随 worker 自动常驻 watch(本版需 test 手动/脚本拉起)。
  • T-DELIVER 长 final 强制入托盘 + T-S1 终端摘要分流。
  • 默认仍 开 PTY tap。

版本元数据

  • versionName=2.5.24
  • versionCode=90
  • runtime epoch:apk-2.5.24
  • 包名:com.gzy3894.codexfortui(debug/test 变体仍带 suffix)

回滚

  1. flag:enabled=0 / mode=dry-run(或删 policy)。
  2. 卸 2.5.24,重装 2.5.23(versionCode=89)APK;Android 不支持覆盖降级时需先卸载。

验证建议

# 本地(发版前)
sh tests/codex-for-tui-fold-bridge-smoke.sh
sh tests/codex-for-tui-static-guards.sh

# 安装后
CODEX_TUI_EXPECTED_VERSION_CODE=90 \
CODEX_TUI_EXPECTED_VERSION_NAME=2.5.24 \
  sh tests/codex-for-tui-installed-device-smoke.sh
# 另:flag on 时单 turn 后 session-fold 出现 start…done;flag off 无自动 fold
# 托盘文本可长按选择 + 顶栏复制

codex-for-tui-v2.5.23

Choose a tag to compare

Codex for TUI 2.5.23

2.5.23 是配置模式 可用性热修:在 2.5.22 列表枢纽基础上,修选中高亮、API Key 密文反馈、删除当前配置、确认语义与首页文案。

用户可见变化

行为
列表选中行 白底黑字(不再用反色黑条)
API Key 密文输入,每字显示 ;提示「密文输入,显示 •;回车确认」
确认 回车确认,q 取消(不再依赖 y)
删除配置 任意站(含当前 ★)都显示删除;可直接删当前站,删完回配置主页
首页 「新建配置」去掉

结构不变

  • 首页:配置名列表 + 新建配置 + 官方登录 + 退出
  • 选中站:使用并启动 / 编辑配置 / 删除配置
  • 编辑:字段列表 + 保存并启动 / 返回
  • 站级 vs 通用数据模型与 compact_policy 全局规则不变

版本标识

  • versionName=2.5.23
  • versionCode=89
  • runtime epoch:apk-2.5.23
  • Codex binary:0.144.1-zh.1(与 2.5.22 相同固定制品)

升级说明

覆盖安装本版 APK 后打开配置模式:

  1. 选中行应为白底黑字。
  2. 编辑 Key 时应看到 反馈,而不是空白。
  3. 当前配置也可点「删除配置」;确认后回主列表。

codex-for-tui-v2.5.22

Choose a tag to compare

Codex for TUI 2.5.22

2.5.22 是配置模式 单页枢纽 + 方向键操作 重构。数据模型仍是「站级 vs 通用」;交互从编号连环嵌套改为终端列表选择。

目标交互

场景 操作
主界面 一页列出全部中转站 + 新建/压缩/权限/完成
选中站 对该站 切换 / 查看 / 编辑 /(第三方)刷新 / 删除
列表选择 ↑/↓(或 j/k)移动,回车确认,b/Esc返回,q退出
文本输入 名称 / API / Key / 固定阈值仍用行输入(带默认值)
非 TTY / 测试 自动回退编号列表,行为可脚本化

用户可见变化

  • 去掉主菜单 0–9 密麻编号分区;进入配置模式即是中转站列表枢纽
  • 对某一站的增删改查选在站内操作菜单完成,不再「先选功能再选站」的两层编号迷宫。
  • 模型、推理、压缩策略、脏配置处理统一走同一套列表选择器。
  • 真机终端优先方向键;管道/CI 仍用编号,不破坏自动化。

结构不变

  • 站级:名称、模型策略、API、Key、模型目录。
  • 通用:压缩策略、权限/沙箱、TUI、features、projects;compact_policy 只在 index.json

版本标识

  • versionName=2.5.22
  • versionCode=88
  • runtime epoch:apk-2.5.22
  • Codex binary:0.144.1-zh.1(与 2.5.21 相同固定制品)

升级说明

覆盖安装本版 APK 后打开配置模式:应看到中转站列表 + 底部操作项;用方向键移动、回车确认。若终端不支持方向键,仍可用编号。

codex-for-tui-v2.5.21

Choose a tag to compare

Codex for TUI 2.5.21

2.5.21 是 2.5.20 后的配置模式结构优化。2.5.20 已修好大会话 dual-sync 启动慢;本版把「站级 vs 通用」从文案落到可操作的字段结构。

目标结构

层级 字段 切换时是否变
中转站 名称、模型策略(模型 + 推理)、API Base URL、Key、模型目录 随站切换
通用 上下文/压缩策略、权限/沙箱、TUI、features、projects 全站共用

用户可见变化

  • 主菜单分区—— 中转站 —— / —— 通用(全站共用)—— / —— 退出 ——
  • 当前摘要:顶部显示当前站模型策略与 API,以及全站压缩策略标签。
  • 字段级编辑:编辑中转站不再强制整站向导;可单独改名称 / API / Key / 模型策略,也可选「全部重设」。
  • 查看中转站:分区展示站级字段与通用压缩策略(标明全站共用)。
  • 压缩策略:文案明确「全站共用,不随中转站切换」;引擎侧 compact_policy 只写 index.json,不再写入各站 profile.json

引擎

  • create_profile_directory / migrate / repair 不再把 compact_policy 镜像进站级 meta。
  • redact_profile 剥离遗留的站级 compact_policymaterialize / APK repair 顺带清理旧字段。
  • profile list / show 附带全局 compact_policy,供菜单摘要显示。
  • 站级仍只 materialize:model / model_reasoning_effort / model_provider / model_providers / model_catalog_json + 全局 compact 阈值。

版本标识

  • versionName=2.5.21
  • versionCode=87
  • runtime epoch:apk-2.5.21
  • Codex binary:0.144.1-zh.1(与 2.5.20 相同固定制品)

升级说明

覆盖安装本版 APK 后打开 App。配置模式进入后应看到分区菜单与当前站/通用摘要;编辑中转站可只改一个字段。压缩策略改完后,切换 grok2 / krill / pipi 不应再出现「每站一份压缩」的错觉。

codex-for-tui-v2.5.20

Choose a tag to compare

Codex for TUI 2.5.20

2.5.20 是 2.5.19 后的启动性能热修。2.5.19 已完成配置模式统一、krill service_tier 清理与 provider 同步 fast path;本版针对用户反馈「Codex 启动将近半分钟」继续下刀。

根因

原生 /resume 跨站可见性依赖 Codex++ 风格 dual-sync:

  1. 改写共享 rollout 的 session_meta.model_provider
  2. restamp 各 runtime SQLite threads.model_provider

2.5.19 的 fast=True marker 在 sessions 未变化 时可跳过全量同步。但用户每开一轮新会话都会推进 sessions mtime,marker 失效后旧实现会对 每一个 rollout-*.jsonl 做整文件 read_text + 行扫描。本机实测约 93 个文件 / 173MB(最大单文件约 94MB);热路径整文件扫描约 2.3s,手机存储与冷页上可放大到用户体感的半分钟级。

另外,session_meta 在全部现网 rollout 中均位于 首行,整文件读取本身是浪费。

修复内容

  • session_meta 首行热路径
    • _rewrite_rollout_session_meta_provider 只读首行;provider 未变则立即返回。
    • managed provider id 等长时原地补丁首行,不重写多 MB 正文。
    • 长度变化时流式拼接首行 + 正文(不把整文件读进 RAM)。
    • 仅对 ≤4MB 且首行不是 session_meta 的异常文件回退全量扫描。
  • warm launch 减负
    • codex_for_tui_runtime_sessions_linked:runtime 的 sessions/history 已链到 control home 时,跳过重复 seed-shared-sessions 与 legacy importer。
    • V2 热启动:config-profiles-v2/index.json 已是 schema 2 时,跳过多余的引擎 status 进程,直接 profile launch
  • 2.5.19 能力保持
    • 中转站只含模型策略 / API / Key;上下文/压缩/权限全站共用。
    • sanitize_service_tier、legacy 指纹去重、provider fast marker、安全删除 runtime。

本机验证(热补丁后)

  • 94MB 文件 noop 改写:约 1ms(旧约 1.3s)
  • 94MB 同长 provider 原地补丁:约 40ms(旧约 1.8s+ 且会重写整文件)
  • 全量 dual-sync(93 文件):约 0.28s(旧约 2.3s)
  • 正确性:改写后正文字节不变;首行 provider 可逆

用户墙钟「半分钟 → 可接受」仍需安装 APK 后确认;未确认前不宣称产品侧完全修好。

版本标识

  • versionName=2.5.20
  • versionCode=86
  • runtime epoch:apk-2.5.20
  • Codex binary:0.144.1-zh.1(与 2.5.19 相同固定制品)

升级说明

覆盖安装本版 APK 后打开 App。首次启动按新 epoch 完成 support/runtime 升级。之后再启动 Codex,即使会话库很大,provider dual-sync 也不应再整文件吞掉启动时间。若仍明显偏慢,请反馈是「输入 codex 到 TUI 出现」还是「打开 App 到 shell 就绪」。

codex-for-tui-v2.5.19

Choose a tag to compare

Codex for TUI 2.5.19

2.5.19 是 2.5.18 后的配置模式 / 启动性能 / 本机配置清理热修。2.5.18 已恢复原生 /resume 跨站列表;本版聚焦「只保留中转站差异字段、通用策略全站共用」,并修掉 krill 的无效 service_tier=high 与升级反复导入 -legacy 站。

修复内容

  • 配置模式心智模型
    • 菜单文案明确:中转站只含模型策略 / API / Key;上下文、压缩、权限等为通用项(全站共用)。
    • 选择列表隐藏 -legacy* 噪声站,并展示 base_url。
  • 统一配置格式
    • model_providers 改为站级专属:激活时整表替换为当前站 managed provider,不再把孤儿 [model_providers.custom] 合并进 common / runtime。
    • strip_managed_fields 始终剥离 model_providers,避免跨站泄漏。
  • krill high 错误
    • 新增 sanitize_service_tier:仅允许空或 priorityhigh/default/flex 等会在 materialize 时剥掉。
  • 启动变快
    • sync_provider_visibility(..., fast=True):provider 与 sessions mtime 未变时跳过全量 dual-sync(约 3s → ~0.5s 热启动)。
  • 升级不再刷 -legacy
    • legacy_profile_already_imported 按 name / name-legacy* / base_url 指纹去重,避免 APK 升级反复再导入 v1 config-profiles
  • 删除中转站更干净
    • profile delete 清理 runtime 磁盘(sqlite/catalog),先卸掉 sessions/history 等共享链接,不跟随链接清空 control home 会话。

版本标识

  • versionName=2.5.19
  • versionCode=85
  • runtime epoch:apk-2.5.19
  • Codex binary:0.144.1-zh.1(与 2.5.18 相同固定制品)

升级说明

覆盖安装本版 APK 后打开 App。首次启动会按新 epoch 完成 support/runtime 升级。配置模式应只显示真实中转站;krill 不再因 service_tier=high 报错;再次打开 Codex 时启动应明显更快。若本机仍有历史噪声站,可在配置模式删除,或沿用升级前已清理的 grok2 / krill / pipi 三站。

codex-for-tui-v2.5.18

Choose a tag to compare

Codex for TUI 2.5.18

2.5.18 是 2.5.17 后的原生 /resume 列表热修。2.5.17 只重标 SQLite threads.model_provider,但 Codex 启动会从 rollout session_meta backfill 索引,旧站 provider 会把列表再次滤空。

修复内容

  • 启动 materialize / seed-shared-sessions / restamp-thread-providers 时执行 Codex++ 风格 双写
    1. 改写共享 sessions/**archived_sessions/** 中 rollout 的 session_meta.payload.model_provider 为当前站 provider;
    2. 把各 runtime sqlite-builds/*/state_5.sqlitethreads.model_provider 重标为同一 provider;
    3. has_user_event=0 的行修复为 1(可见性兜底)。
  • 这样即使 Codex 再 backfill,也会从已改写的 session_meta 写入正确 provider,原生 /resume(当前目录)可列出共享会话,无需 --all
  • 不改会话正文、UUID、cwd;仅同步 provider 可见性字段。

版本标识

  • versionName=2.5.18
  • versionCode=84
  • runtime epoch:apk-2.5.18
  • Codex binary:0.144.1-zh.1(与 2.5.17 相同固定制品)

升级说明

覆盖安装本版 APK 后打开 App。首次启动会按新 epoch 完成 support/runtime 升级;进入任一中转站后原生 /resume 应显示共享会话列表。若仍为空,在启动台执行一次配置修复或重新打开 Codex 窗口,使 materialize 再次跑 provider 同步。

codex-for-tui-v2.5.17

Choose a tag to compare

Codex for TUI 2.5.17

2.5.17 是 2.5.16 后的原生 /resume 列表热修:会话文件虽已跨中转共享,但 Codex TUI 会按当前站 model_provider 过滤 SQLite threads,历史行仍带旧站 provider id 时会显示「还没有会话」。本版在 materialize / seed-shared-sessions 时自动把各 runtime 的 threads.model_provider 重标为该站当前 provider。

修复内容

  • 新增 restamp_runtime_thread_providers / restamp_all_runtime_thread_providers:按 runtime config.tomlmodel_provider 更新其 sqlite-builds/*/state_5.sqlitethreads.model_provider
  • materialize_runtime 在写完 runtime config 后对全部 runtime restamp,保证切站启动后列表可见。
  • seed-shared-sessions CLI 在共享 sessions 链接修复后一并 restamp;新增 restamp-thread-providers 运维入口。
  • 不改写 rollout jsonl 正文;仅改 per-runtime SQLite 索引,便于各站各自过滤通过。
  • 版本同步:versionName=2.5.17versionCode=83、runtime epoch apk-2.5.17

验收重点

  • 覆盖安装后打开 App,切换任意中转/配置档(含 grok 站)后启动 Codex。
  • worker 内原生 /resume(不手动加 --all、保持「当前目录」过滤):每个站应看到与共享 inventory 一致的非空列表(同 cwd 下条数一致)。
  • 原先在 grok 等站显示 0 条、主站正常的场景,切过去应恢复可见。
  • 2.5.16 的 sessions 共享符号链接语义保持不变。

版本

  • versionName=2.5.17
  • versionCode=83
  • runtime epoch:apk-2.5.17
  • 包名:com.gzy3894.codexfortui