惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Engineering at Meta
Engineering at Meta
D
Docker
IT之家
IT之家
博客园_首页
罗磊的独立博客
V
V2EX
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
美团技术团队
Y
Y Combinator Blog
博客园 - 聂微东
量子位
阮一峰的网络日志
阮一峰的网络日志
GbyAI
GbyAI
Microsoft Security Blog
Microsoft Security Blog
博客园 - Franky
Martin Fowler
Martin Fowler
Jina AI
Jina AI
大猫的无限游戏
大猫的无限游戏
C
Check Point Blog
月光博客
月光博客
G
Google Developers Blog
B
Blog
T
The Blog of Author Tim Ferriss
爱范儿
爱范儿

Recent Commits to openclaw:main

test: merge chat side-result checks · openclaw/openclaw@ddd2c2a test: merge cron history checks · openclaw/openclaw@f7eb746 test: merge responsive navigation shell checks · openclaw/openclaw@c2e4b47 docs(changelog): add codex oauth fixes · openclaw/openclaw@628e6cd test: merge navigation routing cases · openclaw/openclaw@5d8cecb Tests: mock channel registry bundled fallback · openclaw/openclaw@2b08233 Secrets: avoid broad web search discovery for single plugin config · openclaw/openclaw@a464f59 test: merge config view browser checks · openclaw/openclaw@20cf511 fix(status): align oauth health with runtime · openclaw/openclaw@eed7116 feat: add macOS screen snapshots for monitor preview (#67954) thanks … · openclaw/openclaw@f377db1 fix: report shared auth scopes in hello-ok (#67810) thanks @BunsDev · openclaw/openclaw@0b6c39b Auto-reply: avoid eager bundled route fallback · openclaw/openclaw@3ea1bf4 Tests: narrow session binding contract setup · openclaw/openclaw@54e4e16 fix(macOS): enable undo/redo in webchat composer text input (#34962) · openclaw/openclaw@00951dc Tests: speed up channel setup promotion · openclaw/openclaw@82b529a Docs: refresh agent instructions · openclaw/openclaw@5775fe2 fix(auth): serialize OAuth refresh across agents to fix #26322 (#67876) · openclaw/openclaw@8e79080 test: allow ollama public surface boundary test · openclaw/openclaw@7d4f1a6 Docs: add test performance guardrails · openclaw/openclaw@89706d3 Tests: restore context-engine usage proof · openclaw/openclaw@e4c4f95 Tests: slim context engine runtime coverage · openclaw/openclaw@74c198f ci: retry failed custom checkouts · openclaw/openclaw@0ee5baf test: trim duplicate provider auth onboarding cases · openclaw/openclaw@1ffc02e matrix: fix sessions_spawn --thread subagent session spawning (#67643) · openclaw/openclaw@1ce2596 test: reduce auth choice fixture churn · openclaw/openclaw@857b9cd test: mock health status config boundaries · openclaw/openclaw@9d5ab4a test: mock onboard config io boundary · openclaw/openclaw@299694d test: mock legacy state plugin boundaries · openclaw/openclaw@2713089 test: mock channel install boundaries · openclaw/openclaw@b945248 test: mock doctor preview channel boundaries · openclaw/openclaw@b1a3ad4
fix(plugins): mirror SDK alias for staged sidecars · open...
steipete · 2026-04-24 · via Recent Commits to openclaw:main

@@ -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+352362

echo "Starting baseline gateway with OpenAI configured..."

353363

write_config baseline

354364

start_gateway "/tmp/openclaw-$CHANNEL-baseline.log"

@@ -362,13 +372,15 @@ start_gateway "/tmp/openclaw-$CHANNEL-first.log"

362372

wait_for_gateway_health

363373

assert_installed_once "/tmp/openclaw-$CHANNEL-first.log" "$CHANNEL" "$DEP_SENTINEL"

364374

assert_dep_sentinel "$CHANNEL" "$DEP_SENTINEL"

375+

assert_no_install_stage "$CHANNEL"

365376

assert_channel_status "$CHANNEL"

366377

stop_gateway

367378368379

echo "Restarting gateway again; $CHANNEL deps must stay installed..."

369380

start_gateway "/tmp/openclaw-$CHANNEL-second.log"

370381

wait_for_gateway_health

371382

assert_not_installed "/tmp/openclaw-$CHANNEL-second.log" "$CHANNEL"

383+

assert_no_install_stage "$CHANNEL"

372384

assert_channel_status "$CHANNEL"

373385

stop_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

}

542531543532

start_gateway /tmp/openclaw-root-owned-gateway.log

544-

wait_for_gateway_health

545-

assert_channel_status

533+

wait_for_slack_provider_start

546534547535

if [ -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

557545

fi

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

558562559563

echo "root-owned global install Docker E2E passed"

560564

EOF

@@ -962,6 +966,7 @@ command -v openclaw >/dev/null

962966

baseline_root="$(package_root)"

963967

test -d "$baseline_root/dist/extensions/telegram"

964968

test -d "$baseline_root/dist/extensions/feishu"

969+

test -d "$baseline_root/dist/extensions/acpx"

965970966971

echo "Replicating configured Telegram missing-runtime state..."

967972

write_config telegram

@@ -1026,6 +1031,14 @@ cat /tmp/openclaw-update-memory-lancedb.json

10261031

assert_update_ok /tmp/openclaw-update-memory-lancedb.json "$candidate_version"

10271032

assert_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+10291042

echo "bundled channel runtime deps Docker update E2E passed"

10301043

EOF

10311044

then