github anobaka/Bakabase v2.3.0

latest release: v2.4.0-beta.2
5 hours ago

🚀 Features / 新功能

  • #1214 支持多选资源后用外部播放器一起播放(批量播放)
  • #1215 播放列表支持外部播放器整体打开,批量播放候选按文件类型感知
  • #1198 下载器:支持 Ctrl+A 全选与批量编辑选中任务
  • #1200 下载器:新增下载历史永久记录表,并在 baka-monkey 中提示已下载过
  • #1201 ExHentai 下载器:新增「优先下载包含种子的任务」选项
  • #1189 引入持久化通知体系(drawer + toast + SignalR)
  • #1190 新增订阅模块:第三方源轮询 + 增量检测 + 管理界面
  • #1191 新增工作流模块:typed item flow + 拖拽编辑器 + AI 桥接
  • #1136 为 AV 增强器新增「简介」增强目标
  • #1085 支持管理保存aigc配置,触发ai生成任务,将生成产物保存为资源
  • #1094 优化 av 数据源测试布局,允许针对每种数据指定来源优先级
  • #1095 资源右键菜单增加重新增强按钮
  • #1097 可以在资源中调整每个属性不同数据来源的展示优先级
  • #1086 在第三方配置页面增加av数据源测试功能
  • #1090 为下载器增加“创建后自动下载选项”
  • #1074 为文件处理器分组功能增加精确模式
  • #1075 为文件处理器分组功能增加结构模式
  • #1076 为文件处理器分组功能的相似度模式增加档位控制,避免无意义的相似度阈值
  • #1077 优化文件处理器的文件分组预览界面
  • #1078 增加重新同步全部路径标记的功能
  • #1080 文件名修改器支持批量选择文件(夹)
  • #1020 支持多资源来源与第三方平台集成
  • #999 支持 AI 翻译增强器结果
  • #1000 增加 AI 增强器
  • #1001 增加 AI 文件结构分析、命名分析、文件(夹)名称修正、文件分组
  • #1025 支持批量删除资源
  • #1024 支持外部元数据获取与属性映射
  • #1029 浮动助手支持下载任务展示与任务类型筛选
  • #1032 Steam 平台增加元数据语言配置
  • #1026 资源右键菜单支持快速属性赋值
  • #1021 支持通过 WebView 登录捕获 Cookie
  • #1022 第三方平台支持多账户管理
  • #1033 重构油猴脚本架构 (baka-monkey)
  • #333 支持MacOS
  • #1045 全局属性值展示优先级功能
  • #1009 Support Relationship Field (Actors/Voice Actor)
  • #1053 优化悬浮助手,增加简易的聊天和agent能力
  • #1059 新增预置属性:名称。针对本地资源,默认使用文件名填充至名称。对于外部资源,使用对应的 metadata 自动填充名称
  • #1064 增加资源健康度评分功能
  • #1067 将单选、多选、多级数据和标签的默认搜索条件从包含(contains)改成属于(in)
  • #1068 支持资源按照健康评分排序

