Files
MailUI4Agents/deploy
JianFeeeee e65f41b31b ★ 修本文件自己的大假绿: ③b 的 AGENTMAIL_REQUIRE 检查**只在 source 期跑**,而三个调用者都是**先 source 后赋值** ⇒ 那张表从未被检查过
★ 缺陷(pi b6e24606 实测报回,dsh 独立复核成立):
     install.sh          source 131 / 赋值 135
     redeploy-gateway.sh source  42 / 赋值  46
     redeploy-plugin.sh  source  52 / 赋值  56
   ⇒ source 那一刻表是**空的** ⇒ `if [ -n "${AGENTMAIL_REQUIRE:-}" ]` 直接跳过 ⇒ 整张表从未生效
★ dsh 独立 A/B(同一台同一 shell):
     AGENTMAIL_REQUIRE=__no_such_cmd . env-defaults.sh  ⇒ rc=2(检查本身是好的)
     . env-defaults.sh; AGENTMAIL_REQUIRE=__no_such_cmd ⇒ rc=0(**漏过**)✓ 与 pi 一致
★ 这正是本文件头反复记的那件事落在**本文件自己**身上: **判据在,但走不到**
   —— 与我 60d59f9 造出一个走不到的判据是同一形状,只是这次是"判据在库文件里、而调用相位错开"
★ 修法: 把检查提成 `agentmail_env_check_require()`,**两处都挂**:
     · source 期一次 —— 接"表由**环境**提供"(父进程 export / CI 注入)
     · `agentmail_env_report()` 内再一次 —— 接"表由**调用者**赋值"(本仓三个都是这种)
   不选"改三个调用者的相位": 要改三处,且下一个新调用者还会犯同样的错。
★ ⚠️ 残留缺口(如实申报,不写成"已修好一切"): 若某调用者**既不 export 表、又忘了调
   `agentmail_env_report`**,两次都不跑 ⇒ 仍会漏。闭合它要求本文件知道调用者的控制流,做不到。
★ 验证:
   · A/B 三向: 赋值在 source 后+调 report ⇒ rc=2 ✓/赋值在 source 前 ⇒ rc=2 ✓/命令都在 ⇒ rc=0(非恒红)✓
   · 变异: 删掉 report 体内那次复检 ⇒ rc=0 **退回漏过** ⇒ 证明那次调用**承重** ✓
   · 真调用者端到端: 就地在 redeploy-gateway.sh 表里注入 `__no_such_cmd_zz`
     ⇒ 实跑 rc=2 且报出该名字 ✓;还原后 `缺少命令` 命中 0 ✓(已确认工作区干净)
   · pi 的 env-guard 17/17 绿;四个脚本 bash -n 全过;生产未动
2026-09-25 06:42:32 +08:00
..