Releases: hicocos/tg-vault
Releases · hicocos/tg-vault
Release list
v2.4.3
TG Vault v2.4.2
v2.4.2 更新日志
新增
- Web 与 Telegram Bot 全面国际化基础设施,支持简体中文、English 和 Русский。
- Web 端语言选择、地区化格式化、稳定 API 错误码本地化与翻译契约测试。
- Telegram Bot 语言偏好持久化、
/language//lang命令,以及中文、英文、俄文命令菜单。 - Telegram 账号级下载器与频道订阅任务的运行边界、超时和生命周期安全增强。
- 移动端 Web 布局、设置页、上传中心、任务中心和订阅中心体验优化。
变更
- 移除 yt-dlp 视频链接下载功能及其 Web、Bot、配置、依赖、文档和遗留任务清理逻辑。
- 新部署简化
.env配置;Telegram 凭证与运行设置统一通过 Web 管理。 - 增加 Telegram 用户语言与历史 yt-dlp 任务清理数据库迁移。
- 加强存储账号生命周期锁、任务取消/清理确认、媒体预览错误处理和部署版本元数据。
验证
- Backend tests: 477 passed, 0 failed
- Frontend tests: 231 passed, 0 failed
- Backend typecheck: passed
- Backend build: passed
- Frontend build: passed
TG Vault v2.4.1
更新日志
修复与改进
- 强化 Telegram Bot 与用户账号运行时隔离:Bot 启动后先完成自身连接,再经过独立隔离窗口恢复已明确启用的用户账号与频道后台任务,降低同一时刻集中连接 Telegram 的风险。
- Bot 凭证检测改用 Telegram HTTPS Bot API
getMe,避免在正式启动前额外创建 MTProto Bot 会话;检测请求增加超时、不缓存与禁止重定向策略。 - Bot 命令菜单改为后台按指纹同步,不再阻塞连接就绪;菜单未变化时不会重复注册。
- 个人账号页面取消主动“权限检测”操作,仅展示已有权限汇总;登录提示进一步明确 Bot 与个人账号彼此独立。
- 更换密码时,当前密码错误改为返回 403,避免前端误判有效登录会话已过期。
- 孤儿文件自动清理增加启动调度保护,避免重复启动定时任务。
升级方法
使用官方安装脚本部署
cd /opt/tg-vault
sudo bash deploy/install.sh使用 Git / Docker Compose 手动部署
cd /path/to/tg-vault
git fetch --tags origin
git checkout main
git pull --ff-only origin main
git checkout v2.4.1
version="v$(node -p "require('./backend/package.json').version")"
revision="$(git rev-parse HEAD)"
IMAGE_VERSION="$version" SOURCE_REVISION="$revision" SOURCE_VERSION="$version" docker compose build backend frontend
IMAGE_VERSION="$version" SOURCE_REVISION="$revision" SOURCE_VERSION="$version" docker compose up -d --no-build --no-deps backend frontend- 升级前建议备份 PostgreSQL 数据库和
.env。 - 本版本未新增数据库迁移。
验证
- Backend:完整测试、TypeScript 类型检查及生产构建通过。
- Frontend:完整测试、ESLint、TypeScript/Vite 生产构建通过。
- 安装脚本测试通过。
TG Vault v2.4.0
TG Vault v2.4.0
Important
严重安全优化:强烈建议所有用户尽快升级并使用 v2.4.0。
本版本重点收紧 Telegram Bot 凭证与账号运行时的生命周期边界,避免保存、迁移或更换 Bot 凭证时意外触发 Telegram 用户账号、订阅扫描、任务恢复或主动消息等自动化行为。
重要行为变化:这不是“零影响”升级。 为消除隐式自动化带来的安全风险,升级后 Telegram 订阅扫描、任务恢复和定期清理不再随 Bot 启动而自动运行;依赖这些自动化的用户会看到相关任务停止。请优先完成安全升级,并留意后续采用明确应用级编排的版本。
严重安全优化
- 严格隔离 Telegram Bot 与用户账号运行时:保存、迁移、停用或删除 Bot 配置时,不再初始化、刷新或扫描 Telegram 用户账号。
- Bot Token 更换不再复用旧会话:每次启动均从空 Bot Session 完成身份认证,避免旧 Session 与新 Token 混用。
- 启动完整性校验:Bot 只有在认证、身份读取、命令菜单注册和事件处理器安装全部成功后才进入
ready状态。 - 失败即清理:Bot 启动失败会立即断开并销毁失败客户端,清除运行时引用,防止半初始化实例残留。
- 失效凭证识别更准确:
ACCESS_TOKEN_EXPIRED、ACCESS_TOKEN_INVALID等错误会明确归类为凭证失效,并提示在网页端更换 Token。 - 用户账号改为显式激活:仅在“登录完成”或用户明确点击“启用”时连接对应账号;停用账号会立即关闭其运行时客户端。
- 登录凭据作用域收紧:二维码/手机号登录流程携带本次显式凭据,只激活刚完成登录的账号,不再刷新整个账号池。
- 杜绝隐式后台自动化:Bot 凭证绑定过程不再自动启动订阅扫描、任务恢复或定期清理任务。
- 不再持久化 Bot Session:Bot 每次使用当前 Token 从空 Session 认证,不再将额外的 Bot Session 凭据写入磁盘。
- 启动副作用延后提交:通知器和摘要定时器仅在 Bot 完整进入
ready后安装;任何启动失败都会撤销相关运行时副作用。 - 旧版手机号登录同样定向激活:旧版登录流程保存并传递本次 Telegram API 凭据,只连接刚刚完成登录的账号。
稳定性改进
- Telegram Bot 连接与重连策略改为有界重试,关键启动步骤增加超时保护,降低网络异常时长期阻塞的风险。
- 可选 Bot 启动失败时继续以 degraded 状态提供 Web 服务,同时保留可操作的错误原因;必需模式仍会阻止就绪。
- 多账号适配器在应用启动时以无账号连接副作用的方式安装,账号连接只由明确操作触发。
升级方法
使用官方安装脚本部署
cd /opt/tg-vault
sudo bash deploy/install.sh使用 Git / Docker Compose 手动部署
cd /path/to/tg-vault
git fetch --tags origin
git checkout main
git pull --ff-only origin main
git checkout v2.4.0
version="v$(node -p "require('./backend/package.json').version")"
revision="$(git rev-parse HEAD)"
IMAGE_VERSION="$version" SOURCE_REVISION="$revision" SOURCE_VERSION="$version" docker compose build backend frontend
IMAGE_VERSION="$version" SOURCE_REVISION="$revision" SOURCE_VERSION="$version" docker compose up -d --no-build --no-deps backend frontend- 升级前建议备份 PostgreSQL 数据库和
.env。 - 升级后请进入 Web 设置检查 Telegram Bot 状态;若提示 Token 失效,请更换 Bot Token。
验证
- Backend:470/470 项测试通过,TypeScript 类型检查通过,生产构建通过。
- Frontend:203/203 项测试通过,ESLint 通过,生产构建通过。
- 数据库 schema 一致性检查:通过。
- 安装脚本测试:通过。
- 新增安全回归覆盖:Bot/用户账号生命周期隔离、旧 Session 不复用、失败客户端清理、显式账号激活、失效 Token 分类。
TG Vault v2.3.1
更新日志
新增
- 新增 Web「订阅中心」,集中查看启用中的 Telegram 频道订阅、同步状态和广告过滤统计。
- 新增按订阅配置的广告过滤:支持关闭、保守和严格三种模式,并可添加关键词、域名、账号/机器人等允许或屏蔽规则。
- 新增广告过滤记录与人工纠正:误判为广告的内容可标记为正常并重新加入下载队列;纠正结果可用于后续模板识别。
- 新增高级设置「跳过频道普通图片」,适合频道同时发布预览图与原图文件、只需归档原图文件的场景。
修复与改进
- 广告过滤按 Telegram 媒体组整体判定,避免同一组内容只过滤部分消息。
- 恢复误拦截内容时增加幂等与并发保护,避免重复创建恢复任务。
- 订阅中心的订阅和过滤记录支持分页,减少大量订阅时的单次查询和渲染负担。
- 广告过滤默认关闭;升级后现有订阅继续按原方式下载,不会自动改变行为。
- 「跳过频道普通图片」默认关闭,并在启用时增加风险确认,避免频道只发布普通图片时意外漏图。
升级方法
使用官方安装脚本部署
cd /opt/tg-vault
sudo bash deploy/install.sh使用 Git / Docker Compose 手动部署
cd /path/to/tg-vault
git fetch --tags origin
git checkout main
git pull --ff-only origin main
git checkout v2.3.1
version="v$(node -p "require('./backend/package.json').version")"
revision="$(git rev-parse HEAD)"
IMAGE_VERSION="$version" SOURCE_REVISION="$revision" SOURCE_VERSION="$version" docker compose build backend frontend
IMAGE_VERSION="$version" SOURCE_REVISION="$revision" SOURCE_VERSION="$version" docker compose up -d --no-build --no-deps backend frontend- 启动后后端会自动应用本版本的数据库迁移;升级前仍建议先备份 PostgreSQL 数据库和
.env。 - 如需启用频道广告过滤,请升级后进入 Web「订阅中心」逐个订阅配置;现有订阅默认保持关闭。
验证
- Backend:457/457 项测试通过,TypeScript 类型检查通过,生产构建通过。
- Frontend:203/203 项测试通过,生产构建通过。
- 安装脚本测试:通过。
TG Vault v2.3.0
更新日志
新增
- Telegram 用户账号支持二维码/手机号登录,可管理多个账号并按来源进行调度。
- 新增 Telegram 账号健康状态、来源权限检查、冷却与访问审计。
- 新增可恢复的媒体缩略图/预览生成队列,并持久化衍生任务状态。
- 新增增量数据库迁移台账、迁移校验和启动时安全恢复。
- 新增文件名/文件夹三元组搜索索引。
- Web 任务中心、Telegram Bot 面板与中英文界面继续完善。
修复与改进
- 上传后的媒体衍生处理从请求链路移出,降低大文件上传延迟并支持失败恢复。
- 改进本地文件存储、孤儿文件清理、媒体代理与云存储错误处理。
- 强化 Telegram Bot 认证、2FA 二维码临时文件清理、任务与订阅交互安全。
- 统一前端 HTTP/API 错误处理、会话失效处理、加载状态和移动端交互。
- 更新部署构建与数据库 schema 同步流程,保留锁定依赖和镜像可追溯元数据。
验证
- Backend: 438 tests passed,typecheck、schema check、dist schema check passed。
- Frontend: 201 tests passed,lint and production build passed。
- Installer syntax/contract checks passed。
TG Vault v2.2.1
TG Vault v2.2.1
本版本集中修复 HTTP 部署、分片续传、Web 密码变更与安装脚本兼容性问题。
修复与改进
- 修复 HTTP 来源不提供 Web Crypto
subtle时,分片上传无法计算 SHA-256、导致上传或续传失败的问题;新增纯前端 SHA-256 回退实现,并保留 HTTPS 环境下的原生 Web Crypto 路径。 - 加强分片续传身份校验:恢复上传前逐块核对已上传内容哈希,避免同名同大小但内容不同的文件错误复用旧会话。
- 修复启用加密设置存储后修改 Web 管理密码失败的问题;密码读取和写入现在均正确经过加解密,并在事务中撤销现有 Web 会话。
- 改进安装脚本对受限环境的兼容性,不再依赖
node或openssl,统一使用 Python 读取版本和生成安全随机密钥。 - 补充正式部署的 Cookie 安全开关及回归测试,避免遗留环境变量意外削弱 HTTPS Cookie 策略。
升级
git fetch origin
git pull --ff-only origin main
./deploy/install.sh升级前建议备份 PostgreSQL 和完整 file-storage 卷。
完整变更
TG Vault v2.2.0
TG Vault v2.2.0
本版本新增 OpenList 原生存储接入与版本更新提醒,并集中修复文件浏览、存储切换、OAuth、任务中心和移动端交互中的一致性问题。
新功能
- 新增 OpenList 原生存储提供商:可在 TG Vault 内配置地址、根目录、用户名和密码,支持连接测试、上传、下载、预览、范围请求和删除。
- 新增版本检查:设置页可手动检查 GitHub 最新稳定版,检测到新版本时在 Web 端展示提醒,并向符合条件的已认证 Telegram 用户发送一次通知。
- 存储账户能力现在可准确控制上传、分享和删除等界面操作,避免对只读存储显示不可执行动作。
修复与改进
- 修复文件排序与游标分页不一致、加载更多竞态、搜索快照过期、收藏夹过滤和手动刷新残留旧状态等问题。
- 修复文件夹重命名/移动后的 URL 路由同步,以及文件移动完成后列表未按服务端状态刷新的问题。
- 修复切换存储账户时配置与容量统计不同步,并在上传前锁定目标账户,避免传到错误存储。
- 修复 OAuth 弹窗关闭、超时和消息校验流程;加强公网请求的 DNS、重定向和 SSRF 防护。
- 改进任务轮询串行化、任务快速筛选及按账户清理任务的准确性。
- 改进移动端和键盘操作、对话框异步失败反馈、上传失败原因展示及中英文界面一致性。
- 修复构建产物数据库 schema 同步,确保源码、初始化脚本与发布镜像一致。
.env.example不再包含IMAGE_VERSION、SOURCE_VERSION、SOURCE_REVISION。应用版本统一从backend/package.json读取,Git 修订号在部署时读取,构建元数据只临时传给 Docker,不再持久化到.env。deploy/install.sh升级旧部署时会清理遗留版本字段,避免旧.env覆盖新版本;同时只重建和替换前后端,不重建 PostgreSQL。
升级
git fetch origin
git pull --ff-only origin main
./deploy/install.sh升级前建议备份 PostgreSQL 和完整 file-storage 卷。
完整变更
TG Vault v2.1.1
TG Vault v2.1.1
本版本集中修复 Web 上传、存储账户删除和任务中心的关键逻辑问题。
修复
- 修复所有存储提供商上传时误把展示名称当作 provider ID 的问题,覆盖本地、OneDrive、Google Drive、阿里云 OSS、S3 和 WebDAV。
- 修复存储账户删除预览中的 PostgreSQL
text = uuid类型冲突,避免“无法创建删除确认”和后端进程退出。 - 删除确认失败现在返回结构化错误,不再因未捕获的异步异常导致服务重启。
- 修复简单上传丢失后端错误正文的问题,并统一处理
401/428会话失效状态。 - 修复文件删除和存储账户删除未一致处理失效会话的问题。
- 任务中心新增按存储账户的服务端过滤,避免较旧的阻塞任务被全局 300 条限制截断。
- 修正删除确认
expiresAt的前后端类型契约。
验证
- 后端测试:361/361 通过。
- 前端测试:144/144 通过。
- 后端类型检查、构建通过;前端 ESLint、TypeScript 和生产构建通过。
- WebDAV 上传/下载/删除链路和存储账户删除完整流程已验证。
升级
git fetch origin
git pull --ff-only origin main
./deploy/install.sh升级前建议备份 PostgreSQL 和完整 file-storage 卷。
完整变更
TG Vault v2.1.0
TG Vault v2.1.0
本版本重点完善 Telegram 网页配置、账号级下载、yt-dlp Web 任务和低维护部署体验,并移除已经废弃的 AI/pgvector 依赖。
新功能
- Telegram Bot 网页管理
- 在“设置 → Telegram”中测试、保存、启用、停用或删除 Bot 配置。
- Bot Token、API ID 和 API Hash 使用 AES-256-GCM 加密保存,页面和查询接口不回显明文。
- 支持从旧
.env配置迁移到网页管理。
- Telegram 用户账号网页登录
- 支持手机号、验证码和可选两步验证密码登录。
- 用户 session 加密保存在服务端;可停用并保留登录,也可解除绑定。
- 兼容旧版明文 session 文件迁移。
- Web 创建 yt-dlp 任务
- 可从文件页粘贴单个媒体链接,选择最佳视频或 MP3。
- 任务进入持久化任务中心,并沿用当前存储目标快照和 URL 安全检查。
- 下载明细保留策略
- 默认仅保留错误明细,减少长期数据库占用。
- 可切换为保留全部,满足完整审计需求。
部署与基础设施
- 新增交互式安装向导:自动检测 Docker Engine、Docker Compose、Python 3 和 Git,并由用户决定是否补全缺失环境。
- 一次运行完成 Web/API URL 输入、
.env创建、密钥生成、版本写入、构建和启动。 - 支持
--non-interactive自动化部署模式。 - 移除 OpenSSL 前置依赖;密钥改由 Python 安全随机数生成。
- PostgreSQL 镜像切换为固定 digest 的标准 PostgreSQL 16,移除已废弃 AI 功能遗留的 pgvector 镜像依赖。
体验与安全改进
- 首次初始化根据 Bot 是否已配置决定是否要求 Bot PIN。
- Telegram Bot 生命周期操作串行化,并在失败时回滚配置。
- 用户账号 session、Bot 配置和允许用户管理进一步收紧明文暴露边界。
- 上传中心、移动端布局、弹层层级、批量删除和任务反馈体验优化。
- 更新后端依赖锁,修复
urllib高危跨域重定向凭据泄漏问题。
升级
git fetch origin
git status --short
git pull --ff-only origin main
./deploy/install.sh已有部署在安装向导中直接按三次 Enter,即可保留 Web/API 地址并完成升级。升级前请备份 PostgreSQL 和完整 file-storage 卷。