✨ Enhancements / 改进

  • #1218 支持在本次运行内关闭更新失败提示
  • #1199 优化 baka-monkey:已访问 item 边框、访问时间按时区显示、修复对宿主站布局的影响
  • #1210 资源右键菜单支持批量刷新缓存(后台任务)
  • #1188 资源 tab 名称在未命名时自动取已选 filter 值的组合
  • #1173 隐藏资源封面时使用专用图标,避免与封面缺失混淆
  • #1176 AIGC 来源资源的右下角图标缺失
  • #1177 本地开发环境下禁用 Sentry / PostHog / Clarity
  • #1178 强化不同来源的播放按钮:在来源图标上叠加小播放图标
  • #1179 在侧边栏底部新增应用更新横幅,替代右下角 toast 提示
  • #1180 统一 FileExplorer 顶部工具栏样式
  • #1182 资源源元数据映射:为内置字段提供默认推荐映射
  • #1184 小 baka 工作状态:增加双手忙碌动画与升腾烟雾
  • #1183 BTask 模块优化:fluent builder、过渡态状态、心跳与 UI 复用
  • #1163 Sentry 前端事件未记录 HashRouter 路由
  • #1143 补全 ReservedProperty.Name 并集中化保留属性读写
  • #1144 ExHentai 下载器:新增"优先下载种子"全局配置
  • #1131 资源页面性能优化:filter 调整与 tab 切换卡顿
  • #1093 优化下载器页面的部分交互
  • #1039 v2.3 UI 与翻译优化
  • #1035 缓存拆分为封面缓存和可播放文件缓存
  • #971 优化增强器配置流程,从【选择增强器】-【配置属性】变更为【聚合全部增强器支持的属性,直接选择属性】
  • #1027 资源封面显示来源平台图标
  • #1034 播放控制支持多来源切换
  • #1038 DLsite 平台下载与启动优化
  • #1037 资源列表默认筛选器增加来源维度
  • #1028 文件浏览器增强:进入目录按钮与隐藏文件开关
  • #1042 在悬浮助手中添加隐藏资源封面开关
  • #960 增加初始语言选择
  • #1046 资源筛选器属性选择器支持置顶常用属性
  • #1047 补充一些翻译
  • #1048 调整资源详情中属性的排版方向
  • #1056 为流式llm调用增加审计日志
  • #1057 为模型选择增加关键字筛选功能

🏗️ Architecture / 架构

  • #1175 资源列表性能优化:减少滚动 / Phase 2 加载 / 配置切换时的重渲染
  • #1183 BTask 模块优化:fluent builder、过渡态状态、心跳与 UI 复用
  • #1149 重构:统一资源属性 scope 优先级取值逻辑
  • #1143 补全 ReservedProperty.Name 并集中化保留属性读写
  • #1087 从GuiAdapter抽象WebViewSession,用于更灵活地控制辅助webview窗口
  • #1084 接入ga4、sentry、posthog
  • #996 支持自定义更细节的 ui 样式
  • #998 增加 AI 基础设施
  • #1031 从 WPF 迁移到 Avalonia 实现跨平台支持
  • #1030 更新机制从 OSS 迁移到 Velopack
  • #1023 统一第三方平台配置界面
  • #1036 引入 Provider 架构重构封面、可播放项和元数据
  • #1054 获取资源文件系统相关的时间数据时,精度对齐到毫秒,确保不会频繁触发资源更新

