Repository navigation
1.2.3
版本 1.2.3
发布日期: 2026 年 10 月 13 日
概述
1.2.3 新增第三个消息信道 Telegram,并支持将消息信道附加到已经运行的 Codex TUI 会话。本版本修复独立 bridge 与 attach 模式下 Telegram 最终回复无法回传的问题,使启动提示显示实际信道,并提供完整中英文 README 与语言切换导航。
新功能
Telegram Bot API 信道
Telegram 沿用微信、企业微信的直接启动和 daemon 工作流,支持 Codex、Claude Code、OpenCode 与 Pi。信道使用官方 Bot API 长轮询,不需要公网回调地址。
- 在
@BotFather中发送/newbot创建机器人并取得 Bot Token。 - 在本地运行
telegram-setup,输入 token。 - 打开机器人的私聊,点击 Start,在 10 分钟内发送终端显示的
/pair <code>。 - 进入项目目录,运行
telegram-daemon --adapter codex,或使用对应的直接启动命令。
| 用途 | 命令 |
|---|---|
| 操作者配对 | telegram-setup |
| 检查已保存凭据 | telegram-setup --check |
| 常驻 daemon | telegram-daemon |
| 直接启动 | telegram-codex、telegram-claude、telegram-opencode、telegram-pi |
| 检查包更新 | telegram-check-update |
- 已配对操作者的消息驱动当前本地会话。daemon 的
/codex、/claude、/opencode、/pi,以及状态、模型、审批和问答等通用控制沿用现有命令规则。 - 文本、最终回复与附件通过 Telegram 回传;长文本按消息长度限制拆分,任务执行期间显示原生 typing 状态。
- 入站图片、文件、视频、语音与音频下载到本地,并以路径追加到 CLI prompt;bridge 本身不执行 OCR 或文档正文提取。
- 凭据保存到
~/.cli-bridge/telegram/account.json,附件与消息去重状态也使用 Telegram 子目录。CLI_BRIDGE_DATA_DIR可以更改公共数据根目录。 - 支持
TELEGRAM_BOT_TOKEN、TELEGRAM_OPERATOR_USER_ID、TELEGRAM_OPERATOR_CHAT_ID和可选的TELEGRAM_BOT_USERNAME覆盖已保存配置;transport 区分 token 被拒绝与并发轮询冲突。
附加当前 Codex 会话
Codex >=0.162 使用共享 app-server daemon 运行时,可以将信道附加到已有的活会话:
wechat-codex --attach-current-session
wecom-codex --attach-current-session
telegram-codex --attach-current-session在会话所在项目目录执行,或传入 --cwd <path>。bridge 自动发现该目录最新的活 root thread;存在多个活会话时,用 --codex-thread-id <id> 指定目标。
- 远程消息成为同一 Codex thread 中的 turn,回复与审批回到对应信道;原有 TUI 和会话上下文保持连续。
- attach 作为共享 daemon 的 guest client 接入,继承线程的审批与沙箱设置,不发送覆盖参数。
- 后台桥接不会随启动器退出,意外断线后会重连并重新 rejoin,已有
/resume路径继续可用。 - 仅当保存的 thread 与活跃 bridge 实例、工作目录、信道及显式目标线程一致时才报告成功,旧桥接会话状态不会被当作新连接成功。
两个 npm 包均包含 codex-bridge skill。使用主包时可运行:
node "$(npm root -g)/cli-wechat-bridge/skills/codex-bridge/scripts/install.mjs"随后在 Codex TUI 中调用 $codex-bridge,并说明要连接的信道。要求及错误说明见通道连接文档。
修复与改进
- Telegram 最终回复: 独立 bridge 和 attach 改用
TelegramChannelPort发送最终文本与附件。此前误走微信端口,报错WeChat channel cannot send to telegram;daemon 回复和普通通知却可能正常,导致表现看似偶发。 - 回复目标保持: 回归测试覆盖 Telegram 异步转发最终文本与附件时保留事件到达时捕获的 conversation target,即使发送前活动目标已经切换。
- 按信道显示启动信息: 启动、替换、daemon 委托、帮助、attach 确认和参数错误均显示实际信道;共享名称表与完整的输出端口、凭据注册约束避免新增信道静默落入微信处理分支。
- 文档: README 完整介绍 Telegram 接入和三个信道的控制指令;新增完整英文版本、双向语言导航、英文标题与图片说明,以及英文产品主页入口。截图改为居中、85% 宽度的 HTML 引用,产品主页徽章使用简洁地球图标。
- 发布打包: 两个包均包含英文 README 和 Codex bridge skill;package-lock 命令元数据同步全部 21 个公开入口,global smoke 覆盖三个信道的 15 个非交互 daemon/适配器启动器。
升级与兼容性说明
安装与重启
npm install -g cli-wechat-bridge@1.2.3旧作用域兼容包用户可以继续使用:
npm install -g @unlinearity/cli-wechat-bridge@1.2.3升级后重启正在运行的 bridge、daemon 和可见 CLI,使其加载新代码。对于已经附加的 Codex 会话,从同一项目目录再次执行 attach 命令即可替换旧桥接,继续使用原 TUI thread。已有微信、企业微信凭据无需迁移。
运行边界
- Node.js 最低版本仍为
22.13.0;Pi 要求22.19.0。传统 Codex 桥接验证范围保持0.149.x–0.161.x;新共享 daemon 附加流程要求 Codex >=0.162,本次本地实测版本为 0.162.1。 - attach 需要共享 daemon control socket 和目标目录的活会话。桌面 App 内嵌会话,以及通过
--no-daemon、--oss或内嵌 profile 启动的会话无法附加。 - 常驻信道 daemon 持有工作区 bridge 锁,会阻止 attach;可使用其 slots,或先停 daemon 再附加。直接运行
telegram-codex会打开 bridge 管理的可见 CLI;连接已有会话需追加--attach-current-session。 - 同一 Telegram Bot Token 只运行一个轮询进程,配对时也遵循此限制;已有 webhook 需先移除再使用长轮询。配对使用私聊,后续输入使用已配对操作者账号。
- 本版本不移除现有公开启动命令。各信道凭据仍独立,工作区锁与 daemon endpoint 继续共用。
发布验证
- 环境与质量: 本地 macOS、Node.js 24.20.0 与 Bun 1.4.3 上,冻结锁文件安装、lint、严格源码类型检查、全部 869 项测试与构建通过。镜像包测试使用临时源码素材,CI 在
dist/尚未生成时也可执行。 - 安装包内容: 主包与作用域镜像包 dry-run 各包含 119 个文件、21 个可执行命令入口,包括
dist/、两份 README、LICENSE.txt与 Codex bridge skill;不包含源码、测试、内部文档、运行状态、本地日志或node_modules/。 - 全局安装:
npm run smoke:global -- --purge-global --clean-cache --full通过,覆盖真实 tarball 安装、仓库外调用全部 15 个安全启动入口及完整质量门禁。新构建已安装到全局;npm 跳过 postinstall 时手动恢复 node-pty spawn-helper 权限。 - CLI 能力:
npm run smoke:cli-compat通过,实测 Codex 0.162.1、Claude Code 2.1.296、OpenCode 2.0.18 与 Pi 1.1.0;Pi 探测实际加载 bridge extension 并校验模型列表 IPC。 - 发布预检:
npm pack --dry-run --json、主包npm publish --dry-run --access public与npm run publish:dual -- --dry-run均通过;镜像包回归覆盖英文 README、skill 复制、Unix 命令可执行权限、postinstall 保留与私有状态排除。
上述检查覆盖本地回归、安装包与 CLI 接口;修复期间还验证了真实 Telegram 的 Codex attach 最终回复回传。所有适配器/信道组合的真实模型完整对话,以及 Linux/Windows CI 属于独立验收范围;dry-run 不代表已向 registry 发布。
Full Changelog: 1.2.2...1.2.3