Skip to content

v0.2.3 — 订阅接入中文 Windows 修复 + 内嵌数据 skill 同步至上游最新

Latest

Choose a tag to compare

@simonlin1212 simonlin1212 released this 26 Jul 08:37

本版修掉订阅接入在中文 Windows 上不可用的问题,并把内嵌的两份数据 skill 副本同步到上游最新。

修复:订阅接入在中文 Windows 上返回空白

cli_runtimesubprocess 调用没有显式指定编码,父进程按系统 locale 解码——中文 Windows 上就是 GBK,而这些 CLI 输出 UTF-8,必然 UnicodeDecodeError。两处(run_clirun_cli_stream)均已显式加 encoding="utf-8", errors="replace"

感谢 @peng62699#2 中定位到根因。

修复:Codex 桌面版检测不到

Codex 桌面版把 CLI 装在 app bundle 里、不进 PATH。_EXTRA_PATH_DIRS 补上 /Applications/Codex.app/Contents/Resources。感谢 @694120752#11)。

修复:CLI 的错误信息被自己丢掉

排查 #16「codex 退出码 1」时发现,用户看不到任何原因是我们自己造成的:

  • 流式分支的 stderrDEVNULL —— CLI 报什么错全被扔了,只剩光秃秃的「退出码 1」。改为 PIPE 并起排空线程收集尾部 40 行;排空是必须的,否则 stderr 写满管道会死锁(已用 20000 行 stderr 实测未死锁)
  • 退出码非 0 但有半截 stdout 时会当成功返回 —— 旧逻辑 returncode != 0 and not out 会把残缺输出当完整答案,属静默失败。改为非零退出一律报错并带上 stderr

⚠️ 这是行为变更:此前「CLI 失败但吐了部分输出」会静默返回那段输出,现在会抛错。

另修掉一处竞态:proc.wait() 可能先于排空线程读完管道返回,此时错误详情还是空的——而 CLI 最常见的行为恰恰是「写一行错误就立刻退出」。现在构造错误前会 join 排空线程(单行 stderr 后立即退出的假 CLI 连跑 40 次,40/40 保住原文)。

内嵌数据 skill 副本同步到上游最新

global-stock-dataa-stock-data 两份内嵌副本此前落后上游整整一个大版本(global-stock-data 1437 行 vs 2138 行,缺 v2.0 新增的 CBOE 官方期权链 / FINRA 做空 / EDGAR 申报流与全市场横截面等层)。

现同步到 global-stock-data v2.0.3 + a-stock-data v3.5.1,其中包含两个上游的重要修复:

  • 腾讯行情美股/港股函数此前 100% 崩溃(字段下标错误)
  • 腾讯行情 44/45 市值标反 —— 44 是流通市值、45 才是总市值,流通≪总股本的票会差数倍(中船特气 3.65×)

同步前已逐文件比对,确认内嵌侧无本地定制内容(仅为旧版本残留),上游亦保留了 mootdx 服务器兜底等全部既有功能,无功能丢失。

文档

README 版式统一(h1 居中、导航行、语言切换),新增英文 README,联系方式统一为 X + Email,赞赏收敛到 Buy Me a Coffee 二维码。

验证

假 CLI 覆盖正常 / 失败 / stderr 洪水 / 竞态四类场景;真实 codex 端到端取数正常;全部改动经 Codex CLI 独立审计并复审至无 actionable regression。