Skip to content

Releases: AkiroMusic/AkiConvert

v2.2.0

Choose a tag to compare

@github-actions github-actions released this 12 Aug 15:48

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.readUint32LE into shared decoder utils.
  • Documented why ncmDecrypt.detectAudioFormat stays 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

Choose a tag to compare

@github-actions github-actions released this 12 Aug 11:04

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/.txt per 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.flac multi-extension classification; player URL encoding + stale-promise guards; concurrency clamp 1–10; filename control-char sanitization; dialog includes plain audio formats
  • Perf/cleanup: dead audioHash removed; execSync → async execFile (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

Choose a tag to compare

@github-actions github-actions released this 08 Aug 16:20

Full Changelog: v2.0.0...v2.0.1

v2.0.0

Choose a tag to compare

@github-actions github-actions released this 08 Aug 14:23

Full Changelog: v1.4.1...v2.0.0

v1.4.1

Choose a tag to compare

@github-actions github-actions released this 05 Aug 19:02

Full Changelog: v1.4.0...v1.4.1

v1.4.0

Choose a tag to compare

@github-actions github-actions released this 05 Aug 17:26

Full Changelog: v1.3.3...v1.4.0

v1.3.3

Choose a tag to compare

@github-actions github-actions released this 04 Aug 14:08

Full Changelog: v1.3.2...v1.3.3

v1.3.2

Choose a tag to compare

@github-actions github-actions released this 17 Jul 02:42

Full Changelog: v1.3.1...v1.3.2

v1.3.1

Choose a tag to compare

@github-actions github-actions released this 16 Jul 11:32

Full Changelog: v1.3.0...v1.3.1

v1.3.0

Choose a tag to compare

@github-actions github-actions released this 16 Jul 10:08

Full Changelog: v1.2.0...v1.3.0

Full Changelog: v1.2.0...v1.3.0