Repository navigation
v0.3.2 · 稳定性与无障碍
稳定性与无障碍版本:修复撤销栈与保存竞态,补齐设置弹窗与控件的无障碍语义,并把 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.vue4011 → 843 行;Timeline.vue2617 → 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.