Releases: HNGM-HP/opencode-bridge
v2.9.58-beta2
Full Changelog: v2.9.58-beta1...v2.9.58-beta2
v2.9.58
1. Windows 启动优化 (src/admin/admin-server.ts)
- OpenCode 启动改用 VBS 脚本静默启动,避免弹出 cmd 窗口
- 临时 VBS 脚本路径:%TEMP%\opencode-start.vbs
2. 进程管理增强 (src/admin/index.ts)
- 启动时自动检测并终止所有旧的 Bridge 进程
- 防止多实例并行运行导致的消息接收失败
3. Electron 单实例处理 (electron/main.ts)
- 检测到重复启动时弹出对话框提示用户
- 提供"强制终止旧进程并启动"选项
- 启动时自动打开管理面板(开发模式和生产模式统一)
4. 登录逻辑修复 (web/src/router/index.ts)
- 修复密码重置后旧 token 未清除导致 410 错误的问题
- 新增 hasPassword 状态检查
- 密码已重置时自动清除 token 并跳转登录页
What's Changed
Full Changelog: v2.9.57...v2.9.58
v2.9.57
核心更新:优化windows/Mac内存占用降低50%,修复了部分BUG
-
后端管理服务 (src/admin/admin-server.ts)
密码重置场景:密码为空但请求携带旧 token 时返回 410 状态码
新增 /opencode/start 参数:visual (true=可视化启动, false=后台启动)
可视化模式执行 opencode web,后台模式执行 opencode serve -
Web 前端 API (web/src/api/index.ts)
新增 410 响应拦截器:密码重置后清除 admin_token 并跳转到设置密码页
configApi.startOpenCode() 新增 visual 参数 -
设置视图 (web/src/views/Settings.vue)
启动按钮新增下拉选择:可视化启动 / 后台启动
默认启动模式为"后台启动"
What's Changed
Full Changelog: v2.9.56...v2.9.57
v2.9.56
详细变更
-
Electron 主进程 (electron/main.ts)
停止服务后加载提示页面
显示"服务已停止"状态和重试按钮
引导用户通过托盘菜单重启服务 -
后端管理路由 (src/admin/routes/admin.ts)
/admin/restart 从异步改为同步模式
等待 bridgeManager.restart() 完成后再返回响应
成功时返回新进程 PID
失败时返回 500 错误和错误信息 -
Web 前端 API (web/src/api/index.ts)
configApi.restart() 返回值类型细化
返回 { ok: boolean; pid?: number; message: string } -
登录视图 (web/src/views/Login.vue)
增加网络错误处理
服务未启动时显示明确提示:"服务未启动,请通过托盘菜单启动服务后重试" -
设置视图 (web/src/views/Settings.vue)
重启按钮增加成功/失败反馈
成功后显示弹窗和新进程 PID
失败时显示具体错误原因
详细变更 -
增加"启动服务"菜单项 - 托盘右键菜单新增"启动服务"选项,调用 startBackend()
What's Changed
- Beta by @HNGM-HP in #35
- 1、停止服务时隐藏窗口 - stopBackend() 函数中调用 mainWindow?.hide() 替代原有的加载提示页面逻辑 by @HNGM-HP in #36
Full Changelog: v2.9.55...v2.9.56
v2.9.55
v2.9.52 → v2.9.55 更新总结
核心更新
新增 Electron 桌面应用支持(Windows/macOS/Linux)
新增功能:
Electron 主进程入口 + 预加载脚本
electron-builder 打包配置(NSIS 安装器、DMG、AppImage)
单实例锁 + 托盘图标
应用图标(PNG/ICO)
Bug 修复:
空白页面问题修复
Admin Server 启动顺序(先于 OpenCode 连接)
electron-builder 自动发布禁用(改用 release job)
Linux 打包配置修复
artifact 上传冲突(排除 yml 文件)
依赖更新:
添加 @grammyjs/types 类型定义
添加缺失的类型定义依赖
What's Changed
Full Changelog: v2.9.53...v2.9.55
v2.9.53
v2.9.53-beta.14
编译了安装包,windows用户强烈建议下载exe,可以远离各种因为环境导致的安装问题
New Contributors
Full Changelog: v2.9.3-beta...v2.9.53-beta.14
v2.9.52
[2.9.52-beta] - 2026-03-26
Added
占位卡片功能 - 在流式输出前发送"思考中..."占位卡片,避免首屏空白等待
新增 ensureThinkingPlaceholder 方法
群聊/私聊链路完整支持
完整的测试覆盖
Fixed
部署脚本引导命令 - 移除 guide 命令,改为直接运行脚本进入交互菜单
更新 README.md / README-en.md 部署文档
更新 assets/docs/deployment.md / deployment-en.md
pnpm 未安装导致构建失败 - 部署脚本自动检测并安装 pnpm
新增 ensurePnpm() 函数
在 build:web 前自动执行
systemd 服务安装权限问题 - 修复 sudo 执行时文件权限混乱问题
优先以 SUDO_USER 身份完成部署
避免 node_modules 被 root 用户创建
文档
更新部署指南,移除过时的 guide 命令说明
New Contributors
Full Changelog: v2.9.51...v2.9.52
v2.9.51
发行说明:v2.9.51
发布日期: 2026-03-24
概述
v2.9.51 是一个功能增强版本,主要新增了钉钉平台支持,并增加了配置导入/导出功能,同时进行了多项 Bug 修复和架构优化。
核心特性
1. 钉钉平台支持
新增对钉钉企业平台的完整支持:
| 能力 | 状态 |
|---|---|
| 文本交互 | ✅ 完整支持 |
| 卡片消息 | ✅ 完整支持 |
| Stream 模式 | ✅ 完整支持 |
| 多账号管理 | ✅ 完整支持 |
新增文件:
src/handlers/dingtalk.ts- 钉钉消息处理器src/platform/adapters/dingtalk/- 钉钉适配器目录dingtalk-adapter.ts- 平台适配器dingtalk-card.ts- 卡片消息构建器dingtalk-connection.ts- 连接管理dingtalk-ids.ts- ID 工具函数dingtalk-sender.ts- 消息发送器dingtalk-types.ts- TypeScript 类型定义
配置项:
DINGTALK_ENABLED=true
DINGTALK_ACCOUNT_ID=你的账号 ID
DINGTALK_CLIENT_ID=你的客户端 ID
DINGTALK_CLIENT_SECRET=你的客户端密钥2. 配置导入/导出功能
新增 Web 管理面板配置导入/导出功能:
- 导出配置:将当前配置导出为 JSON 文件
- 导入配置:从 JSON 文件导入配置
- 批量部署:支持多服务器配置快速同步
涉及文件:
src/admin/admin-server.ts- 新增导入/导出 API 端点src/store/config-store.ts- 配置存储层支持web/src/api/index.ts- 前端 API 封装web/src/components/ConfigActionBar.vue- 前端操作栏组件
Bug 修复
| 问题 | 状态 |
|---|---|
| QQ 适配器连接稳定性 | ✅ 已修复 |
| WhatsApp 适配器连接逻辑 | ✅ 已修复 |
| 平台注册中心逻辑 | ✅ 已修复 |
架构优化
| 优化项 | 行为变化 | 状态 |
|---|---|---|
| 镜像脚本重构 | 新增 scripts/setup-mirror.mjs |
✅ |
| 配置模块增强 | 支持配置导入/导出 | ✅ |
| 平台注册中心 | 支持动态注册 | ✅ |
| QQ 适配器 | 优化连接逻辑 | ✅ |
| WhatsApp 适配器 | 优化连接逻辑 | ✅ |
主要涉及文件
src/
├── admin/
│ └── admin-server.ts # 新增配置导入/导出 API
├── config/
│ ├── migrator.ts # 配置迁移增强
│ └── platform.ts # 平台配置增强
├── handlers/
│ ├── dingtalk.ts # 新增:钉钉消息处理
│ └── platform-command.handler.ts
├── platform/
│ ├── adapters/
│ │ ├── dingtalk/ # 新增:钉钉适配器目录
│ │ │ ├── dingtalk-adapter.ts
│ │ │ ├── dingtalk-card.ts
│ │ │ ├── dingtalk-connection.ts
│ │ │ ├── dingtalk-ids.ts
│ │ │ ├── dingtalk-sender.ts
│ │ │ └── dingtalk-types.ts
│ │ ├── qq-adapter.ts # 优化
│ │ └── whatsapp-adapter.ts # 优化
│ ├── registry.ts # 平台注册中心
│ └── types.ts # 平台类型定义
└── store/
└── config-store.ts # 配置存储增强
web/
├── src/api/index.ts # 新增钉钉 API
└── src/views/Platforms.vue # 平台配置页面增强
assets/docs/
├── dingtalk-config.md # 新增:钉钉配置指南
└── dingtalk-config-en.md # 新增:钉钉配置指南 (英文)
scripts/
└── setup-mirror.mjs # 新增:镜像源设置脚本
升级指南
升级步骤
# 1. 停止服务
npm run stop
# 2. 拉取最新代码或更新 NPM 包
git pull origin beta
# 或
npm install opencode-bridge@2.9.51
# 3. 安装依赖
npm install
# 4. 重启服务
npm run start配置钉钉平台
- 访问
http://localhost:4098进入配置面板 - 在「平台配置」中找到钉钉
- 填写钉钉应用凭证:
- 账号 ID (AccountId)
- 客户端 ID (ClientId)
- 客户端密钥 (ClientSecret)
- 保存并重启服务
注意事项
- 钉钉应用类型:必须创建「企业内部应用」
- 消息接收模式:必须选择「Stream 模式」
- 管理员权限:需要钉钉企业管理员权限
- 配置导入/导出:导出的配置文件包含敏感信息,请妥善保管
统计
| 指标 | 数值 |
|---|---|
| 新增平台 | 1 (钉钉) |
| 新增文件 | 9 (钉钉适配器 + 文档) |
| 修改文件 | 10+ |
| 新增 API | 2 (配置导入/导出) |
| 代码行数 | +3,776 / -3,171 |
版本历史
| 阶段 | 版本 | 主要贡献 |
|---|---|---|
| 起点 | v2.9.3-beta | Web 可视化配置中心发布 |
| 功能扩展 | v2.9.4-beta | 架构优化与可靠性增强 |
| 多平台扩展 | v2.9.5 | 新增 5 个平台支持 |
| 当前 | v2.9.51 | 钉钉平台支持与配置导入/导出 |
What's Changed
Full Changelog: v2.9.5...v2.9.51
v2.9.5
发行说明:v2.9.5
发布日期: 2026-03-23
概述
v2.9.5 是一个重大功能扩展版本,主要新增了对五个额外即时通讯平台的支持,并进行了全面的架构优化和 Bug 修复。
核心特性
1. 多平台支持扩展
新增支持以下平台:
| 平台 | 状态 | 核心能力 |
|---|---|---|
| 企业微信 (WeCom) | ✅ 完整支持 | 文本交互、消息收发 |
| Telegram | ✅ 完整支持 | 文本交互、Inline 键盘 |
| QQ (OneBot) | ✅ 完整支持 | 文本交互、群聊支持 |
| ✅ 完整支持 | 文本交互、媒体消息 | |
| 个人微信 (Weixin) | ✅ 完整支持 | 扫码登录、文本交互 |
2. 平台能力对齐
- 全平台能力对齐飞书 baseline
- 统一平台抽象层 (
PlatformSender) - 支持按平台启用/禁用控制
功能增强
命令系统完善
- 完善微信命令支持
- 完善 Telegram 命令支持
- 统一多平台命令语法
可靠性与稳定性
| 修复项 | 说明 |
|---|---|
| 企业微信消息接收 | 修复企业微信接入收不到消息 BUG |
| 个人微信稳定性 | 修复个人微信相关 BUG |
| 模型配置 | 修复指定默认模型首次会话报错 |
配置管理
- 飞书能力独立开关,匹配后端配置
- 修复
npm run manage:bridge无法停止 web 后台 BUG
Bug 修复
Windows 兼容性
| 问题 | 状态 |
|---|---|
| Windows 后台运行 BUG | ✅ 已修复 |
| Windows 后台终止问题 | ✅ 已修复 |
| 国内安装报错 | ✅ 已修复 |
| 时区自动判断镜像 | ✅ 已实现 |
显示与文档
| 问题 | 状态 |
|---|---|
| WEB 展示效果优化 | ✅ 已完成 |
| 显示问题修复 | ✅ 已完成 |
| 文档补充 | ✅ 已完成 |
架构优化
| 优化项 | 行为变化 | 状态 |
|---|---|---|
| 密码比较长度泄露 | 更安全,行为不变 | ✅ |
| 目录查询失败静默 | 仅增加日志,行为不变 | ✅ |
| 卡片动作错误处理 | 返回错误提示而非静默 | ✅ |
| setImmediate 错误处理 | 失败时通知用户 | ✅ |
| 发送文件指令歧义 | 更精确匹配 | ✅ |
| 会话清理时间复杂度 | 性能优化 | ✅ |
| 子进程僵尸进程 | 增加清理逻辑 | ✅ |
| 定时器清理时机 | 更健壮 | ✅ |
| 连接失败错误处理 | 统一错误格式 | ✅ |
| 临时文件清理 | 启动时清理残留 | ✅ |
| 流状态管理器封装 | 重构,API 不变 | ✅ |
| API 路由抽取 | 重构,端点不变 | ✅ |
| 会话存储反向索引 | 性能优化 | ✅ |
| 配置模块拆分 | 重构,导出不变 | ✅ |
| 主入口文件拆分 | 重构,功能不变 | ✅ |
| 日志格式统一 | 已符合规范 | ✅ |
主要涉及文件
src/platform/adapters/
├── wecom-adapter.ts # 企业微信适配器
├── telegram-adapter.ts # Telegram 适配器
├── qq-adapter.ts # QQ 适配器
├── whatsapp-adapter.ts # WhatsApp 适配器
└── weixin-adapter.ts # 个人微信适配器
src/handlers/
├── wecom.ts # 企业微信消息处理
├── telegram.ts # Telegram 消息处理
└── discord.ts # Discord 消息处理
src/utils/
├── text-builder.ts # 统一文本构建器
└── logger.ts # 日志工具
升级指南
升级步骤
# 1. 拉取最新代码
git pull origin beta
# 2. 安装依赖
npm install
# 3. 构建 Web 前端 (如有变更)
cd web && pnpm install && pnpm build
# 4. 重启服务
npm run start配置新平台
- 访问
http://localhost:4098进入配置面板 - 在「平台配置」中配置对应平台凭据
- 在「核心路由」中启用对应平台
注意事项
- 平台凭据: 新增平台需在对应平台申请开发者凭据
- 国内镜像: 系统会根据时区自动判断是否使用国内镜像源
- Windows 用户: 已修复多项 Windows 兼容性问题
统计
| 指标 | 数值 |
|---|---|
| 新增平台 | 5 (WeCom, Telegram, QQ, WhatsApp, Weixin) |
| 新增文件 | 10+ |
| 修改文件 | 30+ |
| 架构优化 | 16 项 |
版本历史
v2.9.3-beta → v2.9.5 变更总览
| 阶段 | 版本 | 主要贡献 |
|---|---|---|
| 起点 | v2.9.3-beta | Web 可视化配置中心发布 |
| 功能扩展 | v2.9.4-beta | 架构优化与可靠性增强 |
| 当前 | v2.9.5 | 多平台支持扩展与架构优化 |
Full Changelog: v2.9.1...v2.9.5