fix(chv-muse-r12fix-4): detect_checkout 接进 CDP broker(P10)

R12 真机:detect_checkout 在 chv-guest/、host.py、
executor.py 里零引用,结账页无任何拦截。按 P10 gap §4.1
接线:broker 加载 cloud/chv/checkout_detect.py(同目录
优先,仓库路径兜底;缺失时降级关闭检测、写警告,绝不
crash-loop);snapshot() 每次重算 verdict(aria 行拼伪节点,
与 _form_risk 同形),open() 导航前后两道门——落点是结账
页时返回 form_submit ask 并暂停,上一页是结账页时下一次
导航先审批;ask 批过后同 URL 不再重复 ask(批准即放行,
与 form_risk 同口径);verdict 进 snapshot()/status() 回包。
build.sh:checkout_detect.py 条件拷入 /usr/local/bin/(0644,
P3/P6 同款只警告口径,M4 不硬要求 cloud/),
extra_contents 与两处 lockfile 登记补齐。钱包三腿不在本轮
范围,未动。
This commit is contained in:
host committed 2026-11-08 04:31:36 +00:00
1 parent 1da0d86159
commit 0ebcdfb2a7
7 files changed
+258 -8

No files matched your search

+20
View File
@@ -232,6 +232,16 @@ if [ -f "$REPO_DIR/cloud/chv/privsep.py" ] && [ -f "$REPO_DIR/cloud/chv/safety.p
else
echo "警告:Muse P6 云端叶子模块不在仓库里(cloud/chv/privsep.py 与 safety.py),镜像暂不含 worker 叶子模块" >&2
fi
# P10 云端检测模块(checkout_detect.py)只警告、不失败——
# 与 P3/P6 同款口径(M4 既定 build.sh 不硬要求 cloud/);缺失时
# broker 的结账检测降级关闭(写警告、不 crash-loop),但完整
# 镜像必须含它(extra_contents 与 lockfile 均有登记)。
P10_CHECKOUT_PRESENT=0
if [ -f "$REPO_DIR/cloud/chv/checkout_detect.py" ]; then
P10_CHECKOUT_PRESENT=1
else
echo "警告:Muse P10 结账检测模块不在仓库里(cloud/chv/checkout_detect.py),镜像暂不含 checkout_detect" >&2
fi
if [ "$DRY_RUN" = "0" ]; then
if [ ! -e /dev/kvm ]; then
@@ -412,6 +422,15 @@ if [ "$P6_LIBS_PRESENT" = "1" ]; then
--copy-in "$SCRIPT_DIR/authd_init_stub.py:/usr/local/lib/chv-gitea/cloud/chv/"
--run-command 'mv /usr/local/lib/chv-gitea/cloud/chv/authd_init_stub.py /usr/local/lib/chv-gitea/cloud/chv/__init__.py')
fi
# P10 交接(Muse P10 的结账检测模块,round-12 修复轮项 4):
# 文件在仓库里存在时拷入 /usr/local/bin/ 供 chv-cdp-broker 加载
#(broker 先找同目录,再找仓库 cloud/chv/;0644 即可,broker
# 以 chv-browser 身份读);不存在时只警告、不失败(与 P3/P6
# 同款口径,broker 降级关闭检测、不 crash-loop)。
if [ "$P10_CHECKOUT_PRESENT" = "1" ]; then
VC_ARGS+=(--copy-in "$REPO_DIR/cloud/chv/checkout_detect.py:/usr/local/bin/"
--run-command 'chmod 0644 /usr/local/bin/checkout_detect.py')
fi
# P1 交接(Muse P1 的 vsock_notify.py):文件在仓库里存在时拷入
# 镜像并建 vsock-notify.service(自动启动,round-11 真机修复:
# 此前只拷文件、不建服务,vsock 通道从未自动启动;服务形状按
@@ -488,6 +507,7 @@ else
EXTRA_CONTENTS=""
[ "$P3_LIBS_PRESENT" = "1" ] && EXTRA_CONTENTS="cloud/chv/authd.py,cloud/chv/sentinel.py,cloud/chv/errors.py,cloud/chv/__init__.py"
[ "$P6_LIBS_PRESENT" = "1" ] && EXTRA_CONTENTS="${EXTRA_CONTENTS:+$EXTRA_CONTENTS,}cloud/chv/privsep.py,cloud/chv/safety.py"
[ "$P10_CHECKOUT_PRESENT" = "1" ] && EXTRA_CONTENTS="${EXTRA_CONTENTS:+$EXTRA_CONTENTS,}cloud/chv/checkout_detect.py"
[ "$VSOCK_NOTIFY_PRESENT" = "1" ] && EXTRA_CONTENTS="${EXTRA_CONTENTS:+$EXTRA_CONTENTS,}vsock_notify"
python3 "$SCRIPT_DIR/buildinfo.py" "$OUT" "$TAG" "$UBUNTU_VERSION" "$CODEX_VERSION" "$REPO_COMMIT" "$UBUNTU_IMAGE_SHA256" "${PLAYWRIGHT:-1}" "${CHROMIUM_HEADLESS_SHELL_REV:-}" "$EXTRA_CONTENTS"
fi