|
908
|
18
|
241
|
1
|
|
0
|
第三方库路径
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793871844
|
1793871850
|
1793871850
|
0
|
0
|
0
|
Edit
Delete
|
|
907
|
18
|
240
|
1
|
|
0
|
第三方库路径
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793871827
|
1793871831
|
1793871831
|
0
|
0
|
0
|
Edit
Delete
|
|
906
|
22
|
125
|
1
|
|
0
|
1
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793871801
|
1793871806
|
1793871806
|
0
|
0
|
0
|
Edit
Delete
|
|
905
|
22
|
124
|
1
|
|
0
|
1
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793871786
|
1793871793
|
1793871793
|
0
|
0
|
0
|
Edit
Delete
|
|
904
|
21
|
357
|
1
|
|
0
|
1
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793871761
|
1793871766
|
1793871766
|
0
|
0
|
0
|
Edit
Delete
|
|
903
|
21
|
356
|
1
|
|
0
|
1
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793871747
|
1793871752
|
1793871752
|
0
|
0
|
0
|
Edit
Delete
|
|
902
|
18
|
239
|
1
|
|
0
|
改用 Vue 开发代理,修复走马灯修改门店bug,美团直连移除红字备注
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793864343
|
1793864354
|
1793864354
|
0
|
0
|
0
|
Edit
Delete
|
|
901
|
18
|
238
|
1
|
|
0
|
改用 Vue 开发代理,修复走马灯修改门店bug,美团直连移除红字备注
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793864309
|
1793864322
|
1793864322
|
0
|
0
|
0
|
Edit
Delete
|
|
900
|
23
|
72
|
1
|
|
0
|
创建 Ahead_room_discontinue_rule_model.php
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793864270
|
1793864280
|
1793864280
|
0
|
0
|
0
|
Edit
Delete
|
|
899
|
23
|
71
|
1
|
|
0
|
创建 Ahead_room_discontinue_rule_model.php
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793864236
|
1793864246
|
1793864246
|
0
|
0
|
0
|
Edit
Delete
|
|
898
|
22
|
123
|
1
|
|
0
|
1
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793864207
|
1793864212
|
1793864212
|
0
|
0
|
0
|
Edit
Delete
|
|
897
|
22
|
122
|
1
|
|
0
|
日志增加版本好
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793864188
|
1793864193
|
1793864193
|
0
|
0
|
0
|
Edit
Delete
|
|
896
|
21
|
355
|
1
|
|
0
|
1
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793864000
|
1793864006
|
1793864006
|
0
|
0
|
0
|
Edit
Delete
|
|
895
|
21
|
354
|
1
|
|
0
|
1
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793863976
|
1793863983
|
1793863983
|
0
|
0
|
0
|
Edit
Delete
|
|
894
|
144
|
2
|
1
|
|
0
|
0915 版本内容
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793695809
|
1793695849
|
1793695849
|
0
|
0
|
0
|
Edit
Delete
|
|
893
|
143
|
1
|
1
|
|
0
|
0915版本
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793695768
|
1793695782
|
1793695782
|
0
|
0
|
0
|
Edit
Delete
|
|
892
|
116
|
13
|
5
|
|
0
|
chore(reports): adopt Runtime static originals at chore(reports): adopt Runtime static originals at dc13b515 and clarify evidence snapshot...
|
|
0
|
0
|
0
|
1
|
0
|
|
0
|
1793674166
|
1793710134
|
0
|
0
|
0
|
0
|
Edit
Delete
|
|
891
|
116
|
12
|
5
|
|
0
|
docs: archive IdentityWeb launcher preparation and docs: archive IdentityWeb launcher preparation and independent v2 evidence...
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793674146
|
1793674154
|
1793674154
|
0
|
0
|
0
|
Edit
Delete
|
|
890
|
116
|
11
|
5
|
|
0
|
feat(payment): add candidate provider port and det feat(payment): add candidate provider port and deterministic simulator; verify pure Node safety cases...
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793674092
|
1793674128
|
1793674128
|
0
|
0
|
0
|
Edit
Delete
|
|
889
|
144
|
1
|
1
|
|
0
|
1
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793673556
|
1793673561
|
1793673561
|
0
|
0
|
0
|
Edit
Delete
|
|
888
|
116
|
10
|
5
|
|
0
|
docs(credential): 补齐恢复与生产签收待签材料
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793617972
|
1793617980
|
1793617980
|
0
|
0
|
0
|
Edit
Delete
|
|
887
|
146
|
2
|
1
|
|
0
|
1
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793614942
|
1793614948
|
1793614948
|
0
|
0
|
0
|
Edit
Delete
|
|
886
|
116
|
9
|
5
|
|
0
|
docs(credential): 补齐M2真实请求键与双侧授权验收前置
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793610828
|
1793610838
|
1793610838
|
0
|
0
|
0
|
Edit
Delete
|
|
885
|
116
|
8
|
5
|
|
0
|
feat(notification): bind signing credentials to co feat(notification): bind signing credentials to controlled M2 access...
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793610788
|
1793610798
|
1793610798
|
0
|
0
|
0
|
Edit
Delete
|
|
884
|
116
|
7
|
5
|
|
0
|
docs(permission): preserve natural idle discard ev docs(permission): preserve natural idle discard evidence and incomplete recovery...
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793605980
|
1793605990
|
1793605990
|
0
|
0
|
0
|
Edit
Delete
|
|
883
|
116
|
6
|
5
|
|
0
|
fix(notification-client): bind delivery receipts a fix(notification-client): bind delivery receipts and prepare remaining stage inputs...
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793605952
|
1793605961
|
1793605961
|
0
|
0
|
0
|
Edit
Delete
|
|
882
|
22
|
121
|
1
|
|
0
|
1
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793588946
|
1793588953
|
1793588953
|
0
|
0
|
0
|
Edit
Delete
|
|
881
|
116
|
5
|
5
|
|
0
|
ci(diagnostic): 只读核对现有runner的维护边界
|
|
0
|
0
|
0
|
1
|
0
|
|
0
|
1793581907
|
1793596652
|
0
|
0
|
0
|
0
|
Edit
Delete
|
|
880
|
21
|
353
|
1
|
|
0
|
1
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793339813
|
1793339824
|
1793339824
|
0
|
0
|
0
|
Edit
Delete
|
|
879
|
22
|
120
|
1
|
|
0
|
11
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793337094
|
1793337099
|
1793337099
|
0
|
0
|
0
|
Edit
Delete
|
|
878
|
22
|
119
|
1
|
|
0
|
11
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793337069
|
1793337082
|
1793337082
|
0
|
0
|
0
|
Edit
Delete
|
|
877
|
18
|
237
|
1
|
|
0
|
php8.3修复
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793330989
|
1793330996
|
1793330996
|
0
|
0
|
0
|
Edit
Delete
|
|
876
|
18
|
236
|
1
|
|
0
|
php8.3修复
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793330970
|
1793330976
|
1793330976
|
0
|
0
|
0
|
Edit
Delete
|
|
875
|
21
|
352
|
1
|
|
0
|
h5项目验收工单
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793330953
|
1793330958
|
1793330958
|
0
|
0
|
0
|
Edit
Delete
|
|
874
|
21
|
351
|
1
|
|
0
|
h5项目验收工单
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793330937
|
1793330942
|
1793330942
|
0
|
0
|
0
|
Edit
Delete
|
|
873
|
23
|
70
|
1
|
|
0
|
1111
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793330583
|
1793330587
|
1793330587
|
0
|
0
|
0
|
Edit
Delete
|
|
872
|
23
|
69
|
1
|
|
0
|
1111
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793330567
|
1793330572
|
1793330572
|
0
|
0
|
0
|
Edit
Delete
|
|
871
|
83
|
18
|
5
|
|
0
|
feat(personnel): D-13 组织类型字段与宿主 Schema 受控通道(PKG-00 feat(personnel): D-13 组织类型字段与宿主 Schema 受控通道(PKG-006)...
|
> **叠在 #17 之上(#17 又叠在 #13 之上),请按 #13 → #17 → 本 > **叠在 #17 之上(#17 又叠在 #13 之上),请按 #13 → #17 → 本 PR 的顺序合入。** 本 PR 自身只有最后 2 个提交:`4fa64f1`(D-13)、`6912ab7`(报告回绑)。
## 背景
- F1 `OrganizationUnitMoved` 要求 `unit_type` 必填(CHG-061 Q5),而 HR 组织原本没有类型字段。
- 02 已于 10-27 定下词表(D73):采用 CHG-061 的三值,02 侧分别映射为 `BUSINESS_UNIT` / `DEPARTMENT` / `TEAM`。
- 加字段要改 D3 冻结的宿主 `schema.prisma`。用户 2026-10-28 裁定 D-13:开受控通道并实现。
## 内容(对接蓝图 §4.17)
- **D3 受控通道**(`scripts/lib/d3-protection.mjs`):`packageUpdates` 只多放行一个文件,即宿主 `apps/api-nestjs/prisma/schema.prisma`。既有迁移、`migration_lock.toml` 和已退役的 Fastify schema 仍不得登记;结构变更一律以新迁移追加。
- **字段**:组织新增可空的 `unitType`(`ORGANIZATION` / `DEPARTMENT` / `TEAM`)。迁移 `20261028090000_organization_unit_type` 只追加这一列;已有组织的值为 null,不做推断。
- **contracts**(台账 PKG-006):
- 创建时可选,缺省为 null;
- 编辑时省略即保留原值,显式传 null 则清除;
- 命令视图与组织摘要必带该字段;
- 双时间快照读取该字段,D-13 之前的快照读为 null。
- **服务**:创建和编辑写入该字段,仍沿用原有乐观锁和 outbox;当前读取与双时间读取两条路径都输出该字段。
- **Web**:组织增改表单新增「组织类型」,组织详情显示类型。
- **未做**:
- OS 产品副本还没有这一列,登记为 H29。0.19.6 尚未进入 OS main,0.19.7 现在注册不了,等它进入后再随产品版本补上。
- F1 本身:等 contracts 发版后,与 F2–F4 一起实现。
- 已有组织的类型补录:需要业务按实际情况登记。
## 验证(本地,报告绑定 `4fa64f1`、clean)
- `d3-protection` 27/27,新增 2 例;2 个变异探针(去掉放行、放宽到整个 prisma 目录)都判红。
- contracts 232/232,新增 5 例。
- 真实 DB 的 HTTP 测试 3/3,覆盖:带类型 / 不带类型创建;编辑时省略保留、修改、清除;词表外取值返回 400 且不落库;用 `knownAt` 能回看到旧类型。另有 3 个服务层变异探针都判红。
- `check:runtime` 482/482,`check:ui` 46/46(在原有组织增改场景里加入了类型选择和读回),用一次性 PostgreSQL / Redis 跑,跑完已删。
- 静态检查:D3 / schema / migrations / RLS / write-guard 等门禁全部通过;静态链在 O22 处如实停止,`check:governance` 只剩 O22。
- 远端 CI 见本页。
🤖 Generated with [Claude Code](https://claude.com/claude-code)...
|
0
|
0
|
0
|
1
|
0
|
|
0
|
1793194416
|
1793194416
|
0
|
0
|
0
|
0
|
Edit
Delete
|
|
870
|
116
|
4
|
5
|
|
0
|
docs(release): R1 运行器与分支保护变更规格(rc.8 合规发布前置)
|
## 内容
给现役 Gitea / runner 维护者的逐项变更规格,作为 `@juhai/ ## 内容
给现役 Gitea / runner 维护者的逐项变更规格,作为 `@juhai/*` 发布列车 `1.0.0-rc.8` 走合规通道(同源 main 合格 Platform CI → clean tag → `.gitea/workflows/publish-packages.yml`)的前置(R1)。
- 新增 `docs/R1运行器与分支保护变更规格-2026-10-28.md`:
1. Gitea 升到含上游 PR #37119(ActionRunAttempt)的正式版,`MAX_RERUN_ATTEMPTS ≥ 2`,升级前一致性备份与隔离恢复;
2. act_runner 升到下发真实 `GITHUB_RUN_ATTEMPT` 的版本,保持 `ubuntu-latest`、Docker、github.com 访问与 fork Secret 隔离;
3. main 保护 9 个字段逐一对应 `governance/lib/release-ci.mjs` 第 30–31 行;
4. 交付后验收顺序与 rc.8 发布步骤。
- `docs/正式发布材料待办-2026-10-10.md` 顶部加指针。
## 依据(2026-10-28 PDT 只读实测)
- main 最近 15 次 Platform run 全部 failure,均在第一步「Candidate tag」因 `GITHUB_RUN_ATTEMPT` 缺失失败关闭(例:run 26610 @ `485db734d`,`run_attempt=0`,`attempts/1` → 404);runner act_runner v0.2.13;版本 API 仅返回 `development`。
- `branch_protections` 为空列表。
## 影响提示
启用 main 保护后禁止直推(10-21 起 main 首父链 492 个提交中约 435 个为直推),所有会话须改走 PR,且每个 PR 要通过完整 Platform CI;规格要求先有一个 PR 全绿再落规则,避免锁死 main。
## 边界
只改文档;发布门不变,未恢复本地旁路(G-12),未打 tag、未写 Registry、未改服务。`pnpm check:doc-claims` 通过。
🤖 Generated with [Claude Code](https://claude.com/claude-code)...
|
0
|
0
|
0
|
1
|
0
|
|
0
|
1793191041
|
1793191041
|
0
|
0
|
0
|
0
|
Edit
Delete
|
|
869
|
21
|
350
|
1
|
|
0
|
有开启重置二维码的。
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793164924
|
1793164947
|
1793164947
|
0
|
0
|
0
|
Edit
Delete
|
|
868
|
22
|
118
|
1
|
|
0
|
11111
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793164870
|
1793164877
|
1793164877
|
0
|
0
|
0
|
Edit
Delete
|
|
867
|
22
|
117
|
1
|
|
0
|
11111
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793164848
|
1793164854
|
1793164854
|
0
|
0
|
0
|
Edit
Delete
|
|
866
|
22
|
116
|
1
|
|
0
|
需求 手动关房断电 16981
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793164487
|
1793164494
|
1793164494
|
0
|
0
|
0
|
Edit
Delete
|
|
865
|
18
|
235
|
1
|
|
0
|
需求 台球消费结束后断电 17058
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793164230
|
1793164245
|
1793164245
|
0
|
0
|
0
|
Edit
Delete
|
|
864
|
18
|
234
|
1
|
|
0
|
美团商品管理授权
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793163929
|
1793163948
|
1793163948
|
0
|
0
|
0
|
Edit
Delete
|
|
863
|
23
|
68
|
1
|
|
0
|
1111
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793154047
|
1793154053
|
1793154053
|
0
|
0
|
0
|
Edit
Delete
|
|
862
|
23
|
67
|
1
|
|
0
|
1111
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793153904
|
1793153911
|
1793153911
|
0
|
0
|
0
|
Edit
Delete
|
|
861
|
83
|
17
|
5
|
|
0
|
feat(contracts): P1 前置片——CHG-061 三条 HR 事实的载荷与信封 Sc feat(contracts): P1 前置片——CHG-061 三条 HR 事实的载荷与信封 Schema(PKG-005)...
|
> **叠在 #13 之上,请先合 #13。** 本分支已合入更新后的 #13(#13 已含 > **叠在 #13 之上,请先合 #13。** 本分支已合入更新后的 #13(#13 已含 main 上的 #16)。#13 合入后,这里的差异只剩 P1 前置片与报告回绑。
## 为什么重建(2026-10-28)
PR #16 已在 main 上以 PKG-004 落地 V-04(来源域按事实类型;注册表条目的 `source_domain` 须为字面量)。本 PR 原先也用 PKG-004 实现了另一版 V-04,与 #16 冲突。重建时:
- contracts 与台账取 main 版本;
- 去掉本分支自己的 `sourceDomain` 放宽;
- 改按 #16 的注册表类型重做,台账改为 **PKG-005**,蓝图记为 **§4.16**。
## 内容(对接蓝图 §4.16,P1 / H5)
- **contracts**(`packages/contracts/src/enterprise-fact.ts`,台账 PKG-005)
- 新增 `organizationCanonicalIdSchema`(`org_`)。
- 新增 `EmploymentStarted`、`EmploymentTerminated`、`OrganizationUnitStatusChanged` v1 的载荷 Schema,逐字段对应 04 `contracts/schemas/facts/*.v1.json`(CHG-061)。组织状态载荷另要求 `change_kind` 与 `state_after` 一致。
- 三份信封 Schema 保持 ZodObject,`source_domain` 为字面量(hr / organization),满足 #16 的注册表类型(typecheck 已证明),升 pin 后可以直接登记。
- `buildEnterpriseFactEnvelope` 在注册表 Schema 解析之后统一校验两条:载荷里的实体 ID 等于 `entity_id`;组织事实的 `valid_from` 等于 `effective_at`。校验失败抛 ZodError,Relay 记为 `FACT_SCHEMA_INVALID` 并进死信。这条同样约束已登记的 `EmploymentTransferred`;HR 写入时两者本来就相同。
- **刻意不做**:出站注册表、`facts.owns`、生效事务写 Intent。原因是 M6 只认 pinned `@juhai/contracts` 的 Catalog,而 Registry 上最新的 rc.7 只有 11 条事实。发版已交给单独的 04 会话推进,真实发布前须用户同意;HR 侧的请求草稿是 `docs/domain/request-draft-04-contracts-release-chg061-2026-10-28.md`。
- **F1 `OrganizationUnitMoved`**:组织类型词表已由 02 D73 定为 CHG-061 三值(`organization` / `department` / `team`)。HR 加这个字段要改 D3 冻结的宿主 Prisma 和产品迁移,已登记为待裁决 D-13(用户已同意开受控通道并实现,另起 PR)。
- **文档**:蓝图 §4.16、H5 / P1 行,矩阵 #19 按 02 D72 订正(Site / Space / SiteOperator 的现用写点改为 EES 物包),新增 D-13;同步更新 CLAUDE.md G23、CHG 草案和发版请求草稿。
## 验证(本地,报告绑定 `b8f85d3`、clean)
- contracts 227/227(enterprise-fact 24 例,其中新增 8 例)。
- 5 个变异探针各判红:去掉实体 ID 一致、去掉状态一致、去掉 `valid_from` 一致、封装不调用一致性校验、组织事实来源域改为 hr。
- `check:d3` 通过;去掉 PKG-005 后判红(6 项)。
- `check:app-manifest`、`check:contract-consumers`、`check:validation`、lint、typecheck 均通过。
- `check:runtime` 474/474、`check:ui` 46/46,用一次性 PostgreSQL / Redis 跑完已删。静态检查链如实停在 O22,`check:governance` 只剩 O22。
- 远端 CI 结果见本页。
🤖 Generated with [Claude Code](https://claude.com/claude-code)...
|
0
|
0
|
0
|
1
|
0
|
|
0
|
1793153681
|
1793194416
|
0
|
0
|
1
|
0
|
Edit
Delete
|
|
860
|
23
|
66
|
1
|
|
0
|
包厢列表导出改由前端生成Excel
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793153586
|
1793153620
|
1793153620
|
0
|
0
|
0
|
Edit
Delete
|
|
859
|
83
|
16
|
5
|
|
0
|
feat(contracts): 出站事实来源域按事实类型收紧(V-04,D-12 台账 PKG-0 feat(contracts): 出站事实来源域按事实类型收紧(V-04,D-12 台账 PKG-004)...
|
<!--
PR 治理模板。提交前请逐项确认,确保符合 docs/standards 下的 <!--
PR 治理模板。提交前请逐项确认,确保符合 docs/standards 下的工程规范。
CI 会执行:pnpm check(命名 + 单源漂移 + 治理棘轮 + lint + typecheck);
有测试 DB 的流水线另执行 DATABASE_URL=... pnpm check:runtime。
-->
## 变更内容
<!-- 简述这次改了什么、为什么改(聚焦 why) -->
-
## 涉及业务概念
<!-- 列出涉及的业务词典英文名,例如 store / order / verification。参见 docs/domain-glossary.md -->
-
## 检查清单
### 命名一致性
- [ ] 业务概念使用了词典中的标准英文名(未出现 shop/branch/seller/voucher/writeOff 等禁用词)
- [ ] 数据库 snake_case + 复数表名;API/JSON 字段 camelCase;类型 PascalCase;常量 SCREAMING_SNAKE_CASE
- [ ] `pnpm check:naming` 通过
- [ ] `pnpm check:schema` 通过,未新增第二份状态/契约真源
### API / 契约
- [ ] 不涉及 API 变更
- [ ] 新增/修改了 API,路由符合当前生命周期规范:既有 Personnel Core 保持 `/api/personnel/*`,HR v2 领域使用 `/api/v2/{domain}/*`,身份协议使用标准 OIDC 端点
- [ ] 已更新 `packages/contracts` 中的 Zod schema / DTO / 类型(前后端共用同一份)
- [ ] 无破坏前端兼容的字段删除/重命名(如有,已在描述中说明迁移方案)
### 数据库
- [ ] 不涉及数据库变更
- [ ] 新增/修改了表或字段,已通过 migration review(表名复数、字段 snake_case、外键 xxx_id、时间 _at、状态 status)
- [ ] 高增长表已考虑分区;涉及多租户的表带 tenant_id
- [ ] 写链显式带 tenant_id;跨租户读写按 404/隔离口径处理
### 数据库迁移(迁移即代码:版本/顺序/内容/环境/发布/回滚一致)
- [ ] 改 schema.prisma 的同时**已生成并提交 migration**(`pnpm db:migrate:dev --name <change>`),未只改 schema 不落迁移
- [ ] **未修改已发布过的历史 migration 文件**(内容一致:历史不可变,新变更走新迁移)
- [ ] `pnpm check:migrations` 通过(迁移历史在位 / 无未豁免高危 DDL / schema 表、enum、`@map` 列均已落迁移)
- [ ] 破坏性变更(删表/删列/改名/改类型/加 NOT NULL/加唯一约束)走 **expand→migrate→contract** 三阶段,不一次切
- [ ] 大表加索引用 `CREATE INDEX CONCURRENTLY`;大批量回填走 BullMQ 分批任务,不塞进 migration
- [ ] 高危但确需的 DDL 已加 `-- migration-allow:<原因>` 留痕,并在下方回滚方案说明
- [ ] 非开发环境只用 `migrate deploy`(禁止 `db push` / 线上手动 ALTER);发布前 `pnpm db:migrate:status` 无 drift
### 实时 / 队列
- [ ] 不涉及
- [ ] 关键业务事件进入 BullMQ 或持久化事件表(未仅依赖 Redis Pub/Sub)
- [ ] 写库事件与真实写操作在同一 tx 写入 outbox,未在 commit 后旁路 publish
- [ ] 实时通道选型符合规范(订单/看板/通知用 SSE;设备在线/包间控制/IM 用 WebSocket)
### 质量与发布
- [ ] 通过 `pnpm lint` 与 `pnpm typecheck`
- [ ] 通过 `pnpm check:governance`,`reports/*.latest.json` 已刷新且无棘轮回退
- [ ] 涉及写链 / DB / 租户 / 状态机时,通过 `DATABASE_URL=... pnpm check:runtime`,`reports/runtime-acceptance.latest.json` 已刷新
- [ ] 涉及页面或浏览器行为时,`pnpm check:ui` 与 `pnpm check:ui:fastify` 均通过,未只验证一个后端
- [ ] 已补充/更新必要的测试
- [ ] 不需要回滚方案
- [ ] 需要回滚方案,已在下方说明
## 回滚方案 / 其他说明
-
...
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793153388
|
1793191535
|
1793153395
|
0
|
0
|
0
|
Edit
Delete
|