🐛 Bug Fixes / 缺陷修复

  • #1223 依赖组件未就绪/安装中时抛裸异常,污染 Sentry
  • #1224 DLsite cookie 失效被当作错误上报,污染 Sentry
  • #1225 复制/移动到同名前缀的兄弟目录时误报「不能是子路径」
  • #1226 从托盘重新打开主窗口时 WebView2 已释放导致崩溃
  • #1227 托盘图标 GDI 句柄泄漏,长时间运行后右键托盘崩溃
  • #1229 文件浏览器初始化/清理的 promise 未捕获,异常被上报为崩溃
  • #1212 刷新资源缓存后,资源列表未更新封面/播放状态
  • #1196 下载器「导出所有任务」报错:相对 URL 导致 Process.Start 失败
  • #1197 Toast 宽度不随内容自动扩大
  • #1206 资源列表页删除资源后,列表未即时移除该资源
  • #1207 同步资源标记后,部分新资源找不到可播放文件且刷新缓存无效
  • #1194 升级包自动下载后,会在下次启动时被自动安装,应改为手动确认
  • #1192 AV 增强器:马赛克(Mosaic)属性增强结果恒为「有码」
  • #1187 资源列表滚动时分页指示器不再自动更新
  • #1174 资源列表向下滚动加载时,整页 resource name 可能缺失
  • #1181 修复 downloader 命名规范的 placeholder、字段提示与空值 fallback
  • #1172 AV 增强器:标签 / 发行日期 / 年份 / 时长 / 马赛克 五个属性增强结果为空
  • #1165 未处理的 API 错误 throw Response 对象,Sentry 报 [object Response]
  • #1164 Select 组件在 dataSource 为 null 时崩溃
  • #1166 AliasExtensions 在 TagValue.Name 为空时抛 ArgumentNullException
  • #1167 打开资源接口在路径为空时抛 ArgumentNullException
  • #1168 ResourceCaches 写入竞态导致 UNIQUE 约束冲突
  • #1169 搜索索引枚举时被并发修改导致 InvalidOperationException
  • #1159 补充测试覆盖的过程中修复的多个生产 bug 汇总
  • #1160 封面抽帧失败被错误地按 Error 上报,导致 Sentry 充满噪音
  • #1158 预置属性 Name 在显示名称模板中始终为空
  • #1161 AV 增强器:mmtv / getchudl 数据被静默丢弃(调度键与 IAvDetail.Source 不一致)
  • #1146 Bangumi cookie 验证失败:验证器请求了错误的站点
  • #1147 增强器写入的简介在资源详情页有时不显示
  • #1148 增强值在详情页/卡片有时不显示:多 scope 取值的空值判断不正确
  • #1152 安装依赖组件时遇到四段式版本号崩溃
  • #1153 无自定义属性时按关键词搜索资源抛 KeyNotFoundException
  • #1154 依赖组件发现失败的错误日志内容有误
  • #1155 文件监听目标目录不存在时被误报为错误日志
  • #1156 下载依赖组件时的网络失败被误报为错误
  • #1133 修复依赖组件 SDK 调用未将 id 作为字符串传递
  • #1135 修复 baka-monkey 油猴脚本破坏宿主页面布局
  • #1134 修复 Name 保留属性在增强器与详情 UI 中未生效
  • #1100 【bug】FC2 视频解析偶发报错:value cannot be an empty string
  • #1101 【bug】中文/日文文件名视频在内置播放器报错无法播放
  • #1102 【bug】视频封面提取偶尔失败:mpeg4 警告或空错误信息
  • #1103 【bug】切换/关闭视频时频繁产生 OperationCanceledException 错误日志
  • #1104 【bug】取消解压任务被记录为失败(7-Zip exit 255)
  • #1105 【bug】视频格式不支持时播放器界面崩溃(NotSupportedError)
  • #1106 【bug】切换/关闭视频时偶发 AbortError(play() 被打断)
  • #1107 【bug】编辑 Time 类型属性时崩溃:dur.asMilliseconds is not a function
  • #1108 【bug】升级到 AddTargetsToPostParser 迁移失败:PRAGMA foreign_keys 不允许在事务中执行
  • #1109 【bug】依赖组件配置页崩溃:BApi.component.discoverDependentComponent 不存在
  • #1110 【bug】EnhancerService 中 ArgumentOutOfRangeException 没有任何诊断信息
  • #1111 【bug】Enhancer 批量入库时复合 key 重复报错
  • #1112 【bug】并发增强同一资源同一 enhancer 时 EnhancementRecord 唯一约束冲突
  • #1113 【bug】并发解压时密码使用次数统计触发唯一约束冲突
  • #1114 【bug】FfMpegService.GetDuration 在 ffprobe 输出异常时抛 ArgumentNullException
  • #1115 【bug】下载器 Cookie 失效被记录为 500 错误而非 400 用户提示
  • #1116 【bug】移动文件到自身子目录时校验滞后,任务跑到一半才失败
  • #1117 【bug】外部/系统播放器启动失败:文件不存在或快捷方式无法执行
  • #1118 【bug】Avalonia 托盘图标偶发 Win32Exception("操作成功完成")
  • #1119 【bug】浏览已删除/受限路径或打开缺失资源目录时返回 500
  • #1120 【bug】Telemetry 收集失败被记录为 Error 级日志触发 Sentry 事件
  • #1121 【bug】AIGC 提供方返回零产出时被记为后端错误(应为用户级失败)
  • #1122 【bug】第三方站点 HTTP 非 2xx 被 Sentry HttpHandler 重复记录
  • #1126 【bug】Swagger UI / SPA 首页触发 ResponseCaching 中间件 500(max-age=0 bug)
  • #1123 【bug】Bilibili 收藏夹页 Cookie 失效返回 500 而非 400
  • #1124 【bug】Enhancer 自依赖循环导致整个 EnhanceAll 任务失败
  • #1125 【bug】第三方抓取(FC2/CNMDB)网络抖动被记为 Error 级污染 Sentry
  • #1127 【bug】增强 BTask 一直卡在 0%(ResourceProfile 中残留未绑定属性的 enhancer target)
  • #1096 bangumi cookie 验证报错
  • #1083 exhentai cookie登录导入时,在某些情况下可能会出现空白页
  • #1089 时间和日期类型属性值渲染和编辑异常
  • #1091 标题包含/时会导致下载失败
  • #1092 在下载器中无法保存exhentai的cookie
  • #1082 dlsite 增强标签含斜线时被错误拼上 AppData 路径前缀
  • #1079 【同步此路径上的所有标记】会导致资源和媒体库的关联丢失
  • #1081 部分情况下dlsite增强可能会无数据
  • #1071 升级或重装后,自定义 AppData 目录的 IMigrator 被跳过
  • #1040 AI文件处理使用推理模型(如deepseek-r1:32b)时返回非JSON结果
  • #1041 Modal中的Tab组件动画导致关闭后残留透明遮罩层
  • #1043 Windows 11下窗口变化后WebView2未正确调整大小
  • #1044 资源列表页多选快捷键(Ctrl+点击、Shift范围选择、Ctrl+A)失效
  • #1051 win11下资源的时间戳更新异常
  • #1052 部分steam资源无法获取封面
  • #1058 aliyun 百炼 llm provider 获取了错误的模型列表
  • #1060 在单个本地资源上右键点击时没有打开文件夹的选项
  • #1065 刷新资源缓存时未能删除历史缓存封面
  • #1066 升级至velopack打包后,导致部分封面文件无法加载
  • #1069 迁移老版本 AppData 到 2.3.0-beta.65 时启动崩溃:FullMemoryCacheResourceService 未注册
  • #1137 [Bug] 批量修改页 Select 下拉框在选项缺少 key 时导致整页崩溃
  • #1138 [Bug] 资源详情布局编辑器拖拽/缩放区块后无限重渲染崩溃
  • #1139 [Bug] 增强任务遇到已删除资源时抛出 NullReferenceException
  • #1140 [Bug] 视频转码时硬件编码器失败缺少软件回退

