# CLI 等价性校验豁免清单（v2 重构期间的「有意变更」申报）
# 格式：<文件>:<函数名>  或  <文件>:__toplevel__
# 每条都必须写明理由。没写在这里的差异 = CI 红灯。

# ---- 阶段 1/2：生成物顶层多出两条注释横幅 ----
#   ① 公共函数库横幅（由 build-cli.sh 拼装，勿直接编辑生成物）
#   ② 栈参数横幅（Stack_Web / Vhost_Dir / Web_SSL_Dir / Web_Initd 的声明块，阶段 2 新增）
# 已逐行验证：函数体逐字节不变，顶层差异仅为注释与变量声明，零行为变化。
conf/nextlnmp:__toplevel__
conf/nextlnmpa:__toplevel__
conf/nextlamp:__toplevel__

# ---- 阶段 2 起：conf/cli/common.sh 里的公共函数不再由本校验器把关 ----
# 它们改由 tools/cli-render-check.py 逐栈渲染后与基线逐字节比对（更强的证明），
# 有意升级在 tools/cli-upgrades.txt 申报。本文件继续把关栈专属函数与顶层代码。

# ---- 阶段 3：多版本 PHP 探测/选择收敛为单一事实源 conf/cli/php-select.sh ----
# 原先 CLI 的 Multiple_PHP_Select(258 行) 与 addons.sh 的 Select_PHP(147 行) 是「异名同族」的
# 两份手抄实现，版本表各写一遍——2026-08-24 的「改三处漏一处」事故就出在这里。
# 现在两者都调用同一份 PHP_Multi_Detect / PHP_Multi_Select，新增 PHP 版本只改 MPHP_VERSIONS 一行。
# 选项编号沿用历史约定（2 起对应版本表第 1 项），老用户手感不变；行为由
# tools/test-php-select.sh 的 9 条离线用例把关（含越界/非数字/未安装版本回落）。
conf/nextlnmp:Multiple_PHP_Select
conf/nextlnmp:PHP_Multi_Detect     # 新增：探测函数（片段内嵌进 lnmp CLI）
conf/nextlnmp:PHP_Multi_Select     # 新增：选择函数
addons.sh:Select_PHP               # 147 行 -> 13 行薄包装
addons.sh:__toplevel__             # 新增 . include/php-select.sh 这一行 source

# ---- 栈专属：建站/删站/SSL 三处域名输入循环补 EOF 护栏 ----
# 与 common.sh 那 12 处同源：while :;do ... read domain ... 判「不能为空」，
# read 读到 EOF 时变量仍为空、循环不退出。本机实测删站那处在 </dev/null 下
# 3 秒刷 29 万行；加护栏后同场景 2 行。正常交互不受影响。
conf/nextlnmp:Add_VHost
conf/nextlnmp:Del_VHost
conf/nextlnmp:Add_SSL_Info_Menu
conf/nextlnmpa:Add_VHost
conf/nextlnmpa:Del_VHost
conf/nextlnmpa:Add_SSL_Info_Menu
conf/nextlamp:Add_VHost
conf/nextlamp:Del_VHost
conf/nextlamp:Add_SSL_Info_Menu

# ---- lnmp / lnmpa：HTTP→HTTPS 的 301 改为 ^~ 前缀，并加幂等守卫 ----
# ① 原来插的是 location / { return 301 ... }，但 :80 段里 include 了
#    enable-php.conf，那是正则 location（location ~ \.php）。nginx 的正则 location
#    优先于前缀 location，所以 .php 请求根本轮不到这个 301 —— PHP 站点的绝大多数
#    页面从不跳 HTTPS。改用 ^~ 前缀，命中后 nginx 跳过正则匹配。
# ② 原来无条件插入，同一域名第二次配 SSL 会插出第二个 location /，
#    nginx duplicate location 是致命错误、reload 静默失败，下次重启才全站崩。
#    现在先 grep 再插。
# acme-challenge 用更长的 ^~ 前缀单独放行，证书续期仍可走明文 HTTP。
conf/nextlnmp:Create_SSL_Config
conf/nextlnmpa:Create_SSL_Config
