From 0c46f5fdef34ac05ddf73c631c1ab4c4f0d80a79 Mon Sep 17 00:00:00 2001 From: xuans Date: Mon, 28 Sep 2026 12:49:31 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8C=E6=AD=A5=E6=95=B4=E6=94=B9=E6=B8=85?= =?UTF-8?q?=E5=8D=95=E6=9C=80=E6=96=B0=E8=BF=9B=E5=BA=A6=E5=B9=B6=E5=A6=82?= =?UTF-8?q?=E5=AE=9E=E8=AE=B0=E5=BD=95=E6=B5=8B=E8=AF=95=E9=98=BB=E5=A1=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/Scert整改任务执行清单.md | 14 +++++++++---- doc/Scert整改合并优化清单.md | 31 ++++++++++++++++++++++++++-- 2 files changed, 39 insertions(+), 6 deletions(-) diff --git a/doc/Scert整改任务执行清单.md b/doc/Scert整改任务执行清单.md index d5ebb5c..75b65c5 100644 --- a/doc/Scert整改任务执行清单.md +++ b/doc/Scert整改任务执行清单.md @@ -1,15 +1,21 @@ # Scert 整改任务执行清单 -## 2026 年 9 月 28 日:项目成员变更事务审计(进行中) +## 2026 年 9 月 28 日:项目成员变更事务审计(12:48 同步,验证存在阻塞) 上一批成员基础及最终验证已提交并推送为 `b3909d8`。本批继续 P0-07/P1-09,不把仓储能力当作完整项目管理界面或业务隔离。 - [x] 确认需求:成功授予/撤销必须记录项目、实际操作者、目标账户、角色、动作及时间;权限变更与审计同事务提交,审计失败必须回滚权限变更。 -- [~] 将既有授权谓词、成员写入和成功审计接入同一事务;保留实时账户与项目管理员校验,不依赖会话中的缓存角色。 -- [ ] 补充正常变更、重复与拒绝操作、审计故障回滚、自我撤权、历史保留及并发重复操作回归;验证 SQLite 和 MySQL 5.7/8.0。 -- [ ] 完成后端回归、竞态与静态检查,同步本批证据并提交推送。 +- [x] 已将既有授权谓词、成员写入和成功审计接入同一事务;保留实时账户与项目管理员校验,不依赖会话中的缓存角色。审计失败或未实际写入时回滚,MySQL 成员表和审计表不是 InnoDB 时拒绝变更,不自动迁移历史表引擎。源码仍未提交,实现完成待复审。 +- [x] 已补充正常变更、重复与拒绝操作、审计故障回滚、自我撤权、历史保留、取消上下文、存储边界及并发重复操作用例;最新仓储专项 41 个叶子通过、0 失败、3 项条件跳过。 +- [x] 最新三次竞态累计 123 个叶子通过、0 失败、9 项条件跳过;随后静态检查和模块校验成功,顺序进程退出码为 0。 +- [!] MySQL 5.7 最新专项 176 个叶子通过、1 个失败、0 跳过(包含 SQLite 用例);`TestHistoryScopeMySQLMigrationRetry/version` 报索引 `idx_audit_project_history` 的 Error 1280,根因未确认。顺序进程退出码为 1,MySQL 8.0 最新验证未启动,不能以早期验证代替。 +- [!] 本批中间版本完整后端 1630 个叶子通过、1 个失败、52 项条件跳过;`TestDesktopConcurrentTransitionAndIdempotentClose` 关闭后 SQLite 文件仍占用。最新独立重复 10 次中 8 次通过、2 次失败,退出码为 1,后续构建及最新完整回归未执行。不得跳过此测试或用上一批 1623 个通过替代当前证据。 +- [x] 将本批实现、真实测试结果和两个阻塞同步至总清单与本执行清单;未将任何总项提升为完成或复审通过。 +- [ ] 修复并复核两个阻塞,完成最后修复后的双版本实库及完整后端验证,再统一同步其他专项文档、提交并推送本批源码。 - [ ] 成员管理 Web/API、分页、失败请求审计、资源授权入口及任务重判继续后续接入;当前不新增对外路由。 +证据目录:`artifacts/project-member-audit-20260928/`。本次核对 `targeted-verified.jsonl`、`race-verified.jsonl`、`mysql57-verified.jsonl`、`service-close-repeat.jsonl` 及中间版本的 `backend.jsonl`;进程退出码已取回。不存在最新 `mysql80-verified.jsonl` 或 `backend-verified.jsonl` 的通过证据。P0-05/P0-06/P0-07/P1-09 保持 `[~]`,全部 44 项及其验收标准不变;生产部署验收未通过。 + ## 2026 年 9 月 28 日:项目成员与实时判权(已完成子项待复审) 修改前检查点 `4f1900d` 已推送。需求沿用 P0-06/P0-07:项目成员独立于用户分组,支持六类项目角色;普通管理员不自动获得所有项目权限;普通用户不能读取完整私钥。系统级权限仍由有效超级管理员承担。 diff --git a/doc/Scert整改合并优化清单.md b/doc/Scert整改合并优化清单.md index 15ba235..6b951fd 100644 --- a/doc/Scert整改合并优化清单.md +++ b/doc/Scert整改合并优化清单.md @@ -1,6 +1,33 @@ # Scert 整改、合并与优化清单 -## 当前进度(2026 年 9 月 28 日,项目成员与实时判权批次) +## 当前进度(2026 年 9 月 28 日 12:48,项目成员变更事务审计批次) + +本节与《Scert整改任务执行清单.md》同步。上一批成员基础已提交并推送为 `b3909d8`,本批需求检查点为 `9dd2539`;本批事务审计源码仍在工作区,尚未提交,不能视为已发布。以下为本次读取测试日志并取回进程退出码后的状态,不沿用上一批完整回归结论。 + +### 原始 44 项状态汇总 + +| 状态 | 数量 | 含义 | +|---|---:|---| +| `[✓]` 复审通过 | 0 | 尚无整项达到最终复审标准 | +| `[x]` 已完成,等待复审 | 3 | P0-01、P0-02、P0-03 | +| `[~]` 进行中 | 27 | 局部实现或局部验证,不等于整项完成 | +| `[!]` 暂缓或存在阻塞 | 3 | P0-11、P2-08、P2-09 | +| `[ ]` 未开始 | 11 | P1-10 及 P3 的 10 项 | + +不按测试通过数量折算整体完成百分比;生产部署验收仍未通过。下方各项原始需求、验收标准及总项状态不缩减。 + +### 本批任务与证据 + +- [x] 已实现成功授予/撤销项目角色与审计同事务提交;审计失败或未实际写入时回滚成员变更,保留实时操作者判权。MySQL 检查成员表与审计表均为 InnoDB,不自动修改历史库引擎。实现完成待复审,不代表全库兼容性验证通过。 +- [x] 已补充正常变更、拒绝操作、审计故障回滚、自我撤权、历史保留、取消上下文、存储边界及并发重复变更测试。最新仓储专项 `targeted-verified.jsonl`:41 个叶子通过、0 失败、3 项条件跳过;跳过项不计通过。 +- [x] 最新三次竞态专项 `race-verified.jsonl`:累计 123 个叶子通过、0 失败、9 项条件跳过;随后 `go vet ./...`、`go mod verify` 成功,顺序进程退出码为 0。 +- [!] MySQL 5.7 最新专项 `mysql57-verified.jsonl`:176 个叶子通过、1 个失败、0 跳过(包含 SQLite 用例)。失败为 `TestHistoryScopeMySQLMigrationRetry/version`,错误为索引 `idx_audit_project_history` 的 Error 1280;进程退出码为 1,后续 MySQL 8.0 最新验证未启动。根因未确认,不能使用早期日志代替最后修复后的双版本验证。 +- [!] 本批中间版本完整后端 `backend.jsonl`:1630 个叶子通过、1 个失败、52 项条件跳过。失败为服务关闭后 SQLite 文件仍被占用;最新独立重复日志 `service-close-repeat.jsonl` 共 10 次,8 次通过、2 次失败,退出码为 1。该前置步骤失败后未执行最新完整回归,不能声称当前源码完整后端已通过;测试名称含 Desktop 不构成跳过公共运行时资源释放问题的理由。 +- [ ] 成员管理 Web/API、分页、失败请求审计、全部业务入口资源判权和排队任务重新判权尚未接入;PostgreSQL 当前实库、Linux 原生验证及生产门禁仍未完成。 + +本批证据目录为 `artifacts/project-member-audit-20260928/`,保留初始失败和中间日志。P0-05、P0-06、P0-07、P1-09 总项继续保持 `[~]`。本次只同步文档,不修改源码、不清库、不执行远端部署;以下旧批次的通过数字仅作历史证据。 + +### 历史进度:项目成员与实时判权批次 - [x] 第 14 号迁移及六类项目角色已实现;授予/撤销在单条数据库语句内核对操作者,判权每次读取实际账户状态和当前成员关系。用户分组、普通管理员身份及默认项目均不隐式授予权限。 - [x] 两项目、多角色、撤权、账户停用和降权、普通账户私钥限制、成员引用及 SQLite 替换边界通过专项回归;MySQL 双版本与 Windows 独立程序升级/成员备份恢复通过。详细数字和证据见支持矩阵第二十一节。 @@ -32,7 +59,7 @@ P0-05、P0-06、P0-07 总项均保持 `[~]`;本批字段与范围校验不等 > 明确排除:Wails 桌面版 > 整改日期:2026 年 9 月 27 日 -> 进度同步:2026 年 9 月 27 日。任务状态与《Scert整改任务执行清单.md》及四份分级任务规格保持一致;本文件的需求和验收标准不因状态更新而缩减。详细变更、验证命令、证据和剩余缺口见执行清单与对应专项记录,`[~]` 仅表示已有实现或正在整改,不表示整项完成。 +> 进度同步:2026 年 9 月 28 日 12:48。最新批次事实与阻塞见本文件顶部及《Scert整改任务执行清单.md》首节;历史批次记录不代表当前验证结果。本文件的需求和验收标准不因状态更新而缩减,四份分级任务规格中的总项状态不变;`[~]` 仅表示已有实现或正在整改,不表示整项完成。 > 当前专项:P0-05 已修复 SQLite 历史模式 1~3 存在任务数据时迁移 4 失败的问题,并验证模式 1~9 的带数据升级、依赖对象保留及失败回滚重试。源码 `fd2810b` 的 SQLite 专项通过 71 个叶子用例,27 个升级/恢复用例连续 3 次竞态检测通过;干净提交构建的独立 Windows 程序完成历史模式备份、升级及恢复后再升级,证据见支持矩阵第十七节。此前 WAL 恢复证据保留在第十六节。旧发行包真实数据迁移、完整发行包安装、真实服务重启、Linux 原生执行、取消边界及其余数据库和生产门禁仍待完成;P0-05 保持 `[~]`,全部 44 项范围不变。