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

推荐订阅源

Blog — PlanetScale
Blog — PlanetScale
Vercel News
Vercel News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
量子位
Y
Y Combinator Blog
IT之家
IT之家
博客园 - 聂微东
L
LangChain Blog
爱范儿
爱范儿
H
Help Net Security
GbyAI
GbyAI
F
Fortinet All Blogs
B
Blog
Microsoft Security Blog
Microsoft Security Blog
罗磊的独立博客
C
Check Point Blog
博客园 - 三生石上(FineUI控件)
小众软件
小众软件
D
DataBreaches.Net
Last Week in AI
Last Week in AI
WordPress大学
WordPress大学
B
Blog RSS Feed
酷 壳 – CoolShell
酷 壳 – CoolShell
宝玉的分享
宝玉的分享

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: tighten gateway send assertions · openclaw/openclaw...
steipete · 2026-05-11 · via Recent Commits to openclaw:main
Original file line numberDiff line numberDiff line change

@@ -319,15 +319,20 @@ describe("sanitizeSystemRunParamsForForwarding", () => {

319319

const forwarded = result.params as Record<string, unknown>;

320320

expect(forwarded.command).toEqual(["/usr/bin/echo", "SAFE"]);

321321

expect(forwarded.rawCommand).toBe("/usr/bin/echo SAFE");

322-

expect(forwarded.systemRunPlan).toEqual(

323-

expect.objectContaining({

324-

argv: ["/usr/bin/echo", "SAFE"],

325-

cwd: "/real/cwd",

326-

commandText: "/usr/bin/echo SAFE",

327-

agentId: "main",

328-

sessionKey: "agent:main:main",

329-

}),

330-

);

322+

const systemRunPlan = forwarded.systemRunPlan as

323+

| {

324+

argv?: string[];

325+

cwd?: string;

326+

commandText?: string;

327+

agentId?: string;

328+

sessionKey?: string;

329+

}

330+

| undefined;

331+

expect(systemRunPlan?.argv).toEqual(["/usr/bin/echo", "SAFE"]);

332+

expect(systemRunPlan?.cwd).toBe("/real/cwd");

333+

expect(systemRunPlan?.commandText).toBe("/usr/bin/echo SAFE");

334+

expect(systemRunPlan?.agentId).toBe("main");

335+

expect(systemRunPlan?.sessionKey).toBe("agent:main:main");

331336

expect(forwarded.cwd).toBe("/real/cwd");

332337

expect(forwarded.agentId).toBe("main");

333338

expect(forwarded.sessionKey).toBe("agent:main:main");

Original file line numberDiff line numberDiff line change

@@ -332,12 +332,8 @@ describe("config shared auth disconnects", () => {

332332
333333

await configHandlers["config.patch"](options);

334334
335-

expect(restartSentinelMocks.writeRestartSentinel).toHaveBeenCalledWith(

336-

expect.objectContaining({

337-

sessionKey: "agent:main:main",

338-

}),

339-

);

340335

const payload = restartSentinelMocks.writeRestartSentinel.mock.calls.at(-1)?.[0];

336+

expect(payload?.sessionKey).toBe("agent:main:main");

341337

expect(payload?.continuation).toBeUndefined();

342338

});

343339

});

Original file line numberDiff line numberDiff line change

@@ -787,13 +787,10 @@ describe("gateway send mirroring", () => {

787787

idempotencyKey: "idem-send-options",

788788

});

789789
790-

expect(mocks.deliverOutboundPayloads).toHaveBeenCalledWith(

791-

expect.objectContaining({

792-

forceDocument: true,

793-

silent: true,

794-

formatting: { parseMode: "HTML" },

795-

}),

796-

);

790+

const options = mocks.deliverOutboundPayloads.mock.calls[0]?.[0];

791+

expect(options?.forceDocument).toBe(true);

792+

expect(options?.silent).toBe(true);

793+

expect(options?.formatting).toEqual({ parseMode: "HTML" });

797794

});

798795
799796

it("updates mirror session keys and delivery thread ids when Slack routing derives a thread", async () => {

@@ -1098,7 +1095,7 @@ describe("gateway send mirroring", () => {

10981095

});

10991096
11001097

expect(firstRespondCall(respond)?.[0]).toBe(true);

1101-

expect(capturedMediaLocalRoots).toEqual(expect.arrayContaining([TEST_AGENT_WORKSPACE]));

1098+

expect(capturedMediaLocalRoots).toContain(TEST_AGENT_WORKSPACE);

11021099

});

11031100
11041101

it("forces senderIsOwner=false for narrowly-scoped callers but honors it for full operators", async () => {

Original file line numberDiff line numberDiff line change

@@ -2303,13 +2303,23 @@ describe("gateway healthHandlers.health cache freshness", () => {

23032303

isWebchatConnect: () => false,

23042304

});

23052305
2306-

expect(mockCallArg(respond, 0, 1)).toMatchObject({

2307-

modelPricing: {

2308-

state: "degraded",

2309-

detail: "OpenRouter pricing fetch failed: TypeError: fetch failed",

2310-

sources: [{ source: "openrouter", state: "degraded", lastFailureAt: 123 }],

2311-

},

2312-

});

2306+

const payload = mockCallArg(respond, 0, 1) as

2307+

| {

2308+

modelPricing?: {

2309+

state?: string;

2310+

detail?: string;

2311+

sources?: Array<{ source?: string; state?: string; lastFailureAt?: number }>;

2312+

};

2313+

}

2314+

| undefined;

2315+

expect(payload?.modelPricing?.state).toBe("degraded");

2316+

expect(payload?.modelPricing?.detail).toBe(

2317+

"OpenRouter pricing fetch failed: TypeError: fetch failed",

2318+

);

2319+

expect(payload?.modelPricing?.sources).toHaveLength(1);

2320+

expect(payload?.modelPricing?.sources?.[0]?.source).toBe("openrouter");

2321+

expect(payload?.modelPricing?.sources?.[0]?.state).toBe("degraded");

2322+

expect(payload?.modelPricing?.sources?.[0]?.lastFailureAt).toBe(123);

23132323

expect(mockCallArg(respond, 0, 3)).toEqual({ cached: true });

23142324

expect(refreshHealthSnapshot).toHaveBeenCalledWith({

23152325

probe: false,

Original file line numberDiff line numberDiff line change

@@ -151,10 +151,8 @@ describe("sessions_send gateway loopback", () => {

151151

| { lane?: string; inputProvenance?: { kind?: string; sourceTool?: string } }

152152

| undefined;

153153

expect(firstCall?.lane).toMatch(/^nested(?::|$)/);

154-

expect(firstCall?.inputProvenance).toMatchObject({

155-

kind: "inter_session",

156-

sourceTool: "sessions_send",

157-

});

154+

expect(firstCall?.inputProvenance?.kind).toBe("inter_session");

155+

expect(firstCall?.inputProvenance?.sourceTool).toBe("sessions_send");

158156

});

159157

});

160158