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

推荐订阅源

罗磊的独立博客
大猫的无限游戏
大猫的无限游戏
WordPress大学
WordPress大学
酷 壳 – CoolShell
酷 壳 – CoolShell
T
Tailwind CSS Blog
Engineering at Meta
Engineering at Meta
MongoDB | Blog
MongoDB | Blog
爱范儿
爱范儿
小众软件
小众软件
MyScale Blog
MyScale Blog
美团技术团队
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
S
SegmentFault 最新的问题
G
Google Developers Blog
Stack Overflow Blog
Stack Overflow Blog
V
V2EX
量子位
云风的 BLOG
云风的 BLOG
A
About on SuperTechFans
阮一峰的网络日志
阮一峰的网络日志
Last Week in AI
Last Week in AI
Martin Fowler
Martin Fowler
C
Check Point Blog
月光博客
月光博客

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
test: harden docker live backend probes · openclaw/opencl...
steipete · 2026-04-23 · via Recent Commits to openclaw:main

@@ -39,6 +39,9 @@ const LIVE = isLiveTestEnabled();

3939

const CLI_LIVE = isTruthyEnvValue(process.env.OPENCLAW_LIVE_CLI_BACKEND);

4040

const CLI_RESUME = isTruthyEnvValue(process.env.OPENCLAW_LIVE_CLI_BACKEND_RESUME_PROBE);

4141

const CLI_DEBUG = isTruthyEnvValue(process.env.OPENCLAW_LIVE_CLI_BACKEND_DEBUG);

42+

const CLI_CI_SAFE_CODEX_CONFIG = isTruthyEnvValue(

43+

process.env.OPENCLAW_LIVE_CLI_BACKEND_USE_CI_SAFE_CODEX_CONFIG,

44+

);

4245

const describeLive = LIVE && CLI_LIVE ? describe : describe.skip;

43464447

const DEFAULT_PROVIDER = "claude-cli";

@@ -47,6 +50,11 @@ const DEFAULT_MODEL =

4750

// The cron/MCP live probe now tolerates more cancelled tool-call retries in CI,

4851

// so the outer test budget needs enough headroom to finish those retries.

4952

const CLI_BACKEND_LIVE_TIMEOUT_MS = 720_000;

53+

const CLI_BACKEND_REQUEST_TIMEOUT_MS = 240_000;

54+

const CLI_BACKEND_AGENT_TIMEOUT_SECONDS = Math.max(

55+

1,

56+

Math.ceil(CLI_BACKEND_REQUEST_TIMEOUT_MS / 1000) - 10,

57+

);

50585159

function logCliBackendLiveStep(step: string, details?: Record<string, unknown>): void {

5260

if (!CLI_DEBUG) {

@@ -248,8 +256,9 @@ describeLive("gateway live (cli backend)", () => {

248256

" Do not include the note in your reply."

249257

: `Reply with exactly: CLI backend OK ${nonce}.`,

250258

deliver: false,

259+

timeout: CLI_BACKEND_AGENT_TIMEOUT_SECONDS,

251260

},

252-

{ expectFinal: true },

261+

{ expectFinal: true, timeoutMs: CLI_BACKEND_REQUEST_TIMEOUT_MS },

253262

);

254263

if (payload?.status !== "ok") {

255264

throw new Error(`agent status=${String(payload?.status)}`);

@@ -299,8 +308,9 @@ describeLive("gateway live (cli backend)", () => {

299308

`What session note did I ask you to remember earlier? ` +

300309

`Reply with exactly: CLI backend SWITCH OK ${switchNonce} <remembered-note>.`,

301310

deliver: false,

311+

timeout: CLI_BACKEND_AGENT_TIMEOUT_SECONDS,

302312

},

303-

{ expectFinal: true },

313+

{ expectFinal: true, timeoutMs: CLI_BACKEND_REQUEST_TIMEOUT_MS },

304314

);

305315

if (switchPayload?.status !== "ok") {

306316

throw new Error(`switch status=${String(switchPayload?.status)}`);

@@ -326,8 +336,9 @@ describeLive("gateway live (cli backend)", () => {

326336

? `Please include the token CLI-RESUME-${resumeNonce} in your reply.`

327337

: `Reply with exactly: CLI backend RESUME OK ${resumeNonce}.`,

328338

deliver: false,

339+

timeout: CLI_BACKEND_AGENT_TIMEOUT_SECONDS,

329340

},

330-

{ expectFinal: true },

341+

{ expectFinal: true, timeoutMs: CLI_BACKEND_REQUEST_TIMEOUT_MS },

331342

);

332343

if (resumePayload?.status !== "ok") {

333344

throw new Error(`resume status=${String(resumePayload?.status)}`);

@@ -368,16 +379,23 @@ describeLive("gateway live (cli backend)", () => {

368379

senderIsOwner: true,

369380

});

370381

logCliBackendLiveStep("cron-mcp-loopback-preflight:done");

371-

logCliBackendLiveStep("cron-mcp-probe:start", { sessionKey });

372-

await verifyCliCronMcpProbe({

373-

client,

374-

providerId,

375-

sessionKey,

376-

port,

377-

token,

378-

env: process.env,

379-

});

380-

logCliBackendLiveStep("cron-mcp-probe:done");

382+

if (providerId === "codex-cli" && CLI_CI_SAFE_CODEX_CONFIG) {

383+

logCliBackendLiveStep("cron-mcp-probe:skipped", {

384+

providerId,

385+

reason: "ci-safe-codex-config",

386+

});

387+

} else {

388+

logCliBackendLiveStep("cron-mcp-probe:start", { sessionKey });

389+

await verifyCliCronMcpProbe({

390+

client,

391+

providerId,

392+

sessionKey,

393+

port,

394+

token,

395+

env: process.env,

396+

});

397+

logCliBackendLiveStep("cron-mcp-probe:done");

398+

}

381399

}

382400

} finally {

383401

logCliBackendLiveStep("cleanup:start");