Releases: AkiroMusic/AkiConvert
Releases · AkiroMusic/AkiConvert
Release list
v2.2.0
v2.2.0 — 本阶段最终稳定版 ✅
本版本为当前开发阶段的最终稳定版(Final Stable Release of this phase)。
上一版本 v2.1.0 的 8 项遗留审计项已全部处理完毕,并完成本轮 UI 体验优化。
✨ 用户体验优化 (UX Improvements)
- 输出目录选择时机调整:导入/拖入文件时不再弹出保存目录选择框;点击「转换」时若尚未选择输出目录,才会弹出文件夹选择器(更符合直觉的转换流程)
- 自动并发模式:开启「自动调整」后,上方手动最大并发数的滑条自动置灰禁用(避免误解——此前手动值会被自动模式覆盖却仍可拖动)
🐛 修复与清理 (Fixes & Cleanup)
ncmDecrypt的readUint32LE合并进共享解码工具(消除重复实现,re-export 保持兼容)- 明确
detectAudioFormat保留在 ncmDecrypt 的原因注释(返回含 MIME 的 AudioFormat 对象,与工具版返回字符串不同) - 依赖升级:i18next
^24 → 26.3.6、react-i18next^15 → 17.0.11(运行时验证:语言切换/插值/扁平点分键全部正常)
📄 文档
- README:移除项目来源历史说明(中英文),完善版权信息
- CHANGELOG 增加 v2.2.0 条目
✅ 质量
- 285 个测试 / 21 个测试文件全部通过;typecheck + build 干净
- CI 每次推送自动验证
English
v2.2.0 — Final Stable Release of This Phase ✅
UX Improvements
- Output directory prompt deferred: importing/dropping files no longer
asks for a save location; the folder picker appears at convert time when
no output directory is set. - Auto concurrency mode: with "Auto" enabled, the manual max-concurrency
slider is disabled and greyed out (previously draggable while overridden).
Fixes & Cleanup
- Deduplicated
ncmDecrypt.readUint32LEinto shared decoder utils. - Documented why
ncmDecrypt.detectAudioFormatstays local (AudioFormat
object with MIME vs. utils string variant). - Dependencies: i18next
^24 → 26.3.6, react-i18next^15 → 17.0.11
(runtime-verified: language switching / interpolation / flat dotted keys).
Docs
- README: removed project provenance notes (EN + CN), completed copyright info.
- CHANGELOG updated for v2.2.0.
Quality
- 285 tests / 21 files passing; typecheck + build clean.
- CI on every push.
Full Changelog: v2.1.0...v2.2.0
v2.1.0
v2.1.0 — KGG 解密 · 歌词文件 · i18n 加固 · 安全强化
✨ 新功能 (Features)
- KGG 解密端到端 — 解密酷狗
.kgg(V5) 文件、导入密钥数据库、自动扫描已知酷狗安装路径(Windows/macOS) - 手动歌词挂载 — 为单个源文件附加
.lrc/.txt歌词,转换时自动嵌入 - 首启语言自动检测 — 首次启动跟随系统语言并持久化,手动选择始终优先
- 主进程错误 i18n — 转换失败显示本地化错误信息,不再输出原始英文
- 输出目录持久化 — 重启后保留上次选择的输出目录
🔧 变更 (Changed)
- 工具链升级:Electron 43 / Vite 7 / electron-vite 5 / Vitest 4 / TypeScript 5.7+
- 应用图标压缩 85%(1.87 MB → 270 KB)
- README 重构为统一双语格式
🐛 修复 (Fixed)
- 安全:QMCv1 掩码 off-by-one(
i % 32768);ZIP 条目路径穿越消毒;settings 加载拒绝未知键/原型污染键(__proto__等);输出格式运行时白名单;渲染进程 sandbox 启用 - 稳定:批量转换 pause/cancel 安全;IPC 监听器泄漏修复;
.kgg.flac多扩展名分类;播放器 URL 编码 + 陈旧 promise 守卫;并发钳制 1–10;文件名控制字符消毒;文件对话框包含普通音频格式 - 性能/清理:删除死代码
audioHash;execSync→ 异步execFile(5s 超时);ffmpeg stderr 限长 64 KiB;单一 HistoryStore 实例;clear()走 writeChain 串行化;原生对话框标题本地化
✅ 质量 (Quality)
- 21 个测试文件 / 285 个测试全部通过
- GitHub Actions:每次 push/PR 自动跑 typecheck + test + build(CI)
English
v2.1.0 — KGG Decryption · Lyrics Files · i18n Hardening · Security
Features
- KGG decryption end-to-end — decrypt Kugou
.kgg(V5) files, import key databases, auto-scan KuGou install paths (Windows/macOS) - Manual lyrics attachment — attach
.lrc/.txtper source file, embedded on conversion - First-run language auto-detection — follows OS locale, persisted; explicit choice wins
- Main-process error i18n — localized conversion error messages
- Output dir persistence — survives restarts
Changed
- Toolchain upgraded: Electron 43 / Vite 7 / electron-vite 5 / Vitest 4 / TypeScript 5.7+
- App icons compressed ~85% (1.87 MB → 270 KB)
- README unified bilingual structure
Fixed
- Security: QMCv1 mask off-by-one (
i % 32768); ZIP path-traversal sanitization; settings prototype-pollution key rejection; output format runtime whitelist; renderer sandbox enabled - Stability: pause/cancel-safe batch conversion; IPC listener leak;
.kgg.flacmulti-extension classification; player URL encoding + stale-promise guards; concurrency clamp 1–10; filename control-char sanitization; dialog includes plain audio formats - Perf/cleanup: dead
audioHashremoved;execSync→ asyncexecFile(5s timeout); ffmpeg stderr capped 64 KiB; single shared HistoryStore;clear()serialized through write chain; localized native dialog titles
Quality
- 21 test files / 285 tests passing
- GitHub Actions CI on every push/PR (typecheck + test + build)
Full Changelog: v2.0.1...v2.1.0
v2.0.1
v2.0.0
v1.4.1
v1.4.0
v1.3.3
v1.3.2
v1.3.1
v1.3.0
Full Changelog: v1.2.0...v1.3.0
Full Changelog: v1.2.0...v1.3.0