docs(m84e): register the duplicated board copy that made A and D land on a hidden node

This commit is contained in:
2026-09-18 08:25:47 +08:00
parent 3d3447babb
commit d901f7963c
@@ -192,6 +192,36 @@ Market / Party 已验收页不重做;`M80-I10`、`M61-I05`、`M82-I04` 不动
- **既有失败(非本包回归)**:(`M43 … returned state blocks later Contract`)
与 (`M20 … returned Guild keeps a later Contract closed`)在基线
对照运行中同样失败;本包提交前后行为一致。
## `M84-E`(新开):委托板文字存在**双份实现**,M84-A/M84-D 打在隐藏副本上(2026-09-18 监督方发现)
**事实(代码 + 归档帧双向确认)**
- `guild_page_view.gd` 在 `GuildKioskCopyArea` 里自建 4 个标签(`GuildKioskText` /
`GuildContractReason` / `GuildMarketReason` / `GuildNotice`,:205-246),随后在 :256-257
**把这 4 个整组 `visible = false`**,再在 :258 实例化共享模块
`ui/m52/guild_contract_board.gd`(节点名 `GuildContractBoardContent`),
该模块 `_ready()` **又建了一套同名标签**——**这才是真正渲染的文字**。
- 因此两套同名节点并存;`_check_m84()` 与探针都用 `find_child(name, true, false)`
→ **永远命中先出现的隐藏那套**。
- **归档帧实测**(`m84-notice-semantic/20260918T002054Z-1173` 的 zh_CN final):
遗留模块的四个矩形内全都有文字像素,`GuildNotice` 矩形(y 321..342)内有 **734 个红色像素**
→ 渲染中的告警仍是**旧浅红 `#a94b53`**、旧几何(`Rect2(0.03,0.86,0.94,0.13)`)。
- **结论**:M84-A 的标签重排、字号与 ink 改动,以及 M84-D 的深红令牌 + 字号 8→11,
**都没有作用到实际渲染的文字上**(M84-A 唯一真实生效的是容器 `GuildKioskCopyArea` 的 bounds 外移)。
两个包的 attempt 之所以 PASS,是因为门读的是隐藏副本——**机器门被"同名隐藏副本"骗过**。
**影响面**:`ABGM52GuildContractBoard` 仅被 `guild_page_view.gd` 实例化(已 grep 全仓),
无跨页影响;修复面限于 Guild 页 + 该共享模块 + m53 探针。
**要求的修复(择一,需在计划里写明理由)**
- **A(推荐,单一来源)**:让**页面自建的那套成为唯一来源**——删除 `guild_contract_board.gd` 的实例化
与 `visible=false`,把该模块里页面需要的材质/几何(M65-B 的 ink 令牌、九宫格外框等)合并到页面实现;
或反之**让模块成为唯一来源**并把 M84-A/D 的几何/字号/深红全部移入模块。
两条都必须**消除同名双份**,并在探针里加"同名标签唯一性"断言。
- 探针必须改为**只检查可见且在树内**的标签,并新增断言:同名节点数量 == 1、隐藏副本不存在。
**对既有证据的处置**:M84-A 的 `44c775aa` 与 M84-D 的 `0e7e0aab` 的 PASS 保留(机器门如实通过),
但它们的**产品结论作废**——账本与 checkpoint 的相应描述在 M84-E 中更正。
## Issue register
- `M84-I01` **RESOLVED(M84-D,2026-09-18)**:`GuildNotice` 回迁**语义告警红**,但因浅红对本页载体
不足 4.5:1(四角暗边 3.80 / 文字带 P95 4.46),改用**共享 `COLOR_DANGER_DEEP #8c2f2f`**(5.67 / 6.65:1);