docs(判据): 补「已知限制」与「缺省语义登记」两节;build.sh 把原始 dep/=> 行写进 BUILD_INFO
pi 2026-09-14 两件: 1. **登记册真的没有**。我上封信说"已写进 test/CRITERIA.md 的已知限制一节"——**不成立**, 只有 `appearance-defaults.test.mjs` 里有那段注释。已在 CRITERIA.md 补 §9「已知限制」 (标识符只解析一层;静态判据的到期前提是"本工作区能装能点")。 过度声明自己做过什么是这轮反复出现的那一类错,这次是同一个形状的又一例。 2. **新建 §10「缺省语义登记处」**(pi 的更正:不是无条件 fail-closed,而是"缺了的后果必须 有人登记 + 写明谁批准了这个方向")。三条入库,各带依据: · 邮件 `permission_mode` 缺 → **不写、不改档**(窄),依据是本轮那个 `|| 'workspace'` 兜窄档的坑; · HomeAgent `plugin.json.sdk` 缺 → 内核**不读**(不是语义,是文档),依据内核 manifest.go 结构体 + registry.go; · HomeAgent `capabilities` 缺 → **不受限**(宽),依据内核注释明写的理由:17 个存量清单都没有它。 3. `build/BUILD_INFO.txt` 现在**原文贴入** `go version -m <内核>` 的输出,并附"这两行怎么读" (`dep … vX.Y.Z` 后面跟 `=> … (devel)` 时那串版本号只是 require 行残留;`=>` 必须按模块名联接)。 理由:这场争论的全部内容就是这两行该怎么读,原始证据必须和结论放在一起。
This commit is contained in:
@ -101,11 +101,22 @@ BIN="build/plugin.bin"
|
||||
[[ -f "$BIN" ]] || die "没找到产物 $BIN"
|
||||
echo "[build] 产物:$BIN($(stat -c%s "$BIN") 字节)"
|
||||
echo "[build] 本次身份:SDK=$SDK_DIR hash=$SDK_HASH version=${SDK_VER:-未知}"
|
||||
# 原始证据与结论放在一起(pi 2026-09-14):这场争论的全部内容就是
|
||||
# "`dep` 行与 `=>` 行该怎么读",把两行原文贴进来,下一个人不必重演。
|
||||
cat > build/BUILD_INFO.txt <<EOF
|
||||
sdkDir=$SDK_DIR
|
||||
sdkHash=$SDK_HASH
|
||||
sdkMetaVersion=${SDK_VER:-unknown}
|
||||
builtAt=$(date -Iseconds)
|
||||
|
||||
# --- 以下是 \`go version -m $KERNEL_BIN\` 的原文(原样,不改写)---
|
||||
${KERNEL_INFO:-(取不到:$KERNEL_BIN 不可读或 go 不在 PATH)}
|
||||
|
||||
# 怎么读这两行(这一轮踩过的坑):
|
||||
# · \`dep <mod> vX.Y.Z\` 后面若跟着 \`=> <dir> (devel)\`,那个 vX.Y.Z 只是 require 行
|
||||
# 的**文本残留**,不代表实际编译用的代码;本次的 SDK 源码以上面的 sdkDir/sdkHash 为准。
|
||||
# · \`=>\` 必须按**模块名联接**读取(先定位 SDK 的 dep 行,只接受紧跟其后那条),
|
||||
# 不能取"整份输出里第一个 =>"。
|
||||
EOF
|
||||
echo "[build] 已写 build/BUILD_INFO.txt —— 部署后请回看内核日志确认握手:"
|
||||
echo " grep -a 'mail-bridge' /home/newqqagent/log/homed_*.log | tail -5"
|
||||
|
||||
Reference in New Issue
Block a user