📝 Other Issues / 其他

  • #1203 CI/部署流程优化:CI 仅在 PR 运行,main 合并不再自动部署
  • #1170 网络/依赖类异常污染 Sentry 后端事件
  • #1150 新增 Sentry issue 自动化处理工作流 skill
  • #1142 清理废弃的 PathConfiguration 与路径匹配死代码
  • #1128 资源封面上的属性值未应用 property value scope 优先级
  • #1129 保留属性 Name 未翻译(BuiltinPropertyName_Name)
  • #1099 【增强】支持自定义ai来源以及deepseek
  • #1098 【bug】无法终止媒体库设置
  • #1088 移除部分失效av source
  • #1073 Velopack 卸载与修复会清空默认路径下的用户数据
  • #1072 默认数据目录下,卸载程序会静默删除全部用户数据
  • #1049 启动时卡在迁移界面:共享SqliteConnection线程安全问题导致EF Core迁移锁死锁
  • #1050 资源搜索结果中自定义属性排序不正确
  • #1070 ✅ 已在 2.3.0-beta.75 彻底修复:2.3-beta 数据丢失风险(升级 / 卸载 / 修复)/ Fully fixed in 2.3.0-beta.75: 2.3-beta data loss risk (upgrade / uninstall / Repair)

📝 Other Changes / 其他变更

  • Stop random play 404s and honor the playable-file cache switch (65a4cdd)
  • Merge 2.3 beta features into the main feature list for the stable release (01f89c6)
  • Bump version to 2.3 (9bd5d85)
  • Limit sentry-triage skill to bakabase-web and bakabase-service projects (a857656)
  • Merge pull request #1195 from anobaka/claude/brave-einstein-qo73Y (38177ff)
  • Merge pull request #1193 from anobaka/claude/bold-cerf-DGnXm (ea9f62c)
  • Add coverage and fix alias dedup gap (2fdec5f)
  • Import ReservedProperty as type-only (10c774a)
  • Gate deploy on CI success via workflow_run (0a428be)
  • Warn about literal skip-ci substrings in commit bodies (8a87e84)
  • Dispatch via IAvClient and serialize details directly (5fa4a6b)
  • Make the new lint + vitest jobs pass (dcd9938)
  • Set up test CI workflow and development environment tooling (51d6024)
  • Consolidate test project architecture (c358e06)
  • Ignore live-network ThirdParty integration tests (95862b3)
  • Add StandardValue serialization boundary tests (b381966)
  • Correct StandardValue serialization at Time and DateTime boundaries (e5b4afa)
  • Return null from InferStandardValueType for unknown CLR types (18dfc7c)
  • Add StandardValue type-validation boundary tests (36340d5)
  • Add SingleChoice/MultipleChoice conversion boundary tests (5625369)
  • Add Tags/Multilevel conversion boundary tests (eef870d)
  • Add property search-filter matching boundary tests (b549c74)
  • Extend search matching with SingleChoice/MultipleChoice (641e26a)
  • Add StandardValueFactory boundary tests (6f0017e)
  • Add property index-entry generation boundary tests (b224efb)
  • Add Bakabase.Modules.Comparison.Tests with strategy coverage (7ca6d88)
  • Cover RegexExtractNumber and ExtensionMap comparison strategies (621d87f)
  • Add AliasExtensions value-context boundary tests (1072c2d)
  • Add MultilevelPropertyExtensions tree-operation tests (2d73a75)
  • Add ChoicePropertyExtensions.AddChoices boundary tests (7ae5b58)
  • Add MediaLibraryV2Adapter conversion boundary tests (dc91d9d)
  • Add LinkValue/TagValue domain value-object tests (b3168f7)
  • Add StandardValue handler Optimize/Compare/ValidateType tests (c498a82)
  • Add StringStandardValueExtensions parser boundary tests (da8b101)
  • Add HealthScoreProfileHasher invariant tests (9f04bb9)
  • Add StringExtensions escape-split / natural-sort tests (9b1d1cd)
  • Add Enumerable/Regex utility extension tests (3ad6966)
  • Add RatingMax10 enhancement-converter tests (504af5b)
  • Add StandardizePath / IsUncPath path-normalization tests (0f345f5)
  • Add resource search + inverted-index integration tests (6c753b3)
  • Add resource sorting tests (BuildForSearch + Search ordering) (9d36c6a)
  • Add cover-discovery integration tests (e341b03)
  • Add resource search scale tests (02ce082)
  • Add comparison plan CRUD, similarity, and execution tests (a32c642)
  • Deflake CookieCapture serialized-navigated handler test (36739a6)
  • Add resource-mark path sync tests (9c77616)
  • Remove redundant resource-mark path sync tests (e6e59c0)
  • Add resource-profile application and playable-file tests (90f9f5b)
  • Add Regex enhancer enhancement tests (fdf3420)
  • Add download-task management tests (51a8fbb)
  • Add filtered resource search and index-equivalence tests (1e2596e)
  • Treat a cached empty playable-file result as a cache hit (b322941)
  • Add PropertyTypeConverter unit tests (dd9f409)
  • Add ResourceProfileIndexService tests (dee49de)
  • Add LocalFileCoverProvider cache tests (0eb0e97)
  • Add inverted-index incremental update tests (046a692)
  • Add enhancement orchestration tests (60a6ee9)
  • Skip non-existent source directories in FileMover (6ccadad)
  • Make Time -> DateTime conversion deterministic (ab2a607)
  • Unhandled search operations no longer match every resource (bda79f6)
  • Escape the escape char in escape-aware string split/join (05448a1)
  • Serialize Decimal standard values with InvariantCulture (2c9c268)
  • Cover index-entry generation for all property types (b5d91c5)
  • Search-match the db value with the property's own db value type (5e72db2)
  • Cover malformed-input deserialization of standard values (d8b1784)
  • Cover negative-layer and resource-boundary path marks (991ad39)
  • Cover standard-value serialization edge cases (23bfb3b)
  • Cover resource-mark file-extension filtering (d3f30bf)
  • Cover BTaskManager scheduling and conflict detection (710ec21)
  • Cover keyword-to-search-filter conversion (54c2918)
  • Add SpecialTextService coverage (fb72596)
  • Add PlayHistoryService coverage (76e24c6)
  • Add ExtensionGroupService coverage (d6d2399)
  • MediaLibraryV2Service.Get returns null for a missing id (621a676)
  • Add ReservedPropertyValueService coverage (082792b)
  • Add PropertyValueScopePreferenceService coverage (c24562e)
  • Add MediaLibraryTemplateService CRUD coverage (d115bca)
  • Cover SingleChoice In against a list filter (0f93042)
  • Cover property-mark priority conflict resolution (1d663a8)
  • Standardize media-library paths on every write entry point (e6846fa)
  • Merge branch 'claude/charming-heisenberg-RRCnz' into dev (d960b0f)
  • Merge branch 'claude/affectionate-volta-M79h3' (8a50e31)
  • Merge branch 'claude/relaxed-heisenberg-57URG' (d6b48db)
  • Add GitHub issue management workflow to CLAUDE.md [skip ci] (3b77708)
  • Merge branch 'claude/exhentai-global-seed-config-hjcKg' (6abe186)
  • Refine GitHub issue workflow in CLAUDE.md [skip ci] (4651ebe)
  • Clarify workflow_dispatch as the manual build trigger (7640840)
  • Merge pull request #1145 from anobaka/claude/add-manual-ci-trigger-4s63i (18b38de)
  • Merge branch 'claude/restore-component-controller-7NFDJ' into dev (302d1f4)
  • Merge branch 'claude/fix-baka-monkey-layout-3WRDg' into dev (98fbb0e)
  • Merge branch 'claude/fix-reserved-property-name-J1NDz' into dev (7fbd434)
  • Merge pull request #1132 from anobaka/claude/fix-resource-filters-X21Am (ab2c8c6)
  • Merge pull request #1130 from anobaka/claude/fix-resource-cover-properties-Ip446 (d54beca)
  • Move FallbackOnEmpty from preference to each scope (611c05d)
  • Bulk-apply scope priority overrides (882be87)
  • Dim entries cut off by a no-fallback ancestor; brief property chip (c7b2b23)
  • Include property in scope-preference config view model (bb16aa1)
  • Reorder scope rows on move; custom-only add (2f086ad)
  • Show-empty toggle in per-resource priority editor (0922dbb)
  • Merge branch 'claude/bulk-resource-scope-config-sJAUE' into dev (a92b231)
  • Auto-bind enhancer targets and add per-property bind-to-profiles button (b1fb2af)
  • Merge branch 'claude/analyze-sentry-issues-MuOps' into dev (5ea1ead)
  • Migrate per-target source priority to global AV sources options (8d755c2)
  • Implement GetPreferredSourcesByTarget in DefaultAvSourceOptionsProvider (0357e6f)
  • Merge branch 'claude/sync-av-sources-features-msjTq' into dev (a917f64)
  • Re-gen api sdk (81a1fe1)
  • Merge branch 'claude/fix-enhancement-progress-stuck-bcvl8' into dev (f2e5f22)
  • Gate release issue extraction with closing keywords (2a759f7)
  • Add AIGC (AI-Generated Content) module (ad4525a)
  • Integrate into AI menu, JSON editor, full i18n (0c8cfb6)
  • Syntax error (13165a8)
  • Unify Llm/Aigc providers into one AiProvider with capabilities (83ec014)
  • Add intro paragraph on AIGC Configurations page (66246c3)
  • Add ef migration (2c60928)
  • ComfyUI workflow import, run cancellation, polish (4d2aa6a)
  • Add analytics infrastructure design (9135164)
  • Resolve open decisions; add release_channel dimension (d731247)
  • Gate Clarity init on enableAnonymousDataTracking (3e82c9f)
  • Add device id service + analytics-info endpoint (056f597)
  • Add telemetry snapshot endpoint (95fd432)
  • Introduce Analytics service + GA4 integration (851f2d3)
  • Track page_view on route change (2c18f12)
  • Wire Sentry frontend SDK + ErrorBoundary capture (1085a9a)
  • Wire Sentry backend SDK (beaf9e6)
  • Forward MSEL logs into Sentry (87c9029)
  • Update privacy copy + drop reset-device-id paths (3a60243)
  • Record implementation deviations + drop reset refs (c3085fb)
  • Add verification checklist (d29925e)
  • Add per-platform setup instructions (dee62fd)
  • Auto-enable GA4 debug_mode in dev builds (7f333a3)
  • Add PostHog as parallel quantitative analytics alongside GA4 (043396b)
  • Dedupe Javdb series anchors; add Javbus/Javdb parser tests (76bd71a)
  • Dedupe per-anchor across AV clients; add fan-out parallel test (f9f2bdf)
  • Add GenerateFixture/VerifyAgainstFixture for AV clients (acff0ad)
  • Pending LOTS OF av clients to be used to generate fixtures (1190814)
  • Add per-source config + batch test page for AV scrapers (4abfa42)
  • Fold AV Sources into third-party-configuration as a tab (b488ee5)
  • Refuse DataPath anywhere under Velopack install root (7fbbecf)
  • Derive upgrade installer URLs from package id + channel (2eab3e2)
  • Allow DataPath at install root so the beta.69~74 recovery works (c8a37a2)
  • Clarify recovery steps for beta.69-74 default-DataPath users (f4390e8)
  • Anchor i18n no longer mentions app.json (63f0a73)
  • CDN refresh sent literal "\n" instead of newline-separated paths (ac4b36e)
  • Stale UpToDate status masks new versions in AppInfo (dfd0182)
  • Post-relocation cleanup of the upgrade pipeline (3b4d2c8)
  • Add Bakabase.Infrastructures and LazyMortal as git submodules (d39672f)
  • Migrate curl to HttpCloak TLS client, improve post-parser (aac2374)
  • Optimize commit candidates selection (80818ea)
  • Restructure CI/CD pipeline with Velopack integration and release archive system (0e1c9f3)
  • Warn 2.3-beta users about in-app update data loss (#1070) (69feb66)

🚨 Upgrade Notice for 2.3

2.3 cannot be installed as an in-place upgrade from older versions. You must download and install the 2.3 release manually.

Starting from 2.3, Bakabase ships through a new installer and auto-updater. The old auto-update path cannot reach 2.3, so users on pre-2.3 versions need to download the 2.3 installer once and install it as a fresh app.

Once you're on 2.3, future updates are one-click again — the in-app updater handles every release after this one.

If you have data from an older Bakabase installation that you'd like to keep, launch the new 2.3 build first, then go to Settings → System Information → App Data Path → Change and point Bakabase at your old data folder. The app will offer to either adopt that folder as the active data directory, or merge your current data into it — pick whichever fits.


🚨 2.3 升级提醒

2.3 无法从老版本就地升级,需要手动下载 2.3 安装包重新安装一次。

从 2.3 开始,Bakabase 使用了新的安装器和自动更新机制,旧的更新通道无法直接升级到 2.3,因此 2.3 之前的用户需要手动下载一次 2.3 安装包并执行新装。

升级到 2.3 后,今后的版本仍可一键升级——应用内的自动更新会接管之后的每一次发布。

如果你有老版本留下的数据想继续使用,请先启动新装好的 2.3,然后进入 设置 → 系统信息 → 应用数据路径 → 修改,把 Bakabase 指向你的旧数据目录即可。应用会让你选择"使用目标数据"或"将当前数据合并到目标",按需选择即可。

Downloads / 下载地址

Aliyun CDN links are provided below. You can also download from the GitHub Assets section at the bottom of this page.

下方提供阿里云 CDN 下载链接,也可从本页底部的 GitHub Assets 中下载。

Auto-update is available via Settings > System (installer version required).

可通过程序内【系统】-【配置】界面一键更新(需使用安装版)。

Windows

Installer / 安装版 (Recommended / 推荐) Portable / 免安装版
Aliyun CDN / 阿里云CDN Download / 下载 Download / 下载

macOS

Apple Silicon (arm64) Intel (x64)
Installer / 安装版 Download / 下载 Download / 下载

Don't miss a new Bakabase release

NewReleases is sending notifications on new releases.