|
864
|
18
|
234
|
1
|
|
0
|
美团商品管理授权
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793163929
|
1793163948
|
1793163948
|
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
|
|
866
|
22
|
116
|
1
|
|
0
|
需求 手动关房断电 16981
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793164487
|
1793164494
|
1793164494
|
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
|
|
868
|
22
|
118
|
1
|
|
0
|
11111
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793164870
|
1793164877
|
1793164877
|
0
|
0
|
0
|
Edit
Delete
|
|
869
|
21
|
350
|
1
|
|
0
|
有开启重置二维码的。
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793164924
|
1793164947
|
1793164947
|
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
|
|
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
|
|
872
|
23
|
69
|
1
|
|
0
|
1111
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793330567
|
1793330572
|
1793330572
|
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
|
|
874
|
21
|
351
|
1
|
|
0
|
h5项目验收工单
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793330937
|
1793330942
|
1793330942
|
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
|
|
876
|
18
|
236
|
1
|
|
0
|
php8.3修复
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793330970
|
1793330976
|
1793330976
|
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
|
|
878
|
22
|
119
|
1
|
|
0
|
11
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793337069
|
1793337082
|
1793337082
|
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
|
|
880
|
21
|
353
|
1
|
|
0
|
1
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793339813
|
1793339824
|
1793339824
|
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
|
|
882
|
22
|
121
|
1
|
|
0
|
1
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793588946
|
1793588953
|
1793588953
|
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
|
|
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
|
|
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
|
|
886
|
116
|
9
|
5
|
|
0
|
docs(credential): 补齐M2真实请求键与双侧授权验收前置
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793610828
|
1793610838
|
1793610838
|
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
|
|
888
|
116
|
10
|
5
|
|
0
|
docs(credential): 补齐恢复与生产签收待签材料
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793617972
|
1793617980
|
1793617980
|
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
|
|
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
|
|
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
|
|
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
|
|
893
|
143
|
1
|
1
|
|
0
|
0915版本
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793695768
|
1793695782
|
1793695782
|
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
|
|
895
|
21
|
354
|
1
|
|
0
|
1
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793863976
|
1793863983
|
1793863983
|
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
|
|
897
|
22
|
122
|
1
|
|
0
|
日志增加版本好
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793864188
|
1793864193
|
1793864193
|
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
|
|
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
|
|
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
|
|
901
|
18
|
238
|
1
|
|
0
|
改用 Vue 开发代理,修复走马灯修改门店bug,美团直连移除红字备注
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793864309
|
1793864322
|
1793864322
|
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
|
|
903
|
21
|
356
|
1
|
|
0
|
1
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793871747
|
1793871752
|
1793871752
|
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
|
|
905
|
22
|
124
|
1
|
|
0
|
1
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793871786
|
1793871793
|
1793871793
|
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
|
|
907
|
18
|
240
|
1
|
|
0
|
第三方库路径
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793871827
|
1793871831
|
1793871831
|
0
|
0
|
0
|
Edit
Delete
|
|
908
|
18
|
241
|
1
|
|
0
|
第三方库路径
|
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793871844
|
1793871850
|
1793871850
|
0
|
0
|
0
|
Edit
Delete
|
|
759
|
85
|
4
|
4
|
|
0
|
[后台] 按省市统计设备月度新增上线数量报表
|
> 子任务,属于主 Issue #8「按省市统计设备月度新增上线数量报表」
## 关联 De > 子任务,属于主 Issue #8「按省市统计设备月度新增上线数量报表」
## 关联 Design PR
[PR #3 — Design: 按省市统计设备月度新增上线数量报表](https://gitea.g-hi.com/laiqiaojie/jh-project/pulls/3)
## 工作范围
负责后台接口实现:
- 新增查询接口,按月份统计各省份新增上线设备数量
- 支持下钻查询:指定省份,返回城市级别数据
- 按权限过滤:超管返回全国数据,运营商返回自己区域
## 产物
- (实现前提交,Tech Lead 审核后开始 Build)
## 参考
- 需求说明:[design/device-online-stats-by-region.md](https://gitea.g-hi.com/laiqiaojie/jh-project/src/branch/design/device-online-stats-by-region/design/device-online-stats-by-region.md)
- 在线原型:https://claude.ai/code/artifact/b50eaa98-689b-4742-8024-cdf74f95d5c8...
|
1
|
0
|
1
|
0
|
2
|
|
0
|
1787909526
|
1789380193
|
1789380193
|
0
|
1
|
0
|
Edit
Delete
|
|
760
|
85
|
5
|
4
|
|
0
|
[Web] 按省市统计设备月度新增上线数量报表
|
> 子任务,属于主 Issue #8「按省市统计设备月度新增上线数量报表」
## 关联 De > 子任务,属于主 Issue #8「按省市统计设备月度新增上线数量报表」
## 关联 Design PR
[PR #3 — Design: 按省市统计设备月度新增上线数量报表](https://gitea.g-hi.com/laiqiaojie/jh-project/pulls/3)
## 工作范围
负责 Web 前端页面实现:
- 数据报表 → 设备上线分布 页面
- 月份筛选器 + 当月总数卡片 + 省份横向柱状图
- 点击省份下钻到城市视图,支持面包屑返回
## 产物
- plan/device-online-stats-by-region-web.md(实现前提交,Tech Lead 审核后开始 Build)
## 参考
- 需求说明:[design/device-online-stats-by-region.md](https://gitea.g-hi.com/laiqiaojie/jh-project/src/branch/design/device-online-stats-by-region/design/device-online-stats-by-region.md)
- 在线原型:https://claude.ai/code/artifact/b50eaa98-689b-4742-8024-cdf74f95d5c8...
|
1
|
0
|
1
|
0
|
3
|
|
0
|
1787909556
|
1789380193
|
1789380193
|
0
|
1
|
0
|
Edit
Delete
|
|
768
|
85
|
6
|
4
|
|
0
|
[Plan] 按省市统计设备月度新增上线数量报表 (后台管理)
|
Related to #8
## 关联 Issue
[#4 — [后台] 按省市统计设备月度新增 Related to #8
## 关联 Issue
[#4 — [后台] 按省市统计设备月度新增上线数量报表](https://gitea.g-hi.com/laiqiaojie/jh-project/issues/4)
## 说明
补交 Plan 阶段产物(此前误提交到已合并关闭的 design 分支,未能进入 main,见此 PR 重新提交)。
代码已实现并提交:[laiqiaojie/admin#1](https://gitea.g-hi.com/laiqiaojie/admin/pulls/1)
按 REVIEW.md「跳过评审的路径」,`plan/` 产物文件不需要 Tech Lead 单独审核,随此 PR 直接入库。...
|
0
|
0
|
1
|
1
|
1
|
|
0
|
1788245555
|
1789379899
|
1788245966
|
0
|
1
|
0
|
Edit
Delete
|
|
770
|
85
|
7
|
4
|
|
0
|
[Skill] build-complete 新增接口文档归档步骤
|
Related to #8
## 说明
在 `build-complete` skill 里新增 Related to #8
## 说明
在 `build-complete` skill 里新增一步:Plan 阶段确定接口设计后、代码开发完成时,如涉及新增/修改接口,需要生成并归档接口文档:
- Apifox(规范化 OpenAPI 文档,Claude 通过 API 增量导入)
- `docs/frontend-specs/<功能名>.md`(面向其他端的对接说明文档,固定五章结构)
背景:issue #4 实现完成后发现接口文档一直没有归档,靠事后补做;这次把它固化成流程里的正式一步,插在"提交 plan.md"和"开代码 PR"之间。
同时补充了代码仓库与 jh-project 分离时的注意事项(milestone/label 可能不存在、Close #N 跨仓库不生效)。...
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1788247386
|
1789379900
|
1788247940
|
0
|
1
|
0
|
Edit
Delete
|
|
852
|
83
|
9
|
5
|
|
0
|
fix(api): D-10 默认只监听 127.0.0.1,对外暴露须显式设 HOST
|
> 状态说明:本 PR 已于 2026-10-27 合入 `main`(合并提交 `7835e > 状态说明:本 PR 已于 2026-10-27 合入 `main`(合并提交 `7835e3b`),合并时 CI 检查尚未运行;远端 CI 结果以本 PR 的检查为准。
## 概要
执行蓝图 D-10(关闭 H22):HR API 默认只监听 `127.0.0.1`,需要容器或局域网访问时必须显式设 `HOST`(如 `0.0.0.0`,双栈用 `::`)。改动前后都实测了 04 runtime 容器的可达性。记录见 `docs/domain/enterprise-control-plane-integration-blueprint-2026-10-27.md` §4.7。
## 改动
- **监听地址单源** `apps/api-nestjs/src/listen-host.ts`:未设或空 `HOST` → `127.0.0.1`,否则用显式值。`main.ts` 只经 `resolveListenHost()` 取值,启动日志写明是否只在回环上监听。
- **Web 默认目标**:`next.config.ts` 代理与 `useRealtime` 的 WS 默认值从 `localhost:3001` 改为 `127.0.0.1:3001`,避免 `localhost` 先解析到 `::1` 时连不上只听 IPv4 回环的 API;`.claude/launch.json` 同步。
- **防回潮**:`check:dual-backend` 新增 `scripts/lib/listen-host-guard.mjs`(默认值必须是回环,`main.ts` 不得绕过解析函数),node 单测 9 个负例;把默认值改回 `0.0.0.0` 的变异探针判红 2 处。行为单测 `apps/api-nestjs/test/listen-host.test.ts` 3 例。
- **文档同步**:CLAUDE.md(常用命令、运行时拓扑、G23 中 H22 移为已关闭)、README、后端规范、Scope 来源接入、蓝图 §4.7 / H22 / D-10、给 04 的答复草稿、框架同步评估 F-7。
## 实测证据
证据文件:`docs/evidence/d10-listen-host-2026-10-27.json`(本机 Docker Desktop;对 04 容器只做只读 GET,未改 04 的容器或配置)。
**改动前**,用宿主上的最小 HTTP 探针:
| 绑定 | 宿主回环 | 本机局域网 IP | 04 容器经 `host.docker.internal` |
| --- | --- | --- | --- |
| `0.0.0.0` | 可达 | 可达 | 可达 |
| `127.0.0.1` | 可达 | 不可达 | 可达(宿主看到来源 `127.0.0.1`) |
结论:改为回环默认后,04 的 Scope 来源探针(`SCOPE_HR_SOURCE_URL` 指向 `host.docker.internal:65281`)仍可达。
**改动后**,用真实构建的 HR API 配本仓一次性 PostgreSQL/Redis(跑完已删除):
| `HOST` | lsof | 局域网 `/api/health` | 04 容器 `/api/health` |
| --- | --- | --- | --- |
| 未设 | `127.0.0.1` | 不可达 | 200,database/redis up |
| 空串 | `127.0.0.1` | 不可达 | 200,database/redis up |
| `0.0.0.0` | `*` | 200 | 200,database/redis up |
另外,Web 不设 `API_PROXY_TARGET` 时,经 Next 代理访问 `/api/health` 返回 200。
**全量验收**(本地,clean `9c53371`,一次性库,跑完已删,报告无口令命中):
- `check:runtime` 455/455:比 452 多出的是新增的 3 例;冻结行为、多实例 Outbox、依赖故障三项均通过。
- `check:ui` 46/46。
- `check:governance` 仅剩已知两项回退:O22(OS main 不含 0.19.6)、`osProductReleaseTargetRemotes` 2→1;来源指纹违规 0。
- 远端 CI 以本 PR 的运行为准。
**未覆盖**:
- 未用 Scope 来源真实凭据调用签名查询,只证明网络可达。
- Linux 原生 Docker 经 `host-gateway` 连不到宿主回环,这类部署必须显式设 `HOST`。
- 仓外 65281 实例当前无进程;它的源码 `326ae3e` 不读 `HOST`,恢复前须换到含本改动的提交。
- `apps/web` 的 `next dev` / `next start` 仍按 Next 默认监听全部网卡,不在本 PR 范围。
## 待裁:00 框架 F-7
00 框架 `apps/api-nestjs/src/main.ts:8` 仍是 `process.env.HOST ?? "0.0.0.0"`;`backend-standard.md:7`、`COMPATIBILITY.md:45`、ADR-0010 与迁移手册都把 `0.0.0.0` 写成默认,理由是容器内可达。HR 因此有意与框架不同。本 PR 未改框架仓,请框架 Owner 二选一:
- **(a)** 框架也改为回环默认,容器部署在 Dockerfile / compose 里显式设 `HOST=0.0.0.0`。
- **(b)** 维持 `0.0.0.0`,在 `COMPATIBILITY.md` 登记「消费者可偏离为回环」。
无论选哪个,下一次框架同步或叠加仓 `replace: true`(F-5)都不得把 HR 的回环默认冲回去。详见 `docs/framework-sync-assessment-2026-10-27.md` F-7。
## 另外发现(不在本 PR 范围)
- `apps/api-nestjs/docker-compose.yml` 的开发 PostgreSQL(口令为 `app`)与 Redis 映射到 `0.0.0.0`,属同类暴露。
- `CLAUDE.md` 基线表 runtime 行仍是 10-25 的读数 452:报告指纹包含文档,验收后改文档会使报告失效,留待下次改文档时一并更新。
🤖 Generated with [Claude Code](https://claude.com/claude-code)...
|
0
|
0
|
1
|
1
|
0
|
|
0
|
1793111729
|
1793114019
|
1793111736
|
0
|
1
|
0
|
Edit
Delete
|