|
11289
|
3
|
5
|
1
|
22
|
0
|
0
|
refs/heads/app
|
0
|
{"Commits":[{"Sha1":"741b54895 {"Commits":[{"Sha1":"741b54895bcb13ed27e230b19b801054a1c1e689","Message":"Merge pull request '0616合并' (#84) from app-260616 into app\n\nReviewed-on: https://gitea.g-hi.com/vodtest/app/pulls/84\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-06-11T09:34:55+08:00"},{"Sha1":"374ba7964d6465e19f6597d0ebae821f1bd9542f","Message":"包厢续费小程序码\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-06-10T18:22:42+08:00"},{"Sha1":"fbf39c1808c9d230b929c3e80aadf2d78042a9f2","Message":"订单退款api\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-06-10T16:20:55+08:00"},{"Sha1":"e6fd8b8b7e1699eeac1d338194fc5d8217f67ea7","Message":"预订管理\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-06-10T11:19:22+08:00"},{"Sha1":"422c54fb5bc9fc67619ac2b5c777d7be5b60df9e","Message":"预订列表\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-06-09T16:50:37+08:00"}],"HeadCommit":{"Sha1":"741b54895bcb13ed27e230b19b801054a1c1e689","Message":"Merge pull request '0616合并' (#84) from app-260616 into app\n\nReviewed-on: https://gitea.g-hi.com/vodtest/app/pulls/84\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-06-11T09:34:55+08:00"},"CompareURL":"vodtest/app/compare/518d00cf2a78cb28e24dab21ba3d2f2827974f81...741b54895bcb13ed27e230b19b801054a1c1e689","Len":18}...
|
1781141697
|
Edit
Delete
|
|
11290
|
4
|
5
|
1
|
22
|
0
|
0
|
refs/heads/app
|
0
|
{"Commits":[{"Sha1":"741b54895 {"Commits":[{"Sha1":"741b54895bcb13ed27e230b19b801054a1c1e689","Message":"Merge pull request '0616合并' (#84) from app-260616 into app\n\nReviewed-on: https://gitea.g-hi.com/vodtest/app/pulls/84\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-06-11T09:34:55+08:00"},{"Sha1":"374ba7964d6465e19f6597d0ebae821f1bd9542f","Message":"包厢续费小程序码\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-06-10T18:22:42+08:00"},{"Sha1":"fbf39c1808c9d230b929c3e80aadf2d78042a9f2","Message":"订单退款api\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-06-10T16:20:55+08:00"},{"Sha1":"e6fd8b8b7e1699eeac1d338194fc5d8217f67ea7","Message":"预订管理\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-06-10T11:19:22+08:00"},{"Sha1":"422c54fb5bc9fc67619ac2b5c777d7be5b60df9e","Message":"预订列表\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-06-09T16:50:37+08:00"}],"HeadCommit":{"Sha1":"741b54895bcb13ed27e230b19b801054a1c1e689","Message":"Merge pull request '0616合并' (#84) from app-260616 into app\n\nReviewed-on: https://gitea.g-hi.com/vodtest/app/pulls/84\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-06-11T09:34:55+08:00"},"CompareURL":"vodtest/app/compare/518d00cf2a78cb28e24dab21ba3d2f2827974f81...741b54895bcb13ed27e230b19b801054a1c1e689","Len":18}...
|
1781141697
|
Edit
Delete
|
|
11291
|
7
|
5
|
1
|
22
|
0
|
0
|
refs/heads/app
|
0
|
{"Commits":[{"Sha1":"741b54895 {"Commits":[{"Sha1":"741b54895bcb13ed27e230b19b801054a1c1e689","Message":"Merge pull request '0616合并' (#84) from app-260616 into app\n\nReviewed-on: https://gitea.g-hi.com/vodtest/app/pulls/84\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-06-11T09:34:55+08:00"},{"Sha1":"374ba7964d6465e19f6597d0ebae821f1bd9542f","Message":"包厢续费小程序码\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-06-10T18:22:42+08:00"},{"Sha1":"fbf39c1808c9d230b929c3e80aadf2d78042a9f2","Message":"订单退款api\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-06-10T16:20:55+08:00"},{"Sha1":"e6fd8b8b7e1699eeac1d338194fc5d8217f67ea7","Message":"预订管理\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-06-10T11:19:22+08:00"},{"Sha1":"422c54fb5bc9fc67619ac2b5c777d7be5b60df9e","Message":"预订列表\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-06-09T16:50:37+08:00"}],"HeadCommit":{"Sha1":"741b54895bcb13ed27e230b19b801054a1c1e689","Message":"Merge pull request '0616合并' (#84) from app-260616 into app\n\nReviewed-on: https://gitea.g-hi.com/vodtest/app/pulls/84\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-06-11T09:34:55+08:00"},"CompareURL":"vodtest/app/compare/518d00cf2a78cb28e24dab21ba3d2f2827974f81...741b54895bcb13ed27e230b19b801054a1c1e689","Len":18}...
|
1781141697
|
Edit
Delete
|
|
11292
|
8
|
5
|
1
|
22
|
0
|
0
|
refs/heads/app
|
0
|
{"Commits":[{"Sha1":"741b54895 {"Commits":[{"Sha1":"741b54895bcb13ed27e230b19b801054a1c1e689","Message":"Merge pull request '0616合并' (#84) from app-260616 into app\n\nReviewed-on: https://gitea.g-hi.com/vodtest/app/pulls/84\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-06-11T09:34:55+08:00"},{"Sha1":"374ba7964d6465e19f6597d0ebae821f1bd9542f","Message":"包厢续费小程序码\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-06-10T18:22:42+08:00"},{"Sha1":"fbf39c1808c9d230b929c3e80aadf2d78042a9f2","Message":"订单退款api\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-06-10T16:20:55+08:00"},{"Sha1":"e6fd8b8b7e1699eeac1d338194fc5d8217f67ea7","Message":"预订管理\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-06-10T11:19:22+08:00"},{"Sha1":"422c54fb5bc9fc67619ac2b5c777d7be5b60df9e","Message":"预订列表\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-06-09T16:50:37+08:00"}],"HeadCommit":{"Sha1":"741b54895bcb13ed27e230b19b801054a1c1e689","Message":"Merge pull request '0616合并' (#84) from app-260616 into app\n\nReviewed-on: https://gitea.g-hi.com/vodtest/app/pulls/84\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-06-11T09:34:55+08:00"},"CompareURL":"vodtest/app/compare/518d00cf2a78cb28e24dab21ba3d2f2827974f81...741b54895bcb13ed27e230b19b801054a1c1e689","Len":18}...
|
1781141697
|
Edit
Delete
|
|
11293
|
10
|
5
|
1
|
22
|
0
|
0
|
refs/heads/app
|
0
|
{"Commits":[{"Sha1":"741b54895 {"Commits":[{"Sha1":"741b54895bcb13ed27e230b19b801054a1c1e689","Message":"Merge pull request '0616合并' (#84) from app-260616 into app\n\nReviewed-on: https://gitea.g-hi.com/vodtest/app/pulls/84\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-06-11T09:34:55+08:00"},{"Sha1":"374ba7964d6465e19f6597d0ebae821f1bd9542f","Message":"包厢续费小程序码\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-06-10T18:22:42+08:00"},{"Sha1":"fbf39c1808c9d230b929c3e80aadf2d78042a9f2","Message":"订单退款api\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-06-10T16:20:55+08:00"},{"Sha1":"e6fd8b8b7e1699eeac1d338194fc5d8217f67ea7","Message":"预订管理\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-06-10T11:19:22+08:00"},{"Sha1":"422c54fb5bc9fc67619ac2b5c777d7be5b60df9e","Message":"预订列表\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-06-09T16:50:37+08:00"}],"HeadCommit":{"Sha1":"741b54895bcb13ed27e230b19b801054a1c1e689","Message":"Merge pull request '0616合并' (#84) from app-260616 into app\n\nReviewed-on: https://gitea.g-hi.com/vodtest/app/pulls/84\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-06-11T09:34:55+08:00"},"CompareURL":"vodtest/app/compare/518d00cf2a78cb28e24dab21ba3d2f2827974f81...741b54895bcb13ed27e230b19b801054a1c1e689","Len":18}...
|
1781141697
|
Edit
Delete
|
|
11294
|
11
|
5
|
1
|
22
|
0
|
0
|
refs/heads/app
|
0
|
{"Commits":[{"Sha1":"741b54895 {"Commits":[{"Sha1":"741b54895bcb13ed27e230b19b801054a1c1e689","Message":"Merge pull request '0616合并' (#84) from app-260616 into app\n\nReviewed-on: https://gitea.g-hi.com/vodtest/app/pulls/84\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-06-11T09:34:55+08:00"},{"Sha1":"374ba7964d6465e19f6597d0ebae821f1bd9542f","Message":"包厢续费小程序码\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-06-10T18:22:42+08:00"},{"Sha1":"fbf39c1808c9d230b929c3e80aadf2d78042a9f2","Message":"订单退款api\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-06-10T16:20:55+08:00"},{"Sha1":"e6fd8b8b7e1699eeac1d338194fc5d8217f67ea7","Message":"预订管理\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-06-10T11:19:22+08:00"},{"Sha1":"422c54fb5bc9fc67619ac2b5c777d7be5b60df9e","Message":"预订列表\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-06-09T16:50:37+08:00"}],"HeadCommit":{"Sha1":"741b54895bcb13ed27e230b19b801054a1c1e689","Message":"Merge pull request '0616合并' (#84) from app-260616 into app\n\nReviewed-on: https://gitea.g-hi.com/vodtest/app/pulls/84\n","AuthorEmail":"121158035@qq.com","AuthorName":"zhangjunnan","CommitterEmail":"121158035@qq.com","CommitterName":"zhangjunnan","Timestamp":"2026-06-11T09:34:55+08:00"},"CompareURL":"vodtest/app/compare/518d00cf2a78cb28e24dab21ba3d2f2827974f81...741b54895bcb13ed27e230b19b801054a1c1e689","Len":18}...
|
1781141697
|
Edit
Delete
|
|
37333
|
5
|
5
|
5
|
129
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"74259515b {"Commits":[{"Sha1":"74259515bd7c0e6e9b609efe2cbeebba0030bb85","Message":"docs(02): CHG-042 第一批已签署并应用——商 3、财 5 类登记进 entities.json(控制面 main eb1c1073,183 个实体)\n\n认领清单 §2.2 把这 8 类标为已登记,余 41 类;§2.3 hosted_by 改计数;§3 第 2 条记应用结果与「每批都要带 AppManifest」。\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-10-12T15:40:51-07:00"}],"HeadCommit":{"Sha1":"74259515bd7c0e6e9b609efe2cbeebba0030bb85","Message":"docs(02): CHG-042 第一批已签署并应用——商 3、财 5 类登记进 entities.json(控制面 main eb1c1073,183 个实体)\n\n认领清单 §2.2 把这 8 类标为已登记,余 41 类;§2.3 hosted_by 改计数;§3 第 2 条记应用结果与「每批都要带 AppManifest」。\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-10-12T15:40:51-07:00"},"CompareURL":"luoanwu/eios-02-business-platform/compare/33e79fd4c63288f57810300a9e280501134c54d4...74259515bd7c0e6e9b609efe2cbeebba0030bb85","Len":1}...
|
1791844855
|
Edit
Delete
|
|
26936
|
5
|
5
|
5
|
54
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"742f865d0 {"Commits":[{"Sha1":"742f865d0672599ba182b16012b7671b114f273f","Message":"chore(os-product): OS 两级验收在 clean commit 上重跑并回灌动态区\n\n上一轮 OS 两级因上游检出未显式提供而 SKIPPED,动态区据实标为 STALE。\n本轮显式给 DIGITAL_EMPLOYEE_OS_ROOT 后重跑,两级均绿:\n\n- check:os-product(静态兼容):juhai.baseframework@0.1.0 / protocol 1.3.0\n / 2 migrations / 1 acceptance suite,0 违规\n- check:os-product:runtime(双宿主真实验收):NestJS + Fastify / 8 cases / 0 failures\n (DB base_framework_os_product_a9bf413 + Redis db13,Node 22.23.2)\n\n证据绑定:本仓 clean @ a9bf413;上游 OS 本机检出源码 clean @ 89b2ade。\n\n关于上游 clean 的判定依据(不接受「报告说 clean 就是 clean」):\n上游工作树 git status 有 24 个变更,但已逐条核实全部匹配 reports/*.latest.json;\nreport-provenance 的 worktreeDirty 按文档化语义刻意排除该模式(报告是运行产物,\n前一个门禁刷新它们不应被后续门禁误判为「被验收源码 dirty」)。\n用同一排除规则跑 `git status --porcelain=v1 -- ':(exclude)reports/*.latest.json'`\n结果为空——源码确实 clean,dirty=false 不是假绿。\n\npnpm check exit 0;check:docs-truth 的动态区 SHA 断言仍绿。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-08-31T17:04:22-07:00"}],"HeadCommit":{"Sha1":"742f865d0672599ba182b16012b7671b114f273f","Message":"chore(os-product): OS 两级验收在 clean commit 上重跑并回灌动态区\n\n上一轮 OS 两级因上游检出未显式提供而 SKIPPED,动态区据实标为 STALE。\n本轮显式给 DIGITAL_EMPLOYEE_OS_ROOT 后重跑,两级均绿:\n\n- check:os-product(静态兼容):juhai.baseframework@0.1.0 / protocol 1.3.0\n / 2 migrations / 1 acceptance suite,0 违规\n- check:os-product:runtime(双宿主真实验收):NestJS + Fastify / 8 cases / 0 failures\n (DB base_framework_os_product_a9bf413 + Redis db13,Node 22.23.2)\n\n证据绑定:本仓 clean @ a9bf413;上游 OS 本机检出源码 clean @ 89b2ade。\n\n关于上游 clean 的判定依据(不接受「报告说 clean 就是 clean」):\n上游工作树 git status 有 24 个变更,但已逐条核实全部匹配 reports/*.latest.json;\nreport-provenance 的 worktreeDirty 按文档化语义刻意排除该模式(报告是运行产物,\n前一个门禁刷新它们不应被后续门禁误判为「被验收源码 dirty」)。\n用同一排除规则跑 `git status --porcelain=v1 -- ':(exclude)reports/*.latest.json'`\n结果为空——源码确实 clean,dirty=false 不是假绿。\n\npnpm check exit 0;check:docs-truth 的动态区 SHA 断言仍绿。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-08-31T17:04:22-07:00"},"CompareURL":"luoanwu/base-framework/compare/a9bf41341677134557538182b87a1339aa7b7616...742f865d0672599ba182b16012b7671b114f273f","Len":1}...
|
1788221065
|
Edit
Delete
|
|
5869
|
11
|
5
|
11
|
18
|
0
|
0
|
refs/heads/pc-260616
|
0
|
{"Commits":[{"Sha1":"742fff8ad {"Commits":[{"Sha1":"742fff8adfec41232760fbf36a98489035fd779e","Message":"需求-赠时报表\n","AuthorEmail":"1091045324@qq.com","AuthorName":"caihongyuchy","CommitterEmail":"1091045324@qq.com","CommitterName":"caihongyuchy","Timestamp":"2026-05-26T18:18:34+08:00"},{"Sha1":"de57cbcb137607b49b0758c28569d56baddfd547","Message":"需求-赠时报表\n","AuthorEmail":"1091045324@qq.com","AuthorName":"caihongyuchy","CommitterEmail":"1091045324@qq.com","CommitterName":"caihongyuchy","Timestamp":"2026-05-26T18:17:11+08:00"}],"HeadCommit":{"Sha1":"742fff8adfec41232760fbf36a98489035fd779e","Message":"需求-赠时报表\n","AuthorEmail":"1091045324@qq.com","AuthorName":"caihongyuchy","CommitterEmail":"1091045324@qq.com","CommitterName":"caihongyuchy","Timestamp":"2026-05-26T18:18:34+08:00"},"CompareURL":"vodtest/pc/compare/eb5b62a4727dd9dcc9fcdc3423dfd4455db87803...742fff8adfec41232760fbf36a98489035fd779e","Len":2}...
|
1779790745
|
Edit
Delete
|
|
5870
|
9
|
5
|
11
|
18
|
0
|
0
|
refs/heads/pc-260616
|
0
|
{"Commits":[{"Sha1":"742fff8ad {"Commits":[{"Sha1":"742fff8adfec41232760fbf36a98489035fd779e","Message":"需求-赠时报表\n","AuthorEmail":"1091045324@qq.com","AuthorName":"caihongyuchy","CommitterEmail":"1091045324@qq.com","CommitterName":"caihongyuchy","Timestamp":"2026-05-26T18:18:34+08:00"},{"Sha1":"de57cbcb137607b49b0758c28569d56baddfd547","Message":"需求-赠时报表\n","AuthorEmail":"1091045324@qq.com","AuthorName":"caihongyuchy","CommitterEmail":"1091045324@qq.com","CommitterName":"caihongyuchy","Timestamp":"2026-05-26T18:17:11+08:00"}],"HeadCommit":{"Sha1":"742fff8adfec41232760fbf36a98489035fd779e","Message":"需求-赠时报表\n","AuthorEmail":"1091045324@qq.com","AuthorName":"caihongyuchy","CommitterEmail":"1091045324@qq.com","CommitterName":"caihongyuchy","Timestamp":"2026-05-26T18:18:34+08:00"},"CompareURL":"vodtest/pc/compare/eb5b62a4727dd9dcc9fcdc3423dfd4455db87803...742fff8adfec41232760fbf36a98489035fd779e","Len":2}...
|
1779790745
|
Edit
Delete
|
|
5871
|
1
|
5
|
11
|
18
|
0
|
0
|
refs/heads/pc-260616
|
0
|
{"Commits":[{"Sha1":"742fff8ad {"Commits":[{"Sha1":"742fff8adfec41232760fbf36a98489035fd779e","Message":"需求-赠时报表\n","AuthorEmail":"1091045324@qq.com","AuthorName":"caihongyuchy","CommitterEmail":"1091045324@qq.com","CommitterName":"caihongyuchy","Timestamp":"2026-05-26T18:18:34+08:00"},{"Sha1":"de57cbcb137607b49b0758c28569d56baddfd547","Message":"需求-赠时报表\n","AuthorEmail":"1091045324@qq.com","AuthorName":"caihongyuchy","CommitterEmail":"1091045324@qq.com","CommitterName":"caihongyuchy","Timestamp":"2026-05-26T18:17:11+08:00"}],"HeadCommit":{"Sha1":"742fff8adfec41232760fbf36a98489035fd779e","Message":"需求-赠时报表\n","AuthorEmail":"1091045324@qq.com","AuthorName":"caihongyuchy","CommitterEmail":"1091045324@qq.com","CommitterName":"caihongyuchy","Timestamp":"2026-05-26T18:18:34+08:00"},"CompareURL":"vodtest/pc/compare/eb5b62a4727dd9dcc9fcdc3423dfd4455db87803...742fff8adfec41232760fbf36a98489035fd779e","Len":2}...
|
1779790745
|
Edit
Delete
|
|
5872
|
3
|
5
|
11
|
18
|
0
|
0
|
refs/heads/pc-260616
|
0
|
{"Commits":[{"Sha1":"742fff8ad {"Commits":[{"Sha1":"742fff8adfec41232760fbf36a98489035fd779e","Message":"需求-赠时报表\n","AuthorEmail":"1091045324@qq.com","AuthorName":"caihongyuchy","CommitterEmail":"1091045324@qq.com","CommitterName":"caihongyuchy","Timestamp":"2026-05-26T18:18:34+08:00"},{"Sha1":"de57cbcb137607b49b0758c28569d56baddfd547","Message":"需求-赠时报表\n","AuthorEmail":"1091045324@qq.com","AuthorName":"caihongyuchy","CommitterEmail":"1091045324@qq.com","CommitterName":"caihongyuchy","Timestamp":"2026-05-26T18:17:11+08:00"}],"HeadCommit":{"Sha1":"742fff8adfec41232760fbf36a98489035fd779e","Message":"需求-赠时报表\n","AuthorEmail":"1091045324@qq.com","AuthorName":"caihongyuchy","CommitterEmail":"1091045324@qq.com","CommitterName":"caihongyuchy","Timestamp":"2026-05-26T18:18:34+08:00"},"CompareURL":"vodtest/pc/compare/eb5b62a4727dd9dcc9fcdc3423dfd4455db87803...742fff8adfec41232760fbf36a98489035fd779e","Len":2}...
|
1779790745
|
Edit
Delete
|
|
5873
|
4
|
5
|
11
|
18
|
0
|
0
|
refs/heads/pc-260616
|
0
|
{"Commits":[{"Sha1":"742fff8ad {"Commits":[{"Sha1":"742fff8adfec41232760fbf36a98489035fd779e","Message":"需求-赠时报表\n","AuthorEmail":"1091045324@qq.com","AuthorName":"caihongyuchy","CommitterEmail":"1091045324@qq.com","CommitterName":"caihongyuchy","Timestamp":"2026-05-26T18:18:34+08:00"},{"Sha1":"de57cbcb137607b49b0758c28569d56baddfd547","Message":"需求-赠时报表\n","AuthorEmail":"1091045324@qq.com","AuthorName":"caihongyuchy","CommitterEmail":"1091045324@qq.com","CommitterName":"caihongyuchy","Timestamp":"2026-05-26T18:17:11+08:00"}],"HeadCommit":{"Sha1":"742fff8adfec41232760fbf36a98489035fd779e","Message":"需求-赠时报表\n","AuthorEmail":"1091045324@qq.com","AuthorName":"caihongyuchy","CommitterEmail":"1091045324@qq.com","CommitterName":"caihongyuchy","Timestamp":"2026-05-26T18:18:34+08:00"},"CompareURL":"vodtest/pc/compare/eb5b62a4727dd9dcc9fcdc3423dfd4455db87803...742fff8adfec41232760fbf36a98489035fd779e","Len":2}...
|
1779790745
|
Edit
Delete
|
|
5874
|
7
|
5
|
11
|
18
|
0
|
0
|
refs/heads/pc-260616
|
0
|
{"Commits":[{"Sha1":"742fff8ad {"Commits":[{"Sha1":"742fff8adfec41232760fbf36a98489035fd779e","Message":"需求-赠时报表\n","AuthorEmail":"1091045324@qq.com","AuthorName":"caihongyuchy","CommitterEmail":"1091045324@qq.com","CommitterName":"caihongyuchy","Timestamp":"2026-05-26T18:18:34+08:00"},{"Sha1":"de57cbcb137607b49b0758c28569d56baddfd547","Message":"需求-赠时报表\n","AuthorEmail":"1091045324@qq.com","AuthorName":"caihongyuchy","CommitterEmail":"1091045324@qq.com","CommitterName":"caihongyuchy","Timestamp":"2026-05-26T18:17:11+08:00"}],"HeadCommit":{"Sha1":"742fff8adfec41232760fbf36a98489035fd779e","Message":"需求-赠时报表\n","AuthorEmail":"1091045324@qq.com","AuthorName":"caihongyuchy","CommitterEmail":"1091045324@qq.com","CommitterName":"caihongyuchy","Timestamp":"2026-05-26T18:18:34+08:00"},"CompareURL":"vodtest/pc/compare/eb5b62a4727dd9dcc9fcdc3423dfd4455db87803...742fff8adfec41232760fbf36a98489035fd779e","Len":2}...
|
1779790745
|
Edit
Delete
|
|
5875
|
8
|
5
|
11
|
18
|
0
|
0
|
refs/heads/pc-260616
|
0
|
{"Commits":[{"Sha1":"742fff8ad {"Commits":[{"Sha1":"742fff8adfec41232760fbf36a98489035fd779e","Message":"需求-赠时报表\n","AuthorEmail":"1091045324@qq.com","AuthorName":"caihongyuchy","CommitterEmail":"1091045324@qq.com","CommitterName":"caihongyuchy","Timestamp":"2026-05-26T18:18:34+08:00"},{"Sha1":"de57cbcb137607b49b0758c28569d56baddfd547","Message":"需求-赠时报表\n","AuthorEmail":"1091045324@qq.com","AuthorName":"caihongyuchy","CommitterEmail":"1091045324@qq.com","CommitterName":"caihongyuchy","Timestamp":"2026-05-26T18:17:11+08:00"}],"HeadCommit":{"Sha1":"742fff8adfec41232760fbf36a98489035fd779e","Message":"需求-赠时报表\n","AuthorEmail":"1091045324@qq.com","AuthorName":"caihongyuchy","CommitterEmail":"1091045324@qq.com","CommitterName":"caihongyuchy","Timestamp":"2026-05-26T18:18:34+08:00"},"CompareURL":"vodtest/pc/compare/eb5b62a4727dd9dcc9fcdc3423dfd4455db87803...742fff8adfec41232760fbf36a98489035fd779e","Len":2}...
|
1779790745
|
Edit
Delete
|
|
5876
|
10
|
5
|
11
|
18
|
0
|
0
|
refs/heads/pc-260616
|
0
|
{"Commits":[{"Sha1":"742fff8ad {"Commits":[{"Sha1":"742fff8adfec41232760fbf36a98489035fd779e","Message":"需求-赠时报表\n","AuthorEmail":"1091045324@qq.com","AuthorName":"caihongyuchy","CommitterEmail":"1091045324@qq.com","CommitterName":"caihongyuchy","Timestamp":"2026-05-26T18:18:34+08:00"},{"Sha1":"de57cbcb137607b49b0758c28569d56baddfd547","Message":"需求-赠时报表\n","AuthorEmail":"1091045324@qq.com","AuthorName":"caihongyuchy","CommitterEmail":"1091045324@qq.com","CommitterName":"caihongyuchy","Timestamp":"2026-05-26T18:17:11+08:00"}],"HeadCommit":{"Sha1":"742fff8adfec41232760fbf36a98489035fd779e","Message":"需求-赠时报表\n","AuthorEmail":"1091045324@qq.com","AuthorName":"caihongyuchy","CommitterEmail":"1091045324@qq.com","CommitterName":"caihongyuchy","Timestamp":"2026-05-26T18:18:34+08:00"},"CompareURL":"vodtest/pc/compare/eb5b62a4727dd9dcc9fcdc3423dfd4455db87803...742fff8adfec41232760fbf36a98489035fd779e","Len":2}...
|
1779790745
|
Edit
Delete
|
|
30416
|
7
|
5
|
7
|
22
|
0
|
0
|
refs/heads/app-260915
|
0
|
{"Commits":[{"Sha1":"7431205bd {"Commits":[{"Sha1":"7431205bdc4e1e4c1fd1ead761385e28d7595d43","Message":"券的不可用节假日\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-09-16T20:13:56+08:00"}],"HeadCommit":{"Sha1":"7431205bdc4e1e4c1fd1ead761385e28d7595d43","Message":"券的不可用节假日\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-09-16T20:13:56+08:00"},"CompareURL":"vodtest/app/compare/689004cd2facbd7de260aec1c0705d4bae87f7fb...7431205bdc4e1e4c1fd1ead761385e28d7595d43","Len":1}...
|
1789560843
|
Edit
Delete
|
|
30417
|
9
|
5
|
7
|
22
|
0
|
0
|
refs/heads/app-260915
|
0
|
{"Commits":[{"Sha1":"7431205bd {"Commits":[{"Sha1":"7431205bdc4e1e4c1fd1ead761385e28d7595d43","Message":"券的不可用节假日\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-09-16T20:13:56+08:00"}],"HeadCommit":{"Sha1":"7431205bdc4e1e4c1fd1ead761385e28d7595d43","Message":"券的不可用节假日\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-09-16T20:13:56+08:00"},"CompareURL":"vodtest/app/compare/689004cd2facbd7de260aec1c0705d4bae87f7fb...7431205bdc4e1e4c1fd1ead761385e28d7595d43","Len":1}...
|
1789560843
|
Edit
Delete
|
|
30418
|
1
|
5
|
7
|
22
|
0
|
0
|
refs/heads/app-260915
|
0
|
{"Commits":[{"Sha1":"7431205bd {"Commits":[{"Sha1":"7431205bdc4e1e4c1fd1ead761385e28d7595d43","Message":"券的不可用节假日\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-09-16T20:13:56+08:00"}],"HeadCommit":{"Sha1":"7431205bdc4e1e4c1fd1ead761385e28d7595d43","Message":"券的不可用节假日\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-09-16T20:13:56+08:00"},"CompareURL":"vodtest/app/compare/689004cd2facbd7de260aec1c0705d4bae87f7fb...7431205bdc4e1e4c1fd1ead761385e28d7595d43","Len":1}...
|
1789560843
|
Edit
Delete
|
|
30419
|
3
|
5
|
7
|
22
|
0
|
0
|
refs/heads/app-260915
|
0
|
{"Commits":[{"Sha1":"7431205bd {"Commits":[{"Sha1":"7431205bdc4e1e4c1fd1ead761385e28d7595d43","Message":"券的不可用节假日\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-09-16T20:13:56+08:00"}],"HeadCommit":{"Sha1":"7431205bdc4e1e4c1fd1ead761385e28d7595d43","Message":"券的不可用节假日\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-09-16T20:13:56+08:00"},"CompareURL":"vodtest/app/compare/689004cd2facbd7de260aec1c0705d4bae87f7fb...7431205bdc4e1e4c1fd1ead761385e28d7595d43","Len":1}...
|
1789560843
|
Edit
Delete
|
|
30420
|
4
|
5
|
7
|
22
|
0
|
0
|
refs/heads/app-260915
|
0
|
{"Commits":[{"Sha1":"7431205bd {"Commits":[{"Sha1":"7431205bdc4e1e4c1fd1ead761385e28d7595d43","Message":"券的不可用节假日\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-09-16T20:13:56+08:00"}],"HeadCommit":{"Sha1":"7431205bdc4e1e4c1fd1ead761385e28d7595d43","Message":"券的不可用节假日\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-09-16T20:13:56+08:00"},"CompareURL":"vodtest/app/compare/689004cd2facbd7de260aec1c0705d4bae87f7fb...7431205bdc4e1e4c1fd1ead761385e28d7595d43","Len":1}...
|
1789560843
|
Edit
Delete
|
|
30421
|
8
|
5
|
7
|
22
|
0
|
0
|
refs/heads/app-260915
|
0
|
{"Commits":[{"Sha1":"7431205bd {"Commits":[{"Sha1":"7431205bdc4e1e4c1fd1ead761385e28d7595d43","Message":"券的不可用节假日\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-09-16T20:13:56+08:00"}],"HeadCommit":{"Sha1":"7431205bdc4e1e4c1fd1ead761385e28d7595d43","Message":"券的不可用节假日\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-09-16T20:13:56+08:00"},"CompareURL":"vodtest/app/compare/689004cd2facbd7de260aec1c0705d4bae87f7fb...7431205bdc4e1e4c1fd1ead761385e28d7595d43","Len":1}...
|
1789560843
|
Edit
Delete
|
|
30422
|
10
|
5
|
7
|
22
|
0
|
0
|
refs/heads/app-260915
|
0
|
{"Commits":[{"Sha1":"7431205bd {"Commits":[{"Sha1":"7431205bdc4e1e4c1fd1ead761385e28d7595d43","Message":"券的不可用节假日\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-09-16T20:13:56+08:00"}],"HeadCommit":{"Sha1":"7431205bdc4e1e4c1fd1ead761385e28d7595d43","Message":"券的不可用节假日\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-09-16T20:13:56+08:00"},"CompareURL":"vodtest/app/compare/689004cd2facbd7de260aec1c0705d4bae87f7fb...7431205bdc4e1e4c1fd1ead761385e28d7595d43","Len":1}...
|
1789560843
|
Edit
Delete
|
|
30423
|
11
|
5
|
7
|
22
|
0
|
0
|
refs/heads/app-260915
|
0
|
{"Commits":[{"Sha1":"7431205bd {"Commits":[{"Sha1":"7431205bdc4e1e4c1fd1ead761385e28d7595d43","Message":"券的不可用节假日\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-09-16T20:13:56+08:00"}],"HeadCommit":{"Sha1":"7431205bdc4e1e4c1fd1ead761385e28d7595d43","Message":"券的不可用节假日\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-09-16T20:13:56+08:00"},"CompareURL":"vodtest/app/compare/689004cd2facbd7de260aec1c0705d4bae87f7fb...7431205bdc4e1e4c1fd1ead761385e28d7595d43","Len":1}...
|
1789560843
|
Edit
Delete
|
|
28464
|
5
|
5
|
5
|
57
|
0
|
0
|
refs/heads/docs/path-queue-r42-release
|
0
|
{"Commits":[{"Sha1":"7431ad952 {"Commits":[{"Sha1":"7431ad952bf119541c95cc571c9d8fd9f42db6d2","Message":"docs(release): record r42 path ownership and dispatch deployment\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-08T08:35:44-07:00"}],"HeadCommit":{"Sha1":"7431ad952bf119541c95cc571c9d8fd9f42db6d2","Message":"docs(release): record r42 path ownership and dispatch deployment\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-08T08:35:44-07:00"},"CompareURL":"luoanwu/image-generation/compare/6c1615de2390282582b75f59b84c9166a124df69...7431ad952bf119541c95cc571c9d8fd9f42db6d2","Len":1}...
|
1788881774
|
Edit
Delete
|
|
31112
|
5
|
5
|
5
|
117
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"7433af77e {"Commits":[{"Sha1":"7433af77e643c41f2ccb34fb8aebe363ec76e306","Message":"test(治理): L6 的判定搬进 core 并补负向用例——它此前是唯一零覆盖的一条\n\n一致性门禁 L1—L5 / L7—L13 的判定都在 lib/workspace-consistency-core.mjs 里、各有负向\n用例,**唯独 L6(worktree 两侧 gitdir)与文件系统读取缠在 check-workspace-consistency.mjs\n里**,全量扫描确认 tests/ 里没有任何一条用例触达它。它「能工作」的唯一证据是恰好没在\n实数据上报错——而「没报错」与「判不出来」在外部看来一模一样。\n\n本轮只搬不改:IO 函数改为只收集事实,判定交给新的纯函数 evaluateWorktreeGitdirs。\n**判词逐字未变,改前改后门禁 --json 输出实测完全相同**(status / counts / issues 三者\n逐字相等,prunableWorktrees 仍为 5、L9 仍为 1)。\n\n补 8 条负向用例,覆盖两个方向的全部分支:\n 方向一 .git 为空 / 指向不存在的登记 / 登记反指不回来(含反指读不出时须写「(空)」);\n 三种坏法互斥,前一种命中不再叠加后一种\n 方向二 gitdir 为空即红;目标还在就跳过(反指归方向一,不重复报);\n **目标没了且旁边没有同名工作树 = prunable,只计数不报**——那是 git worktree\n prune 的日常;目标没了但工作树就在旁边 = 失联,判红且不计入 prunable\n\n顺带核实两条初测假阳性,记在这里免得再查一遍:L9 的判定其实在 core 里且有用例\n(composeProjectName / composeProjectCollisions),只是测试里不出现「L9」这个字面量;\nL0 与 L28 是正则误匹配(一个字符类、一处注释里的行号)。\n\n一致性门禁测试 34 → 42,治理层全量 389 → 401(395 过 / 6 跳 / 0 失败);\n统一入口阻断性门禁 11/11。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-18T02:39:16-07:00"},{"Sha1":"1e6a813a72945400129128947654df4ecdc8849d","Message":"docs(回灌): U-39 / U-40——发布物与源码同版本不同内容,且 provenance 无 gitSha\n\n新增 §2E 第 5 轮条目(基础基座 → 基础设施)。采集自 OS 执行「内核退回 pin 立项」B1\n(contracts exact pin @juhai/kernel@0.22.0)时对接已发布客户端包的实测。\n\nU-39 发布物与其源码同版本不同内容,peer 只是露出来的一角。已发布的\n @juhai/client-fact@1.0.0-rc.3 声明 peer @juhai/kernel: 0.16.1(发布物自证),而控制面仓\n 同版本源码声明 0.22.0——2026-09-17 框架同步只改了 runtime/clients/fact/package.json 未重发。\n 进一步拆开发布物:dist 里没有 Authorization 回查鉴权,源码 reader.ts:31 却发\n Bearer ${token}。消费侧对此完全不可见:pnpm 对未满足 peer 只打一行 WARN 就继续装。\n → 平台侧动作:重发 rc.4 携带正确 peer,发布前确认 dist 与源码同一提交。\n 基座侧已自保:新增 PEER_UNSATISFIED 判据 + 五字段登记(期限 2026-12-18)。\n\nU-40 本地旁路发布的发布物不可对账到提交。registry 上 rc.3 的 provenance.json 为\n runner:\"local\" / reports:[] / gitSha:\"\"——空字符串。任何消费者都无法验证装到的包出自哪次\n 提交,U-39 那种「同版本不同内容」因此无法被机器发现。这比 peer 错一版严重:peer 至少还有\n 一个可比的值,gitSha 为空是判据缺席。\n → 平台侧动作:发布物 provenance.json 必须带真实 gitSha,本地旁路也不得留空——旁路可以解除\n CI 身份检查,但不应连「这是哪次提交构建的」都放弃。\n\n两条均标 🔴 下层缺口,阻塞于平台发布列车(G-12 计费)。基座侧不停等:按立项 §6 三条出路\n裁为 ③(登记偏差 + 加判据),B2 / B3′ 继续推进。\n\n一致性门禁复跑:合计 1 条,仅 L9(8 仓共用 compose project api-nestjs),与本次改动无关——\n它正是 OS 在 framework-criteria.json 里登记为 missing 的框架 F14。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-18T02:39:13-07:00"}],"HeadCommit":{"Sha1":"7433af77e643c41f2ccb34fb8aebe363ec76e306","Message":"test(治理): L6 的判定搬进 core 并补负向用例——它此前是唯一零覆盖的一条\n\n一致性门禁 L1—L5 / L7—L13 的判定都在 lib/workspace-consistency-core.mjs 里、各有负向\n用例,**唯独 L6(worktree 两侧 gitdir)与文件系统读取缠在 check-workspace-consistency.mjs\n里**,全量扫描确认 tests/ 里没有任何一条用例触达它。它「能工作」的唯一证据是恰好没在\n实数据上报错——而「没报错」与「判不出来」在外部看来一模一样。\n\n本轮只搬不改:IO 函数改为只收集事实,判定交给新的纯函数 evaluateWorktreeGitdirs。\n**判词逐字未变,改前改后门禁 --json 输出实测完全相同**(status / counts / issues 三者\n逐字相等,prunableWorktrees 仍为 5、L9 仍为 1)。\n\n补 8 条负向用例,覆盖两个方向的全部分支:\n 方向一 .git 为空 / 指向不存在的登记 / 登记反指不回来(含反指读不出时须写「(空)」);\n 三种坏法互斥,前一种命中不再叠加后一种\n 方向二 gitdir 为空即红;目标还在就跳过(反指归方向一,不重复报);\n **目标没了且旁边没有同名工作树 = prunable,只计数不报**——那是 git worktree\n prune 的日常;目标没了但工作树就在旁边 = 失联,判红且不计入 prunable\n\n顺带核实两条初测假阳性,记在这里免得再查一遍:L9 的判定其实在 core 里且有用例\n(composeProjectName / composeProjectCollisions),只是测试里不出现「L9」这个字面量;\nL0 与 L28 是正则误匹配(一个字符类、一处注释里的行号)。\n\n一致性门禁测试 34 → 42,治理层全量 389 → 401(395 过 / 6 跳 / 0 失败);\n统一入口阻断性门禁 11/11。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-18T02:39:16-07:00"},"CompareURL":"luoanwu/platform-governance/compare/6b045590e6ba93dd703453bc478b3b6c879491f3...7433af77e643c41f2ccb34fb8aebe363ec76e306","Len":2}...
|
1789724358
|
Edit
Delete
|
|
28492
|
5
|
5
|
5
|
57
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"7449fe2ef {"Commits":[{"Sha1":"7449fe2ef8eeaa4548a0e2fecf1c4832f0145c46","Message":"chore: sync final governance verification reports\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-08T11:24:33-07:00"}],"HeadCommit":{"Sha1":"7449fe2ef8eeaa4548a0e2fecf1c4832f0145c46","Message":"chore: sync final governance verification reports\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-08T11:24:33-07:00"},"CompareURL":"luoanwu/image-generation/compare/7a3921032d6f0268aa507f18074be5ad493d1276...7449fe2ef8eeaa4548a0e2fecf1c4832f0145c46","Len":1}...
|
1788891881
|
Edit
Delete
|
|
20408
|
5
|
5
|
5
|
72
|
0
|
0
|
refs/heads/feat/multi-role-assignment
|
0
|
{"Commits":[{"Sha1":"744d532b8 {"Commits":[{"Sha1":"744d532b80ba3fd239cfbdd2b3700e3d73c08675","Message":"test(governance): 三级门禁全绿——runtime 396/396、UI 12/12,合同与多角色补齐验收\n\n本轮把欠了整条线的运行态证据补齐:静态 → 真实 DB → 浏览器三级全部实跑通过。\n\n## 合同域门禁(5 条断言 + 自检固化)\n`check:module-integration` 新增:渲染必须调 contracts 纯函数、清单必须走 contracts\n清洗、定稿必须校验金额、激活必须要求合同已定稿、合同列表必须有自己的读模型。\n5 条负向注入逐条实跑判红,并固化进 `scripts/lib/contract-integration.test.mjs`\n(fixture 隔离,不碰真文件;配「未注入 → 绿」基线用例,防止所有\"期望红\"\n以完全错误的理由通过)。gateSelftests 地板 6 → 7。\n\n其中「合同列表必须有自己的读模型」防的是真实发生过的缺陷:\n借用「待激活申请」options(只返 REQUESTED)会让财务一激活,刚签的合同就从界面消失。\n\n## 状态机不变量逼出的设计修正\n`contractMachine` 原本是 `DRAFT ⇄ FINALIZED` 的**无终态环**——合同永远走不完,\n而\"订单已激活则不可修改\"只是运行时守卫。contracts 的状态机不变量测试\n(\"从任一状态都能走到终态\")当场判红。加终态 `EFFECTIVE`,由财务激活时迁入:\n`revise` 从 EFFECTIVE 出发在**状态机层面就不存在**,运行时检查降为第二层。\n\n## 修掉一个我自己制造的严重问题\n早先用批量正则把测试里的 `role:` 改成 `roles:`,**误伤 153 处 `api()` helper 入参**。\n该 helper 收的是 `role`,`roles` 被静默忽略并回落成默认 ADMIN——\n**测试照样绿,但所有「某角色应当 403」的负例都退化成「ADMIN 当然 200」**。\n已全部回退。教训:批量正则改测试比改源码危险得多,源码有编译器兜底,测试没有。\n\n## 修掉一处静默降级(用户反馈两次)\n`draft()` 里 `template ? render(...) : \"\"`——取不到默认模板就给空正文,不报错不提示。\n而\"合同建出来了、正文是空的\"在界面上与\"模板没生效\"完全一样。改为:\n默认模板优先,没设默认但只有一个模板时直接采用;仍取不到时界面明确说明原因。\n另补「套用模板」选择器——此前 `templateId` 存了却从不重渲染,已有合同换不了模板。\n\n## 版式\n按反馈调整为:套用模板 → 合同正文 → 合同清单。\n打印改为只打这一份合同:`@media print` 内 5 条规则(全页隐藏 → 放行合同卡 →\n正文去滚动上限并允许换行 → 按钮与留证快照不打印),沿用配货单打印同一模式,\n含「window.print() 必须在原始 click 内同步调用」那条硬约束。\n\n## 三级门禁证据(本地工作区)\n- `pnpm check` exit 0;门禁自检 8 组\n- `pnpm check:runtime` **396/396**(地板抬至 380),双后端 HTTP 各 45/45\n- `pnpm check:ui` **12/12**,unexpected 0(地板抬至 12)\n- 新增双后端 HTTP 验收:未定稿激活 409 CONTRACT_NOT_FINALIZED、\n 改金额定稿 409 CONTRACT_TOTAL_MISMATCH、合同清单只有对客七列且不含 cost\n- 新增 E2E 真实界面链路:建模板 → 生成合同 → 断言正文按模板渲染 →\n 定稿 → 只读预览 → 激活\n\n## 顺带修复的真账\n多角色改造遗留:两后端测试夹具签单值 role、fromRole/toRole 断言、\nNestJS api() helper 签发、E2E 建账号入参、合同外键 Restrict 导致的清理顺序。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-03T06:17:45-07:00"},{"Sha1":"0e13b856b65685957296087a642c46a9b57c8d0a","Message":"feat(contract): 合同管理界面——模板维护、清单改写、预览与定稿\n\n## 界面三段\n- **模板维护**:正文编辑 + 可用变量清单(真源是 contracts 白名单,不手抄);\n 默认模板里乙方那几行留了「请填写」占位提示,免得有人以为忘了配变量\n- **合同面板**:清单可改名称/规格/单位/备注,**单价与金额只读**——\n 金额与报价锁死,改写法不改钱,只读比\"改了再被服务端拒绝\"少一次挫败\n- **定稿后**:正文转只读预览 + 打印 + 撤回定稿;留证快照可展开查看\n\n## 浏览器验证时抓到一个真实缺陷\n最初用「待激活申请」的 options 驱动合同列表——而它只返 `status=REQUESTED`。\n结果是**财务一激活,刚签的合同就从界面上凭空消失**。\n补了 `GET /api/contracts` 作为合同自己的读模型(两后端对等),\n视图改为「已有合同 + 尚未起草的待激活申请」两段驱动,后者按 contractRequestId 去重。\n\n这个 bug 单测抓不到,也不会有任何红盘——它只在\"数据恰好处于某状态\"时显形,\n而 dev 库里正好一条 REQUESTED 都没有,所以一打开就是空白。\n\n## 前端不做第二份渲染\n预览直接显示服务端渲染好的 `body`,前端**没有任何占位符处理**。\n在前端补一套 replace 会变成第二份渲染实现(G17 漂移形态):\n两边看起来一样,直到某天对空值的处理不同,界面上好好的合同打印出来金额是空的。\n\n## 证据(本地工作区)\n- `pnpm check` exit 0;全仓 typecheck 0 错误\n- 浏览器实测:模板维护渲染、合同面板 1 个、状态「已定稿」、清单 1 行、\n 合计 ¥660000.00、预览/撤回定稿/打印按钮齐全(截图见会话)\n- `GET /api/contracts` 返回真实合同(编号、报价号、客户名、合计、定稿时间)\n\n## 未做\nE2E 用例、两后端 HTTP 验收、`check:module-integration` 合同断言均未补(#31)。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-02T23:19:14-07:00"},{"Sha1":"ef882dee3f2d670038bff1151a04e6cb4a4d3d45","Message":"feat(contract): 合同管理落地——模板、清单清洗、预览、定稿快照与激活前置\n\n动手前先证伪了「优化完善」这个词:**本仓此前没有合同**。\n`ContractRequest` 只是流程凭证(状态 + 报价引用 + 拒绝留痕),没有正文、条款、\n甲乙方、签署;「合同管理」视图做的是财务把报价激活成订单,本质是审批队列。\n所以这是新建业务对象,不是加按钮。\n\n## 用户裁决(五条)\n模板+变量填充 / 定稿即快照 / 仅内部预览打印 / 乙方写进模板正文 / 定稿为激活前置。\n另就清单追加两条:只改写法金额锁死 / PUBLIC 附件归入主行备注。\n\n## 合同清单与报价清单是两份不同明细\n报价行 26 列里 9 列是内部的——成本价、底价、成本合计、低于底价标记、调价原因、\n标准价、三种折扣构成。投影**重建对象字面量**而不是删字段,成本列在结构上进不来\n(单测断言 Object.keys 恰为七列,并扫描序列化结果确认成本数字不出现)。\n最隐蔽的一条是 `QuoteLineAccessory.visibility=INTERNAL`:「别显示成本」人人记得,\n「别显示内部附件」没人会想到,因为它藏在子表里。\n\n**金额锁死**先验了算术前提才敢定:dev 库 `sum(quote_lines.total_cents)` 恒等于\n`quote_options.total_cents`,差额全为 0,否则这条不变量会一上线就误杀所有合同(C1 同型)。\n校验放在**定稿**而非每次保存——草稿期正在合并行,中间态必然对不上,\n每次都校验会让「合并两行」这个动作根本做不完。\n\n## 渲染两层 fail-closed\n未知变量、取不到值的变量都抛错并点名。理由:一份看起来正常、金额那行却空白的合同\n被打印去签,比当场报错危险一个量级。另单独检查未闭合 `{{`——它会被正则整段跳过,\n不专门查就会原样印进合同且无人报错。\n\n## 真实链路验证抓出两个 bug\n① `variablesSnapshot` 恒为空:起草时正文已渲染,到定稿时里面早没有 `{{}}` 可提取。\n 改为快照**全部可解析变量**——留证本就该全记,不该取决于模板作者当初印没印。\n② Fastify 路由多写了 `/api` 前缀(注册作用域已带 prefix),实际成了 `/api/api/...`。\n\n## 又踩了一次同字面量陷阱\nNestJS 激活前置最初插错位置——「仓库不存在」那段在文件里出现多次,\n`replace` 只换第一处,守卫落进了 `createStocktake`(盘点)。\n已改为断言锚点唯一性后再插入。CLAUDE.md 点名过两次的坑,我这是第三次踩。\n\n## 证据(本地工作区,Fastify 真实链路)\n- `pnpm check` exit 0;contracts 单测 302(新增 22 条合同用例)\n- 模板:经理可建 201 / 销售 403 / 未登记变量 409 点名「甲方开户行」\n- 合同:起草生成 1 行清单(七列,含\"含:附件\"备注)、正文变量全替换、大写金额正确\n- 定稿:改金额 → 409 报出差额 -10000.00 元;销售定稿 403;正确金额 → FINALIZED\n- 撤回定稿:订单已激活 → 409 ORDER_ALREADY_ACTIVATED\n- 缺税号时起草 → 409 MISSING_VALUE 点名「甲方税号」(真实数据触发,非构造)\n- 留证快照 12 项(缺签署人两项因该报价未走客户接受,属正确 fail-closed)\n\n## 未做(不隐藏)\n前端界面(模板维护/预览/修改)未做;两后端 HTTP 验收测试与 E2E 未补;\n`check:runtime`/`check:ui` 本轮未跑;激活前置只在代码与单测层验证,\n未构造完整「未定稿→拒绝激活」的真实 HTTP 流程(dev 库无待激活申请,\n且 quotation_id 唯一约束挡住了造数)。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-02T23:07:37-07:00"},{"Sha1":"e0b780d18833713a675d8903f407bd7afd55e650","Message":"feat(auth): 多角色并存——一个账号可持多个角色,能力取并集,互斥组合硬禁止\n\n用户裁决两条:① 多角色并存(而非租户自定义角色);② 互斥组合硬禁止(而非仅警示)。\n\n## 为什么是多角色而不是自定义角色\n备选方案是「租户自建角色 + 勾选任意 capability 子集」。不选它只有一条理由但足够硬:\n那会把「谁能做什么」的真源从 ROLE_PERMISSION_MAP **搬进数据库**,\n`check:role-permissions` 里「数据库不另存权限副本」这条核心断言随即失效,\n排查越权要同时看代码和数据。多角色只在 DB 存**角色分配**,真源不动,门禁继续有牙。\n代价是表达力:拼不出「销售但能看成本」这种现有角色组合不出的能力集。**已知取舍,非遗漏。**\n\n## 互斥矩阵为什么按角色对而不是 capability 对\n按能力对看着更本质,实则注册即红:`FINANCE` 单角色本身就同时持有 `payment.record`\n与 `payment.confirm`,门禁上线当天就判自己违规(C1 同型:扫到自身定义源)。\n故定义在角色层,并由 `it.each(MANAGED_USER_ROLES)`「每个单角色都不触发冲突」常驻断言守住。\n三组:采购三责分离 / 收款与发货放行 / 财务发起与审批;ADMIN 须单独持有。\n**这挡不住 ADMIN**——它持全部 capability,三责分离对它本就不成立,\n所以审批动作仍按 actor 硬校验 `approver !== requester`,两层缺一不可。\n\n## 删掉 requestRole 是本次最关键的决定\n`hasRolePermission` 改为同时接受单角色与角色集,好让 185 处调用点逐字不变。\n但这带来一个隐患:若保留 `requestRole`/`RequestRole` 单值访问器,\n调用点会**照常编译通过、静默只按主角色授权**——并集悄悄失效,零红盘。\n删掉它,编译器逼出 122+29 个错误,一个都跑不掉。\n\n编译器抓不到的恰是最危险的一处:`lockActiveAdmins` 的裸 SQL `\"role\" = 'ADMIN'`。\n它绕过 Prisma 类型检查;若当初保留 role 列做「兼容」,这句会静默匹配陈旧数据——\n**最后管理员保护看似还在,锁的却是错的行**。这是坚持 DROP COLUMN(并按门禁写\n`migration-allow` 留痕)的真正理由。计数侧同理:数组列上等值查询恒不匹配,\n`count` 恒为 0 会让保护永远放行。\n\n## 顺带修掉一个存量 bug\n两后端 `reverseAllocation` 把**角色名当操作人**存进 `reversedBy`(`reversedBy: role` → \"FINANCE\")。\n列是 String? 所以静默收下,反核销记录追不到人。多角色改造让它变成类型错误才暴露,已改传 actor。\n\n## token 与失效语义\nclaims `role` → `roles`,**无兼容分支**:留着它,只带 `role` 的旧令牌会走进「按单角色授权」\n的窄路径而调用方以为拿到并集,这种不一致比直接 401 难查得多。旧令牌一律 401 CLAIMS。\n受管理令牌回查用 `sameRoleSet` **集合语义**——按数组逐位比会让管理员调整勾选顺序\n就把在线用户全部踢下线(同 sameTagSet 那条教训)。\n\n## 迁移\n两端对等:users.role → users.roles、user_events 角色快照转集合,先回填再删旧列。\nDROP COLUMN 与 CREATE INDEX 均按门禁要求加 `-- migration-allow:` 留痕。\n\n## 前端\n账号页角色由单选下拉改多选勾选,实时显示并集能力数与互斥冲突——\n预览调 contracts 同一个 `previewRoleAssignment`,不在前端另写一套 if。\n**前端只提示不裁决**:绕过 UI 直接 curl 照样 400。\n\n## 证据(本地工作区)\n- `pnpm check` exit 0;contracts 273/273(新增 33 条多角色单测);全仓 typecheck 0 错误\n- 门禁负向已实跑判红:注入「退化成只按主角色授权」→ check:role-permissions exit 1;\n 注入「待办中心放行全集」→ check:module-integration exit 1;均恢复后转绿\n- 迁移在 dev 库实跑:单角色→单元素集合、0 个空角色集账号、旧列已删\n- 真实 HTTP 四条对抗:仓库+采购 400 点名冲突/空集 400/ADMIN 混搭 400/销售+技术 201\n- 浏览器:多选控件 10 角色、并集能力数实时更新、互斥冲突当场提示\n\n## 未做(不隐藏)\n`check:runtime` 与 `check:ui` 本轮未实跑;两后端多角色 HTTP 验收与 E2E 用例尚未补齐。\n动态区 runtime/UI 证据行仍是上一轮日期,未据本次改动更新。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-02T22:26:56-07:00"}],"HeadCommit":{"Sha1":"744d532b80ba3fd239cfbdd2b3700e3d73c08675","Message":"test(governance): 三级门禁全绿——runtime 396/396、UI 12/12,合同与多角色补齐验收\n\n本轮把欠了整条线的运行态证据补齐:静态 → 真实 DB → 浏览器三级全部实跑通过。\n\n## 合同域门禁(5 条断言 + 自检固化)\n`check:module-integration` 新增:渲染必须调 contracts 纯函数、清单必须走 contracts\n清洗、定稿必须校验金额、激活必须要求合同已定稿、合同列表必须有自己的读模型。\n5 条负向注入逐条实跑判红,并固化进 `scripts/lib/contract-integration.test.mjs`\n(fixture 隔离,不碰真文件;配「未注入 → 绿」基线用例,防止所有\"期望红\"\n以完全错误的理由通过)。gateSelftests 地板 6 → 7。\n\n其中「合同列表必须有自己的读模型」防的是真实发生过的缺陷:\n借用「待激活申请」options(只返 REQUESTED)会让财务一激活,刚签的合同就从界面消失。\n\n## 状态机不变量逼出的设计修正\n`contractMachine` 原本是 `DRAFT ⇄ FINALIZED` 的**无终态环**——合同永远走不完,\n而\"订单已激活则不可修改\"只是运行时守卫。contracts 的状态机不变量测试\n(\"从任一状态都能走到终态\")当场判红。加终态 `EFFECTIVE`,由财务激活时迁入:\n`revise` 从 EFFECTIVE 出发在**状态机层面就不存在**,运行时检查降为第二层。\n\n## 修掉一个我自己制造的严重问题\n早先用批量正则把测试里的 `role:` 改成 `roles:`,**误伤 153 处 `api()` helper 入参**。\n该 helper 收的是 `role`,`roles` 被静默忽略并回落成默认 ADMIN——\n**测试照样绿,但所有「某角色应当 403」的负例都退化成「ADMIN 当然 200」**。\n已全部回退。教训:批量正则改测试比改源码危险得多,源码有编译器兜底,测试没有。\n\n## 修掉一处静默降级(用户反馈两次)\n`draft()` 里 `template ? render(...) : \"\"`——取不到默认模板就给空正文,不报错不提示。\n而\"合同建出来了、正文是空的\"在界面上与\"模板没生效\"完全一样。改为:\n默认模板优先,没设默认但只有一个模板时直接采用;仍取不到时界面明确说明原因。\n另补「套用模板」选择器——此前 `templateId` 存了却从不重渲染,已有合同换不了模板。\n\n## 版式\n按反馈调整为:套用模板 → 合同正文 → 合同清单。\n打印改为只打这一份合同:`@media print` 内 5 条规则(全页隐藏 → 放行合同卡 →\n正文去滚动上限并允许换行 → 按钮与留证快照不打印),沿用配货单打印同一模式,\n含「window.print() 必须在原始 click 内同步调用」那条硬约束。\n\n## 三级门禁证据(本地工作区)\n- `pnpm check` exit 0;门禁自检 8 组\n- `pnpm check:runtime` **396/396**(地板抬至 380),双后端 HTTP 各 45/45\n- `pnpm check:ui` **12/12**,unexpected 0(地板抬至 12)\n- 新增双后端 HTTP 验收:未定稿激活 409 CONTRACT_NOT_FINALIZED、\n 改金额定稿 409 CONTRACT_TOTAL_MISMATCH、合同清单只有对客七列且不含 cost\n- 新增 E2E 真实界面链路:建模板 → 生成合同 → 断言正文按模板渲染 →\n 定稿 → 只读预览 → 激活\n\n## 顺带修复的真账\n多角色改造遗留:两后端测试夹具签单值 role、fromRole/toRole 断言、\nNestJS api() helper 签发、E2E 建账号入参、合同外键 Restrict 导致的清理顺序。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"luoguoguo@gmail.com","AuthorName":"luoguoguo","CommitterEmail":"luoguoguo@gmail.com","CommitterName":"luoguoguo","Timestamp":"2026-08-03T06:17:45-07:00"},"CompareURL":"luoanwu/juhai-quotation-system/compare/4e06b62635319faead311e0b6799c2e47877f859...744d532b80ba3fd239cfbdd2b3700e3d73c08675","Len":4}...
|
1785765661
|
Edit
Delete
|
|
4089
|
7
|
5
|
7
|
22
|
0
|
0
|
refs/heads/app-260519
|
0
|
{"Commits":[{"Sha1":"744f17de2 {"Commits":[{"Sha1":"744f17de2f739b9a120bfdeded7621cd34a9c95a","Message":"预订开房后去开房订单退款,更新自助营业两个报表\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-05-20T17:08:42+08:00"}],"HeadCommit":{"Sha1":"744f17de2f739b9a120bfdeded7621cd34a9c95a","Message":"预订开房后去开房订单退款,更新自助营业两个报表\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-05-20T17:08:42+08:00"},"CompareURL":"vodtest/app/compare/7fee8c3d9e1a261473bb091dfebc9a63a034cbd9...744f17de2f739b9a120bfdeded7621cd34a9c95a","Len":1}...
|
1779268130
|
Edit
Delete
|
|
4090
|
9
|
5
|
7
|
22
|
0
|
0
|
refs/heads/app-260519
|
0
|
{"Commits":[{"Sha1":"744f17de2 {"Commits":[{"Sha1":"744f17de2f739b9a120bfdeded7621cd34a9c95a","Message":"预订开房后去开房订单退款,更新自助营业两个报表\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-05-20T17:08:42+08:00"}],"HeadCommit":{"Sha1":"744f17de2f739b9a120bfdeded7621cd34a9c95a","Message":"预订开房后去开房订单退款,更新自助营业两个报表\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-05-20T17:08:42+08:00"},"CompareURL":"vodtest/app/compare/7fee8c3d9e1a261473bb091dfebc9a63a034cbd9...744f17de2f739b9a120bfdeded7621cd34a9c95a","Len":1}...
|
1779268130
|
Edit
Delete
|
|
4091
|
1
|
5
|
7
|
22
|
0
|
0
|
refs/heads/app-260519
|
0
|
{"Commits":[{"Sha1":"744f17de2 {"Commits":[{"Sha1":"744f17de2f739b9a120bfdeded7621cd34a9c95a","Message":"预订开房后去开房订单退款,更新自助营业两个报表\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-05-20T17:08:42+08:00"}],"HeadCommit":{"Sha1":"744f17de2f739b9a120bfdeded7621cd34a9c95a","Message":"预订开房后去开房订单退款,更新自助营业两个报表\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-05-20T17:08:42+08:00"},"CompareURL":"vodtest/app/compare/7fee8c3d9e1a261473bb091dfebc9a63a034cbd9...744f17de2f739b9a120bfdeded7621cd34a9c95a","Len":1}...
|
1779268130
|
Edit
Delete
|
|
4092
|
3
|
5
|
7
|
22
|
0
|
0
|
refs/heads/app-260519
|
0
|
{"Commits":[{"Sha1":"744f17de2 {"Commits":[{"Sha1":"744f17de2f739b9a120bfdeded7621cd34a9c95a","Message":"预订开房后去开房订单退款,更新自助营业两个报表\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-05-20T17:08:42+08:00"}],"HeadCommit":{"Sha1":"744f17de2f739b9a120bfdeded7621cd34a9c95a","Message":"预订开房后去开房订单退款,更新自助营业两个报表\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-05-20T17:08:42+08:00"},"CompareURL":"vodtest/app/compare/7fee8c3d9e1a261473bb091dfebc9a63a034cbd9...744f17de2f739b9a120bfdeded7621cd34a9c95a","Len":1}...
|
1779268130
|
Edit
Delete
|
|
4093
|
4
|
5
|
7
|
22
|
0
|
0
|
refs/heads/app-260519
|
0
|
{"Commits":[{"Sha1":"744f17de2 {"Commits":[{"Sha1":"744f17de2f739b9a120bfdeded7621cd34a9c95a","Message":"预订开房后去开房订单退款,更新自助营业两个报表\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-05-20T17:08:42+08:00"}],"HeadCommit":{"Sha1":"744f17de2f739b9a120bfdeded7621cd34a9c95a","Message":"预订开房后去开房订单退款,更新自助营业两个报表\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-05-20T17:08:42+08:00"},"CompareURL":"vodtest/app/compare/7fee8c3d9e1a261473bb091dfebc9a63a034cbd9...744f17de2f739b9a120bfdeded7621cd34a9c95a","Len":1}...
|
1779268130
|
Edit
Delete
|
|
4094
|
8
|
5
|
7
|
22
|
0
|
0
|
refs/heads/app-260519
|
0
|
{"Commits":[{"Sha1":"744f17de2 {"Commits":[{"Sha1":"744f17de2f739b9a120bfdeded7621cd34a9c95a","Message":"预订开房后去开房订单退款,更新自助营业两个报表\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-05-20T17:08:42+08:00"}],"HeadCommit":{"Sha1":"744f17de2f739b9a120bfdeded7621cd34a9c95a","Message":"预订开房后去开房订单退款,更新自助营业两个报表\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-05-20T17:08:42+08:00"},"CompareURL":"vodtest/app/compare/7fee8c3d9e1a261473bb091dfebc9a63a034cbd9...744f17de2f739b9a120bfdeded7621cd34a9c95a","Len":1}...
|
1779268130
|
Edit
Delete
|
|
4095
|
10
|
5
|
7
|
22
|
0
|
0
|
refs/heads/app-260519
|
0
|
{"Commits":[{"Sha1":"744f17de2 {"Commits":[{"Sha1":"744f17de2f739b9a120bfdeded7621cd34a9c95a","Message":"预订开房后去开房订单退款,更新自助营业两个报表\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-05-20T17:08:42+08:00"}],"HeadCommit":{"Sha1":"744f17de2f739b9a120bfdeded7621cd34a9c95a","Message":"预订开房后去开房订单退款,更新自助营业两个报表\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-05-20T17:08:42+08:00"},"CompareURL":"vodtest/app/compare/7fee8c3d9e1a261473bb091dfebc9a63a034cbd9...744f17de2f739b9a120bfdeded7621cd34a9c95a","Len":1}...
|
1779268130
|
Edit
Delete
|
|
4096
|
11
|
5
|
7
|
22
|
0
|
0
|
refs/heads/app-260519
|
0
|
{"Commits":[{"Sha1":"744f17de2 {"Commits":[{"Sha1":"744f17de2f739b9a120bfdeded7621cd34a9c95a","Message":"预订开房后去开房订单退款,更新自助营业两个报表\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-05-20T17:08:42+08:00"}],"HeadCommit":{"Sha1":"744f17de2f739b9a120bfdeded7621cd34a9c95a","Message":"预订开房后去开房订单退款,更新自助营业两个报表\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-05-20T17:08:42+08:00"},"CompareURL":"vodtest/app/compare/7fee8c3d9e1a261473bb091dfebc9a63a034cbd9...744f17de2f739b9a120bfdeded7621cd34a9c95a","Len":1}...
|
1779268130
|
Edit
Delete
|
|
33607
|
5
|
5
|
5
|
116
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"745d6a97c {"Commits":[{"Sha1":"745d6a97cc8ddaa8c27f6b7013faf92a0dbe4172","Message":"CHG-029 Register kernel draft boundary and pending DEC-053 candidates\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-29T22:58:38-07:00"}],"HeadCommit":{"Sha1":"745d6a97cc8ddaa8c27f6b7013faf92a0dbe4172","Message":"CHG-029 Register kernel draft boundary and pending DEC-053 candidates\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-29T22:58:38-07:00"},"CompareURL":"luoanwu/enterprise-platform/compare/3b3909bb0708b67e9aa9b101664bf5e15e42c404...745d6a97cc8ddaa8c27f6b7013faf92a0dbe4172","Len":1}...
|
1790748285
|
Edit
Delete
|
|
33111
|
5
|
5
|
5
|
121
|
0
|
0
|
refs/heads/main
|
1
|
{"Commits":[{"Sha1":"746dae77d {"Commits":[{"Sha1":"746dae77dcdc101367732230c2c93181763ccdf9","Message":"docs(deploy): record rejected 062 live migration and recovery\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-28T15:36:08-07:00"}],"HeadCommit":{"Sha1":"746dae77dcdc101367732230c2c93181763ccdf9","Message":"docs(deploy): record rejected 062 live migration and recovery\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-28T15:36:08-07:00"},"CompareURL":"luoanwu/seven-domain-five-dimension-unified-model/compare/d56f72ff84cb8d258753022feab1ba14acf65165...746dae77dcdc101367732230c2c93181763ccdf9","Len":1}...
|
1790634992
|
Edit
Delete
|
|
25986
|
7
|
5
|
7
|
21
|
0
|
0
|
refs/heads/pay-260818
|
0
|
{"Commits":[{"Sha1":"74743c4c0 {"Commits":[{"Sha1":"74743c4c025d7856d53d0137acf18e1987f6160b","Message":"1\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-08-26T10:00:53+08:00"}],"HeadCommit":{"Sha1":"74743c4c025d7856d53d0137acf18e1987f6160b","Message":"1\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-08-26T10:00:53+08:00"},"CompareURL":"vodtest/pay/compare/15138dd714a5eb59d63eac73fe6d0eb0f3df2c68...74743c4c025d7856d53d0137acf18e1987f6160b","Len":1}...
|
1787709661
|
Edit
Delete
|
|
25987
|
9
|
5
|
7
|
21
|
0
|
0
|
refs/heads/pay-260818
|
0
|
{"Commits":[{"Sha1":"74743c4c0 {"Commits":[{"Sha1":"74743c4c025d7856d53d0137acf18e1987f6160b","Message":"1\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-08-26T10:00:53+08:00"}],"HeadCommit":{"Sha1":"74743c4c025d7856d53d0137acf18e1987f6160b","Message":"1\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-08-26T10:00:53+08:00"},"CompareURL":"vodtest/pay/compare/15138dd714a5eb59d63eac73fe6d0eb0f3df2c68...74743c4c025d7856d53d0137acf18e1987f6160b","Len":1}...
|
1787709661
|
Edit
Delete
|
|
25988
|
1
|
5
|
7
|
21
|
0
|
0
|
refs/heads/pay-260818
|
0
|
{"Commits":[{"Sha1":"74743c4c0 {"Commits":[{"Sha1":"74743c4c025d7856d53d0137acf18e1987f6160b","Message":"1\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-08-26T10:00:53+08:00"}],"HeadCommit":{"Sha1":"74743c4c025d7856d53d0137acf18e1987f6160b","Message":"1\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-08-26T10:00:53+08:00"},"CompareURL":"vodtest/pay/compare/15138dd714a5eb59d63eac73fe6d0eb0f3df2c68...74743c4c025d7856d53d0137acf18e1987f6160b","Len":1}...
|
1787709661
|
Edit
Delete
|
|
25989
|
3
|
5
|
7
|
21
|
0
|
0
|
refs/heads/pay-260818
|
0
|
{"Commits":[{"Sha1":"74743c4c0 {"Commits":[{"Sha1":"74743c4c025d7856d53d0137acf18e1987f6160b","Message":"1\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-08-26T10:00:53+08:00"}],"HeadCommit":{"Sha1":"74743c4c025d7856d53d0137acf18e1987f6160b","Message":"1\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-08-26T10:00:53+08:00"},"CompareURL":"vodtest/pay/compare/15138dd714a5eb59d63eac73fe6d0eb0f3df2c68...74743c4c025d7856d53d0137acf18e1987f6160b","Len":1}...
|
1787709661
|
Edit
Delete
|
|
25990
|
4
|
5
|
7
|
21
|
0
|
0
|
refs/heads/pay-260818
|
0
|
{"Commits":[{"Sha1":"74743c4c0 {"Commits":[{"Sha1":"74743c4c025d7856d53d0137acf18e1987f6160b","Message":"1\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-08-26T10:00:53+08:00"}],"HeadCommit":{"Sha1":"74743c4c025d7856d53d0137acf18e1987f6160b","Message":"1\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-08-26T10:00:53+08:00"},"CompareURL":"vodtest/pay/compare/15138dd714a5eb59d63eac73fe6d0eb0f3df2c68...74743c4c025d7856d53d0137acf18e1987f6160b","Len":1}...
|
1787709661
|
Edit
Delete
|
|
25991
|
8
|
5
|
7
|
21
|
0
|
0
|
refs/heads/pay-260818
|
0
|
{"Commits":[{"Sha1":"74743c4c0 {"Commits":[{"Sha1":"74743c4c025d7856d53d0137acf18e1987f6160b","Message":"1\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-08-26T10:00:53+08:00"}],"HeadCommit":{"Sha1":"74743c4c025d7856d53d0137acf18e1987f6160b","Message":"1\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-08-26T10:00:53+08:00"},"CompareURL":"vodtest/pay/compare/15138dd714a5eb59d63eac73fe6d0eb0f3df2c68...74743c4c025d7856d53d0137acf18e1987f6160b","Len":1}...
|
1787709661
|
Edit
Delete
|
|
25992
|
10
|
5
|
7
|
21
|
0
|
0
|
refs/heads/pay-260818
|
0
|
{"Commits":[{"Sha1":"74743c4c0 {"Commits":[{"Sha1":"74743c4c025d7856d53d0137acf18e1987f6160b","Message":"1\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-08-26T10:00:53+08:00"}],"HeadCommit":{"Sha1":"74743c4c025d7856d53d0137acf18e1987f6160b","Message":"1\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-08-26T10:00:53+08:00"},"CompareURL":"vodtest/pay/compare/15138dd714a5eb59d63eac73fe6d0eb0f3df2c68...74743c4c025d7856d53d0137acf18e1987f6160b","Len":1}...
|
1787709661
|
Edit
Delete
|
|
25993
|
11
|
5
|
7
|
21
|
0
|
0
|
refs/heads/pay-260818
|
0
|
{"Commits":[{"Sha1":"74743c4c0 {"Commits":[{"Sha1":"74743c4c025d7856d53d0137acf18e1987f6160b","Message":"1\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-08-26T10:00:53+08:00"}],"HeadCommit":{"Sha1":"74743c4c025d7856d53d0137acf18e1987f6160b","Message":"1\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-08-26T10:00:53+08:00"},"CompareURL":"vodtest/pay/compare/15138dd714a5eb59d63eac73fe6d0eb0f3df2c68...74743c4c025d7856d53d0137acf18e1987f6160b","Len":1}...
|
1787709661
|
Edit
Delete
|
|
31190
|
5
|
5
|
5
|
116
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"748492c2a {"Commits":[{"Sha1":"748492c2a1013dbf03b6234f2a85dea73af7e9e6","Message":"chore(reports): fact-pii / gate-flow / ci-mirror 三份回绑 @ bb26784\n\n经 governance/rebind-reports.mjs 在 HEAD 的临时干净检出里重跑,三份均绑 bb26784 /\nworktreeDirty=false:\n\n fact-pii 21 个 Fact / 116 个字段,0 处 PII 形状与开放结构,25 个自由文本登账待裁\n gate-flow 47 个脚本、35 个有消费入口(新门禁已被推导为在链上),12 个流外且已具名\n ci-mirror 规范化 462 行逐行相同(两份工作流同步加了 check:fact-pii)\n\n后两份的作用域含本轮改动的 package.json 与两份 workflow,故一并回绑。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-18T16:28:00-07:00"},{"Sha1":"bb26784b4f44517b57389d78fbfacac5915a0317","Message":"feat(治理): 补上 check:fact-pii——仓纪律 4 的三件事里,Fact payload 禁 PII 此前无人守\n\n纪律 4 把三件事并列:禁 ^/~(check:pins 守)、禁跨模块 import(check:module-imports 守)、\nFact payload 禁止复制 PII(**没有任何机器在守**)。check:facts 只校验「声明的 Fact 类型是否\n登记」,从不看 payload 里装什么——往某个 Fact schema 加一个 user_email 字段,全链门禁一片绿。\nFact 是跨域流转的事件:个人信息应当留在权威域里按权限查,不随事件复制到每个消费者的\nInbox 与审计链上。\n\n两条判红:\n\n PII_SHAPED_KEY 字段名命中 PII 模式且未显式豁免。按 (^|_)pattern($|_) 的词边界匹配——\n 裸子串会让 principal_id(princ-ip-al)、storage_kind(stor-age)误报,\n 门禁第一天就会被当成坏了而绕过。测试钉住了这一条。\n UNBOUNDED_PAYLOAD 对象缺 properties 或未禁 additionalProperties。这条不是锦上添花:\n 开放结构能装任意键,键名规则对它完全无效,不堵住它前一条只是君子协定。\n\n一条**不判红**:unconstrainedText——无 enum/pattern/format 约束的字符串字段(现有 25 个,\nbuyer_snapshot 这种名字含糊、maxLength 200 的自由文本最典型)。它们确实是 PII 的入口,\n但「这个字段实际装什么」是业务语义。这 25 个字段**全部没有 description**,我写不出可靠的\n豁免理由,编造 25 条登记只会污染治理真源。如实登账进报告,留给人裁定。\n\n判据单源是 governance/fact-pii-rules.json(63 条模式 + 豁免登记),不写死在脚本里——\nPII 形状会随业务扩张,写死就意味着每次扩张都要改门禁代码并重跑它的测试。与 otel-attributes.json\n同思路。豁免按 \u003cFact\u003e:\u003c字段路径\u003e 登记,不是裸键名:同名字段在不同 Fact 里性质可以不同。\n\n扫描面含 contracts/candidates/facts——候选必须一起扫,否则 PII 字段可以先进候选、\n再随批准转正,绕开本门禁。不扫 compatibility/baselines:历史兼容基线按定义不可改,报红也无从修。\n\n接入:根 check 链(check:facts 之后)、两份 CI 工作流(check:ci-mirror 守逐行一致,462 行通过)、\nevidence-scopes 作用域登记。本机实测:21 个 Fact / 116 字段 0 违规;篡改必红两种形态\n(加 PII 字段、改开放结构)均 exit 1,还原后 exit 0;门禁测试 8 例全过。\n\n顺带把纪律 4 里 check:pins 的判据范围写明为 @juhai/* —— 原措辞未限定,读起来像全仓禁 ^/~。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-18T16:26:28-07:00"}],"HeadCommit":{"Sha1":"748492c2a1013dbf03b6234f2a85dea73af7e9e6","Message":"chore(reports): fact-pii / gate-flow / ci-mirror 三份回绑 @ bb26784\n\n经 governance/rebind-reports.mjs 在 HEAD 的临时干净检出里重跑,三份均绑 bb26784 /\nworktreeDirty=false:\n\n fact-pii 21 个 Fact / 116 个字段,0 处 PII 形状与开放结构,25 个自由文本登账待裁\n gate-flow 47 个脚本、35 个有消费入口(新门禁已被推导为在链上),12 个流外且已具名\n ci-mirror 规范化 462 行逐行相同(两份工作流同步加了 check:fact-pii)\n\n后两份的作用域含本轮改动的 package.json 与两份 workflow,故一并回绑。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-09-18T16:28:00-07:00"},"CompareURL":"luoanwu/enterprise-platform/compare/832a54f24c1bf763ba06cf5513f7f7bd53b28e45...748492c2a1013dbf03b6234f2a85dea73af7e9e6","Len":2}...
|
1789774131
|
Edit
Delete
|
|
36995
|
5
|
5
|
5
|
117
|
0
|
0
|
refs/heads/main
|
0
|
{"Commits":[{"Sha1":"7488db538 {"Commits":[{"Sha1":"7488db5382801e9890884e9ae4c181838268d45e","Message":"docs(CHG-042): 草案加入物包 0.3.0 的发行池与券,改为 49 个实体(仍待 Catalog Owner 签)\n\n- 02 七域认领清单 §2.2 新增 VoucherPool、Voucher(物包 0.3.0,标签 thing@0.3.0,已发 04、未合入),用户 10-12 同意并入本草案。\n- 承载一行更新为当前装载状态。\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-10-12T15:10:13-07:00"}],"HeadCommit":{"Sha1":"7488db5382801e9890884e9ae4c181838268d45e","Message":"docs(CHG-042): 草案加入物包 0.3.0 的发行池与券,改为 49 个实体(仍待 Catalog Owner 签)\n\n- 02 七域认领清单 §2.2 新增 VoucherPool、Voucher(物包 0.3.0,标签 thing@0.3.0,已发 04、未合入),用户 10-12 同意并入本草案。\n- 承载一行更新为当前装载状态。\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","AuthorEmail":"hillao@juhailaoluodeMacBook-Pro.local","AuthorName":"juhailaoluo pro","CommitterEmail":"hillao@juhailaoluodeMacBook-Pro.local","CommitterName":"juhailaoluo pro","Timestamp":"2026-10-12T15:10:13-07:00"},"CompareURL":"luoanwu/platform-governance/compare/122b4edaf82b48b26226fd6ba58cc5c2b19966e8...7488db5382801e9890884e9ae4c181838268d45e","Len":1}...
|
1791843015
|
Edit
Delete
|
|
22059
|
7
|
5
|
7
|
22
|
0
|
0
|
refs/heads/app-260818
|
0
|
{"Commits":[{"Sha1":"7489248f1 {"Commits":[{"Sha1":"7489248f158d093f0329623aca504f12d5f80f06","Message":"美团直连预订不可变更\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-08-12T14:26:31+08:00"}],"HeadCommit":{"Sha1":"7489248f158d093f0329623aca504f12d5f80f06","Message":"美团直连预订不可变更\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-08-12T14:26:31+08:00"},"CompareURL":"vodtest/app/compare/f997ee1899d6bc5f8aeac2e2a82fd17162202af9...7489248f158d093f0329623aca504f12d5f80f06","Len":1}...
|
1786515996
|
Edit
Delete
|
|
22060
|
9
|
5
|
7
|
22
|
0
|
0
|
refs/heads/app-260818
|
0
|
{"Commits":[{"Sha1":"7489248f1 {"Commits":[{"Sha1":"7489248f158d093f0329623aca504f12d5f80f06","Message":"美团直连预订不可变更\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-08-12T14:26:31+08:00"}],"HeadCommit":{"Sha1":"7489248f158d093f0329623aca504f12d5f80f06","Message":"美团直连预订不可变更\n","AuthorEmail":"11833999+littlemaidi@user.noreply.gitee.com","AuthorName":"LITTLEMAIDI","CommitterEmail":"11833999+littlemaidi@user.noreply.gitee.com","CommitterName":"LITTLEMAIDI","Timestamp":"2026-08-12T14:26:31+08:00"},"CompareURL":"vodtest/app/compare/f997ee1899d6bc5f8aeac2e2a82fd17162202af9...7489248f158d093f0329623aca504f12d5f80f06","Len":1}...
|
1786515996
|
Edit
Delete
|