版本更新日志
unobox 所有版本的发布说明均在此归档,每一次迭代都为你带来更安全、更优异的体验。
v0.3.0 · 📱 移动端 SDK 54 + 本地聊天闭环
2026年6月20日移动端本地聊天闭环
- 升级到 Expo SDK 54 / React Native 0.81 / Expo Router 6,兼容新版 Expo Go。
- 本地服务添加、群组/频道创建、聊天列表、聊天详情、消息发送、历史消息恢复均可用。
- 新增 MobileProviderManager:移动端 Phase 2A 仅加载 LocalProvider,避免 Expo Go + Hermes 启动阶段触发 libsodium WebAssembly。
- 接入 expo-sqlite 数据库,冷启动后服务、房间与消息可恢复。
聊天体验修复
- 修复本地发送消息沙漏长期不消失、消息顺序倒置、新消息不在底部等问题。
- 聊天标题显示群名称,右上角显示群头像;有 avatarUrl 时显示图片,无头像时显示首字。
- 优化 iPhone 安全区与虚拟键盘避让,输入栏不再被键盘遮挡。
Expo Go 限制
- 移动端当前仅支持本地存储服务;WebSocket / Matrix 将在后续版本迁移。
- Expo Go + Hermes 暂不支持 libsodium WebAssembly,移动端 E2EE 将在原生 Dev Client 阶段启用。
未发布 · Matrix 连接稳定性
2026年6月19日Matrix Homeserver 连接优化
- Matrix 添加服务器表单默认填入
https://matrix.org;连接层在地址缺失或网络不可达时给出明确提示。 - 启动时跳过非活跃 Matrix 服务器的自动连接,减少历史配置导致的无意义外网 DNS 请求。
- 网络/DNS/CORS 失败时给出更明确的错误提示,避免误判为 Access Token 失效。
- 添加 Matrix 服务器时要求显式填写 Homeserver URL。
- Matrix 实时事件增加连接去重、初始同步历史事件过滤和 eventId 去重,避免同一消息重复进入 UI。
- Matrix 创建会话支持普通对话、普通房间、加密对话、加密房间;加密会话创建时写入
m.room.encryption。 - Matrix E2EE 设备身份改为使用
/account/whoami返回的 token 绑定device_id,避免/keys/uploaddevice_id mismatch。
v0.2.6 · 🔒 E2EE 全协议 + 密钥管理
2026年6月18日三种 Provider 模式 E2EE 全部实现
- WebSocket 模式:X3DH + Double Ratchet 端到端加密,支持带内协商(PASSIVE)和服务端辅助(ASSISTED)
- Matrix 模式:initRustCrypto(matrix-sdk-crypto-wasm) + Olm/Megolm,兼容 Element 等客户端
- WS 服务端新增 Pre-Key 存储端点 + 6 种 e2ee.* 消息透传
- 群聊 Sender Keys 加密 + 成员变更自动密钥轮换
E2EE 设置页重构
- 按服务器独立隔离:不同协议 E2EE 配置互不干扰 + Toggle 开关 + Modal 弹窗
- 密钥备份恢复:加密导出/导入密钥 JSON 文件
- 聊天记录导出:口令解密后导出明文 JSON
- 通知隐私开关:隐藏加密消息的通知内容
v0.2.5 · 🔒 E2EE UI 层 + 附件加密 + Bot 豁免
2026年6月17日UI 层 E2EE 状态管理
useE2EEStore:Zustand store 桥接 LocalProvider → 渲染层,支持启用/关闭/更改口令/验证口令E2eeSettingsView:设置 → 隐私与安全独立页面,三态表单(启用/关闭/改密)+ 6 项口令强度检测 + 4 级颜色指示条- 消息气泡 E2EE 加密图标:🔒 已加密 / ❌ 解密失败 / 🔒 锁定,集成在时间戳区域
附件文件级加密
- E2EE 启用时自动加密上传:文件名 UUID.enc + MIME 隐藏为 octet-stream
- 真实文件名/MIME/nonce 通过 UploadResult 扩展字段保存到加密消息体
Bot/AI 房间 E2EE 豁免
- 创建 Bot 房间或 type='bot' 时自动排除 E2EE 加密,保障 Bot/AI 功能正常
v0.2.4 · 🔒 端到端加密 Phase 1-2
2026年6月16日加密基础库(packages/core/src/crypto/,~3,200 行)
- 完整实现 Signal Protocol 核心:Ed25519 身份密钥、X25519 预密钥、X3DH 密钥协商(4-DH)、Double Ratchet 会话加密(前向安全)、Sender Keys 群组加密
- 加密原语基于 libsodium-wrappers:XSalsa20-Poly1305 / Ed25519 / X25519 / BLAKE2b
- Ed25519↔X25519 密钥转换修正,4 组 DH 值全部匹配验证通过
- 4 个单元测试文件(identity / x3dh / doubleRatchet / messageEncrypt)
本地模式加密存储(P0)
- 口令→主密钥→消息密钥三层派生(BLAKE2b KDF),口令变更不触发消息重加密
- 附件加密:每个附件独立密钥(由消息密钥派生),文件名/路径脱敏
- 数据库 migration:
messages表新增encrypted/e2ee_version列 - 明文历史消息兼容:逐条标记,不批量回加密,解密失败自动降级占位
- Bot/AI 房间自动排除加密(
e2eeExemptRoomIds) - IServerProvider 扩展:新增
supportsE2EE/e2eeEnabled等 12 项 E2EE 属性
设计文档
- 端到端加密方案文档更新至 v1.1:新增附录 C 实施记录(Schema、技术差异、验证状态)
- PRD.md / README.md / 官网同步更新竞品对标和功能状态
v0.2.2 · 贴纸系统 + 定时消息调度器
2026年6月14日贴纸系统
- 内置 2 套贴纸包、14 款手绘 SVG 贴纸(表情心情 x12 + 可爱动物 x8,跨包复用)
- 贴纸选择面板:4 列网格 + 包切换标签(表情心情 / 可爱动物)+ hover 高亮 + 点击即发
- 贴纸消息渲染:200px 大尺寸、无气泡背景浮动显示(Telegram 风格)、带头像 + 时间戳 + 表情反应
- InputBar 贴纸按钮(
Sticker图标),紧邻 Emoji 按钮 - 完整发送管线:dataURI → Blob → uploadFile → sendMessage
定时消息调度器
- 主进程
MessageScheduler单例:每 15 秒轮询数据库,到期消息自动清除 scheduled_at 并发布 - 定时消息管理面板:查看待发送列表、格式化倒计时(天/小时/分钟/秒)、单条取消、自动刷新
- 集成到 ChatView 更多菜单(Clock 图标入口)+ IPC 事件监听自动刷新消息列表
- 渲染端 setTimeout 精确定时 + 主进程持久化调度器互补,重启/崩溃不丢失
- 应用退出自动停止调度器,启动后自动开始轮询
文档
- PRD 全面扩展:从 1714 行 → 1680 行(15 个一级章节),整合架构/权限/E2EE 加密/远程 WSS/TTS 评估/有声书方案/视频嗅探/CI/CD/许可证合规全部内容
- 未完成工作清单更新:Pre-Phase-2 全部清零(MatrixProvider / 贴纸 / 定时消息 / 全文搜索 / 大 EPUB 误判 全部完成)
v0.2.1 · 反馈问题 + 赞赏支持独立菜单
2026年6月13日反馈问题
- 设置界面新增"反馈问题"入口(Bug 图标),支持三种反馈类型:Bug 报告 / 功能建议 / 使用体验
- 表单字段:标题(必填)、详细描述(必填)、联系邮箱(选填)
- 自动附带环境信息:应用版本、操作系统、架构、Electron/Node.js 版本
- 通过 GitHub Issues REST API 提交,自动标记 bug / enhancement / feedback label
- Token 通过 .env.local 运行时读取(GITHUB_FEEDBACK_TOKEN),不提交到代码仓库
- 成功后展示 Issue 链接,失败展示详细错误原因
赞赏支持菜单提升
- 从"关于与自动更新"子页面提升为设置主菜单独立项,使用 Coffee 图标(橙色),点击直接打开外部捐赠页面
v0.2.0 · TTS 语音合成 + EPUB 有声书 + 音频导出
2026年6月7日TTS 语音合成系统
- 13 引擎集成:4 个本地离线(Sherpa-ONNX+Kokoro 中英主力、Supertonic 极速英文、PaddleSpeech 开源中文、Piper CLI 40+ 语言兜底)+ 9 个远程云端(阿里云 Qwen3-TTS / 火山引擎 / 腾讯云 / 百度 / OpenAI / Google / Azure / Amazon Polly / ElevenLabs)
- 消息右键朗读 + AI 自动语音回复 + ChatView 快捷朗读 + 消息气泡内联 TTS 播放器
- 多引擎切换:TTS 设置页查看引擎状态,展开选择语音、一键试听
- 语速 0.25x-4.0x + 音调 0.5x-2.0x 滑块调节,100ms 防抖自动保存到 SQLite
- API Key AES-256-GCM 本地加密存储(PBKDF2 + 0o600 权限)+ 隐私声明确认
- 引擎降级链:本地优先 → 远程按需 → 超时 5s 自动回退本地
- 合成缓存(TTSCache):key = engineId + voiceId + speed + SHA256(text),重复请求直接复用
- 语音模型静默下载:首次启动 30s 后后台下载 Kokoro(~160MB),HTTP 断点续传 + 进度推送
- 流式合成:长文本分段逐句合成 + AbortController 取消
EPUB 有声书
- 核心流水线:文本分句 → TTS 逐句合成 → 播放 → 当前句高亮 → 自动翻页
- 中英文混合分句 + 非正文过滤(页码/脚注/引用标记自动跳过)
- 断点续听:重新打开提示从上次位置继续,恢复 speed/pitch/playbackRate
- 底部抽屉播放器(35vh):字幕横滚、独立 playbackRate 0.5x-3.0x、可拖拽进度条
- 浮动耳机按钮:右下角 48px 圆形,20s 无操作自动折叠半圆贴边
- 定时关闭:15/30/60/90 分钟 / 当前章节结束
- 书签管理:命名/增删/跳转/恢复语音配置
- 导出音频:整章批量合成 → FFmpeg concat 拼接 → 系统保存对话框导出 WAV/MP3
- 播放历史:audiobook_history 表,按书/全局查询统计
消息状态系统(Telegram 风格五态)
2026年6月5日新增功能
- Telegram 风格五态消息指示器:🕐 发送中 → ✓ 已发送 → ✓✓ 已送达 → ✓✓ 已读 → ❌ 发送失败
- 频道消息仅显示 👁 眼睛图标 + 已查看人数,不显示勾选标记(频道无双勾)
- 消息详情弹窗(右键菜单 → 查看详情):显示创建/发送/送达/已读时间线 + 状态徽章
- 消息乐观发送:文字消息立即显示在 UI,无需等待服务端确认
- 发送失败自动重试:指数退避 1s / 2s / 4s,最多 3 次,失败后显示红色 ❌
- 文件上传中显示占位界面(类型图标 + 文件名 + 进度条 + 百分比),不再显示"无法找到"错误
改进
- 上传完成后不再出现重复消息气泡
- WSS 服务端新增 message_delivered / message_read 实时事件推送
- readCount 阅读计数全房间实时广播
- Matrix m.receipt 已读回执事件自动映射为 status: 'read'
- 所有 Provider 统一适配 MessageStatus 五态字段
内置浏览器
2026年6月2日新增功能
- 聊天消息 URL 自动识别为可点击链接,点击弹出独立 BrowserWindow 加载目标网站
- 三层视频嗅探:webRequest URL 正则匹配 + Content-Type 检测 + 主世界 JS 注入(劫持 fetch/XHR + 扫描 video 标签)
- M3U8 异步校验:嗅探后 fetch 验证响应内容,标记 valid / invalid / checking 三种状态
- 视频播放集成:可播放条目点击弹出独立 VideoPlayer 窗口,支持 HLS/M3U8 动态解码(hls.js)
- 请求头伪装:UA 替换为标准 Chrome 131、自动补齐 Referer、11 项反检测脚本注入
- 持久化 Session:persist:browser 分区,Cookie 跨窗口共享,重启后登录态保持
- 内置浏览器工具栏:前进/后退/刷新、地址栏输入跳转、Ctrl+L 聚焦地址栏、系统浏览器打开
视频播放与媒体处理
2026年5月31日新增功能
- FFmpeg/FFprobe 捆绑分发:随应用分发预编译二进制,无需用户手动安装
- 视频编码探测:上传时自动检测编码器,HEVC/Dolby Vision 后台异步转码为 H.264 SDR
- 封面缩略图:自动提取视频首帧作为消息气泡封面
- 视频笔记生成:圆形裁剪 + 静音 + 60s 限制,对标 Telegram video_note
- 自定义视频播放器:替代原生 controls,支持可拖拽进度条(缓冲+播放双图层)、倍速、音量、全屏
- 播放进度记忆:localStorage 持久化,重开视频从上次位置继续
- 字幕系统:内嵌字幕自动提取为 WebVTT、外挂字幕上传(srt/vtt/ass/ssa)、来源标记与切换管理
- 视频播放方式设置:内置播放器 / 系统播放器(IINA 等外部应用)
文件预览系统增强
2026年5月28日新增功能
- Word (.docx) 在线预览:基于 mammoth 将 .docx 转为 HTML 渲染,跟随主题适配深浅色
- Excel (.xlsx/.csv) 在线预览:基于 xlsx 解析为 HTML 表格,支持多 sheet 切换、奇偶行交替底色
- EPUB 电子书阅读增强:主题跟随、字号缩放(60%-200%)、行距调节(紧密/标准/宽松)、阅读位置记忆
- EPUB 分阶段加载动画:加载电子书 → 排版 → 分页 → 恢复阅读位置,带旋转圆环动画
- EPUB 全文搜索:FTS5 全文索引,支持 CJK 逐字分词、关键词高亮、跳转定位
- Office 预览方式设置:内置预览 / 系统应用,设置持久化即时生效
- 端口自动查找:内置 WSS + 独立 WS 启动前探测端口,被占用自动递增
- 独立预览窗口:文件支持以独立 BrowserWindow 打开,窗口自带标题栏
v0.1.0
2026年5月7日首个正式版本发布
unobox 由作者一人使用多个 AI Agent(Claude、Antigravity、Claude Code、Gemini 等)复合自动开发完成,从构思到首个版本发布耗时近 20 天。
核心功能
- 搭建 unobox 桌面端基础框架(Electron + React + TypeScript + Vite)
- 实现 Telegram 风格的三栏式聊天布局 + 自定义无边框标题栏
- IServerProvider 统一接口 + ProviderManager 多服务器热插拔管理
- LocalProvider:基于 better-sqlite3 纯本地存储,完全离线可用
- WebSocketProvider:自建 WS 服务端连接器,支持多房间、实时消息广播、文件传输
- MatrixProvider:Matrix/Synapse 协议适配,支持联邦网络通信
- 完整消息功能:文本/图片/视频/语音/文件/GIF/Emoji,引用/转发/编辑/删除/固定/反应/已读
- 群组管理:创建/邀请/踢出/角色管理/管理员 6 项权限配置/群公告
- Channel 频道:服务器同步 / 本地存储双模式、定时发布、阅读量、评论区、订阅者管理
- Bot 框架:注册/命令处理/自动回复/内联键盘/Webhook 回调
- AI 智能聊天(计划外):8 种接口、流式输出、思考过程可视化、会话持久化
- CI/CD:GitHub Actions 自动构建三平台 + Release 发布 + 静态官网部署
- 自动更新:electron-updater 集成 + UpdateModal 更新提示弹窗