版本更新日志

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/upload device_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 更新提示弹窗