diff --git a/docs/superpowers/specs/2026-07-31-public-ui-foundation-design.md b/docs/superpowers/specs/2026-07-31-public-ui-foundation-design.md index d9861d7..a3e4641 100644 --- a/docs/superpowers/specs/2026-07-31-public-ui-foundation-design.md +++ b/docs/superpowers/specs/2026-07-31-public-ui-foundation-design.md @@ -14,7 +14,7 @@ - 新增统一通知入口,首批迁移 MyBatis 生成器和 Git 同步。 - 统一 API 文档、Scanner、MyBatis SQL 导出的历史文件操作。 -- 修正 SQL 导出状态栏的无效停止按钮。 +- 核对任务取消能力,只为具有真实协作式取消协议的任务显示停止按钮。 - 加强 `ExportHistoryPane`、`EmptyStatePane`、`OperationStatusPane` 的键盘、焦点和屏幕阅读器语义。 - 为 `ScanProgress`、`SqlExportProgress` 增加输入约束和稳定的展示转换。 - 增加单元测试、组件测试和架构约束测试。 @@ -92,7 +92,7 @@ API 文档、Scanner、MyBatis SQL 导出删除各自的 `openFile`、`openWithN DTO 只表达领域进度。窗口通过小型纯函数把 DTO 转换为 `OperationSnapshot` 所需的 message 和 fraction,转换函数独立测试。 -Scanner 已明确不可取消,保持不显示停止按钮。MyBatis SQL 导出的用例没有中断协议,本轮把 `OperationStatusPane` 的 `cancellable` 显式设为 `false`。不增加表面上可点击、实际上不能停止数据库或文件操作的按钮。 +Scanner 没有中断协议,保持不显示停止按钮。MyBatis SQL 导出已经通过 `ExportCallback.isCancelled()` 在项目边界读取 `OperationContext.isCancellationRequested()`,属于真实的协作式取消,因此保留停止按钮。测试必须证明取消请求能传递到回调,且界面只在运行阶段显示停止按钮。 ### 4. 公共组件无障碍语义