diff --git a/docs/PLAN.md b/docs/PLAN.md index 4bfe3aa..4e4c669 100644 --- a/docs/PLAN.md +++ b/docs/PLAN.md @@ -16,6 +16,7 @@ - 网络共享明确不支持;命令行参数边界;macOS 无参启动行为写入文档(§2.3、§4.1、附录) - 补充:导出转义规则、卡片列表虚拟化、模态窗口 FlowDirection、`Resources` 类名使用规则、CI osx-x64 运行器(§5、§7、§8) - 依赖:Avalonia 11.3.6 → 11.3.22,Semi.Avalonia 11.2.1.10 → 11.3.22(§7) +- 实现回补:搜索括号嵌套上限 64 层(§6.2);初始化中途锁冲突进锁冲突页、数据库文件缺失不静默新建(§4.4) - 里程碑:标注 M0–M4 已完成,新增 **M4R(v1.9 回补)**(§9) ## 1. 项目概述 @@ -151,10 +152,11 @@ card_tags: (card_id, tag_id) 复合主键,双向 ON DELETE CASCADE | 参数错误页 | 参数不合法(见 §4.1) | 参数错误提示 + 正确用法说明(`ykanban `) | | 目录不存在页 | 参数路径不存在或不是目录 | 提示 | | 未初始化页 | 路径存在但无 `.ykanban` | 提示 + 初始化按钮(唯一带操作的错误页) | -| 锁冲突页 | 锁文件被占用 | 仅提示,无任何操作 | -| 工作区打开失败页 | schema 版本高于程序支持版本;数据库无法打开/损坏;IO 或权限错误(含初始化失败) | 按异常类型显示本地化提示 + 只读可复制的英文异常详情;无其他操作 | +| 锁冲突页 | 锁文件被占用(含点击初始化时锁已被其他实例抢先持有) | 仅提示,无任何操作 | +| 工作区打开失败页 | schema 版本高于程序支持版本;`.ykanban` 存在但 `ykanban.db` 缺失;数据库无法打开/损坏;IO 或权限错误(含初始化失败) | 按异常类型显示本地化提示 + 只读可复制的英文异常详情;无其他操作 | -- 未初始化页点击初始化失败 → 切换至工作区打开失败页 +- 未初始化页点击初始化失败 → 切换至工作区打开失败页;例外:失败原因为锁冲突(其他实例抢先持有锁)→ 切换至锁冲突页 +- `.ykanban` 存在但 `ykanban.db` 缺失 → 工作区打开失败页,提示从备份恢复或删除 `.ykanban` 后重新初始化;**绝不静默新建空库** - 未被识别的异常类型归入工作区打开失败页的通用提示 正常视图 = 顶部显示区域 + TabControl(见 §5)。