



















@@ -349,6 +349,16 @@ assert_no_dep_sentinel() {
349349 fi
350350}
351351352+assert_no_install_stage() {
353+ local channel="$1"
354+ local stage="$package_root/dist/extensions/$channel/.openclaw-install-stage"
355+ if [ -e "$stage" ]; then
356+ echo "install stage should be cleaned after activation for $channel" >&2
357+ find "$stage" -maxdepth 4 -type f | sort | head -80 >&2 || true
358+ exit 1
359+ fi
360+}
361+352362echo "Starting baseline gateway with OpenAI configured..."
353363write_config baseline
354364start_gateway "/tmp/openclaw-$CHANNEL-baseline.log"
@@ -362,13 +372,15 @@ start_gateway "/tmp/openclaw-$CHANNEL-first.log"
362372wait_for_gateway_health
363373assert_installed_once "/tmp/openclaw-$CHANNEL-first.log" "$CHANNEL" "$DEP_SENTINEL"
364374assert_dep_sentinel "$CHANNEL" "$DEP_SENTINEL"
375+assert_no_install_stage "$CHANNEL"
365376assert_channel_status "$CHANNEL"
366377stop_gateway
367378368379echo "Restarting gateway again; $CHANNEL deps must stay installed..."
369380start_gateway "/tmp/openclaw-$CHANNEL-second.log"
370381wait_for_gateway_health
371382assert_not_installed "/tmp/openclaw-$CHANNEL-second.log" "$CHANNEL"
383+assert_no_install_stage "$CHANNEL"
372384assert_channel_status "$CHANNEL"
373385stop_gateway
374386@@ -505,44 +517,20 @@ start_gateway() {
505517 exit 1
506518}
507519508-wait_for_gateway_health() {
509- for _ in $(seq 1 120); do
510- if runuser -u appuser -- env HOME=/home/appuser openclaw gateway health --url "ws://127.0.0.1:$PORT" --token "$TOKEN" --json >/dev/null 2>&1; then
520+wait_for_slack_provider_start() {
521+ for _ in $(seq 1 180); do
522+ if grep -Eq "\\[slack\\] \\[default\\] starting provider|An API error occurred: invalid_auth" /tmp/openclaw-root-owned-gateway.log; then
511523 return 0
512524 fi
513- sleep 0.25
525+ sleep 1
514526 done
515- echo "timed out waiting for gateway health" >&2
516- return 1
517-}
518-519-assert_channel_status() {
520- local out="/tmp/openclaw-root-owned-channel-status.json"
521- runuser -u appuser -- env HOME=/home/appuser openclaw gateway call channels.status \
522- --url "ws://127.0.0.1:$PORT" \
523- --token "$TOKEN" \
524- --timeout 30000 \
525- --json \
526- --params '{"probe":false}' >"$out"
527- if ! node - <<'NODE' "$out" "$CHANNEL"
528-const fs = require("node:fs");
529-const raw = JSON.parse(fs.readFileSync(process.argv[2], "utf8"));
530-const payload = raw.result ?? raw.data ?? raw;
531-const channel = process.argv[3];
532-if (!payload.channels || !payload.channels[channel]) {
533- throw new Error(`missing channels.${channel}\n${JSON.stringify(raw, null, 2).slice(0, 4000)}`);
534-}
535-console.log(`${channel} channel plugin visible`);
536-NODE
537- then
538- cat /tmp/openclaw-root-owned-gateway.log >&2
539- exit 1
540- fi
527+ echo "timed out waiting for slack provider startup" >&2
528+ cat /tmp/openclaw-root-owned-gateway.log >&2
529+ exit 1
541530}
542531543532start_gateway /tmp/openclaw-root-owned-gateway.log
544-wait_for_gateway_health
545-assert_channel_status
533+wait_for_slack_provider_start
546534547535if [ -e "$root/dist/extensions/$CHANNEL/node_modules/$DEP_SENTINEL/package.json" ]; then
548536 echo "root-owned package tree was mutated" >&2
@@ -555,6 +543,22 @@ if ! find "$OPENCLAW_PLUGIN_STAGE_DIR" -maxdepth 12 -path "*/node_modules/$DEP_S
555543 cat /tmp/openclaw-root-owned-gateway.log >&2
556544 exit 1
557545fi
546+if [ -e "$root/dist/extensions/node_modules/openclaw/package.json" ]; then
547+ echo "root-owned package tree was mutated with SDK alias" >&2
548+ find "$root/dist/extensions/node_modules/openclaw" -maxdepth 4 -type f | sort | head -80 >&2 || true
549+ exit 1
550+fi
551+if ! find "$OPENCLAW_PLUGIN_STAGE_DIR" -maxdepth 12 -path "*/dist/extensions/node_modules/openclaw/package.json" -type f | grep -q .; then
552+ echo "missing external staged openclaw/plugin-sdk alias" >&2
553+ find "$OPENCLAW_PLUGIN_STAGE_DIR" -maxdepth 12 -type f | sort | head -120 >&2 || true
554+ cat /tmp/openclaw-root-owned-gateway.log >&2
555+ exit 1
556+fi
557+if grep -Eq "failed to install bundled runtime deps|Cannot find package 'openclaw'|Cannot find module 'openclaw/plugin-sdk'" /tmp/openclaw-root-owned-gateway.log; then
558+ echo "root-owned gateway hit bundled runtime dependency errors" >&2
559+ cat /tmp/openclaw-root-owned-gateway.log >&2
560+ exit 1
561+fi
558562559563echo "root-owned global install Docker E2E passed"
560564EOF
@@ -962,6 +966,7 @@ command -v openclaw >/dev/null
962966baseline_root="$(package_root)"
963967test -d "$baseline_root/dist/extensions/telegram"
964968test -d "$baseline_root/dist/extensions/feishu"
969+test -d "$baseline_root/dist/extensions/acpx"
965970966971echo "Replicating configured Telegram missing-runtime state..."
967972write_config telegram
@@ -1026,6 +1031,14 @@ cat /tmp/openclaw-update-memory-lancedb.json
10261031assert_update_ok /tmp/openclaw-update-memory-lancedb.json "$candidate_version"
10271032assert_dep_available memory-lancedb @lancedb/lancedb
102810331034+echo "Removing ACPX runtime package and rerunning same-version update path..."
1035+remove_runtime_dep acpx acpx
1036+assert_no_dep_available acpx acpx
1037+run_update_and_capture acpx /tmp/openclaw-update-acpx.json
1038+cat /tmp/openclaw-update-acpx.json
1039+assert_update_ok /tmp/openclaw-update-acpx.json "$candidate_version"
1040+assert_dep_available acpx acpx
1041+10291042echo "bundled channel runtime deps Docker update E2E passed"
10301043EOF
10311044then
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。