Skip to content

v0.3.2 · 稳定性与无障碍

Choose a tag to compare

@BUGJI BUGJI released this 29 Sep 06:26
· 22 commits to main since this release

稳定性与无障碍版本:修复撤销栈与保存竞态,补齐设置弹窗与控件的无障碍语义,并把 SettingsModal / Timeline 拆分为独立模块与子组件;同时优化音频加载校验,打开工程更快、更安静。

撤销 / 工程读写

  • 撤销快照补上「BPM 锁定」状态,锁定 / 解锁现在能正确撤销与重做
  • 删除被锁定轨道、粘贴全部冲突等空操作不再留下「幽灵」撤销项;重命名 / 换色 / 锁定 / 隐藏同值、拖动到原拍位也不再记录
  • 保存改为先序列化再写盘,写盘期间的新编辑不再被误判为「已保存」
  • 打开工程时等待音频分析完成且不自动改写 BPM / 打点,避免污染撤销栈并误标为已修改
  • 音频分析加入请求序号:旧音频的慢结果不会覆盖新音频;分析线程报错会失败挂起的请求并重建,不再永久等待
  • 非自由输入下禁止在拍位 0 创建 / 拖动 BPM 点(此前存盘后会静默丢失)

音频加载与校验

  • 打开工程时在同一次文件读取里顺带计算音频 MD5,去掉第二次整文件读取与一次 IPC 往返,大文件打开更快
  • 打开工程不再弹出「✔ 工程名」顶部提示;音频 MD5 一致时完全静默,仅不一致时由侧栏横幅提示重新链接
  • 手动选择 / 重新链接音频时静默采用新文件与记录的 MD5,不弹出冲突提示

设置与无障碍

  • 设置弹窗补齐对话框语义(role="dialog" / aria-modal)、打开聚焦、关闭归位、Tab 焦点陷阱与 Esc 关闭
  • 设置弹窗打开时挂起全局快捷键;纯图标按钮补充 aria-label,开关补充 aria-pressed;Toast 增加实时区域
  • 修复分析面板「点击外部关闭」因 pointer-events:none 永不触发的问题,改为 Esc 关闭;补齐英文界面缺失文案

内部重构(无界面行为变化)

  • SettingsModal.vue 4011 → 843 行;Timeline.vue 2617 → 726 行,抽出渲染 / 几何 / 画布生命周期与子组件
  • 测试文件 8 → 11、用例 69 → 84

English summary

Stability and accessibility release. Fixes undo-stack and save race conditions, adds proper dialog/focus/ARIA semantics across the settings modal and controls, and splits the two largest components (SettingsModal, Timeline) into focused modules with unit tests. Audio loading is also faster and quieter: the MD5 is computed during the same file read (no second full read), opening a project no longer shows a toast, and a matching hash stays completely silent while only a real mismatch surfaces a relink banner.