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

推荐订阅源

WordPress大学
WordPress大学
Engineering at Meta
Engineering at Meta
D
DataBreaches.Net
月光博客
月光博客
Recent Announcements
Recent Announcements
Google DeepMind News
Google DeepMind News
U
Unit 42
腾讯CDC
爱范儿
爱范儿
J
Java Code Geeks
有赞技术团队
有赞技术团队
Blog — PlanetScale
Blog — PlanetScale
N
Netflix TechBlog - Medium
B
Blog
Stack Overflow Blog
Stack Overflow Blog
GbyAI
GbyAI
T
The Blog of Author Tim Ferriss
小众软件
小众软件
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Y
Y Combinator Blog
大猫的无限游戏
大猫的无限游戏
Microsoft Azure Blog
Microsoft Azure Blog
T
Tailwind CSS 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: guard extension app mock calls · openclaw/openclaw@...
steipete · 2026-05-12 · via Recent Commits to openclaw:main
Original file line numberDiff line numberDiff line change

@@ -71,7 +71,7 @@ describe("azure speech tts", () => {

7171
7272

expect(result).toEqual(Buffer.from("mp3"));

7373

expect(fetchMock).toHaveBeenCalledOnce();

74-

const [url, init] = fetchMock.mock.calls[0] as [string, RequestInit];

74+

const [url, init] = fetchMock.mock.calls.at(0) as [string, RequestInit];

7575

expect(url).toBe("https://eastus.tts.speech.microsoft.com/cognitiveservices/v1");

7676

expect(init.method).toBe("POST");

7777

const headers = new Headers(init.headers);

@@ -109,7 +109,7 @@ describe("azure speech tts", () => {

109109

});

110110
111111

expect(fetchMock).toHaveBeenCalledOnce();

112-

const [url, init] = fetchMock.mock.calls[0] as [string, RequestInit];

112+

const [url, init] = fetchMock.mock.calls.at(0) as [string, RequestInit];

113113

expect(url).toBe("https://custom.example.com/cognitiveservices/voices/list");

114114

expect(new Headers(init.headers).get("Ocp-Apim-Subscription-Key")).toBe("speech-key");

115115

expect(init.signal).toBeInstanceOf(AbortSignal);

Original file line numberDiff line numberDiff line change

@@ -127,14 +127,14 @@ describe("handleClickClackInbound", () => {

127127
128128

expect(runtime.channel.turn.runPrepared).not.toHaveBeenCalled();

129129

expect(runtime.agent.runEmbeddedPiAgent).not.toHaveBeenCalled();

130-

const completionRequest = (runtime.llm.complete as LlmCompleteMock).mock.calls[0]?.[0];

130+

const completionRequest = (runtime.llm.complete as LlmCompleteMock).mock.calls.at(0)?.[0];

131131

expect(completionRequest?.agentId).toBe("service-bot");

132132

expect(completionRequest?.model).toBe("openai/gpt-5.4-mini");

133133

expect(completionRequest?.maxTokens).toBe(96);

134134

expect(completionRequest?.purpose).toBe("clickclack bot reply");

135135

expect(completionRequest?.messages).toEqual([{ role: "user", content: "hello bot" }]);

136136
137-

const sendRequest = sendClickClackTextMock.mock.calls[0]?.[0];

137+

const sendRequest = sendClickClackTextMock.mock.calls.at(0)?.[0];

138138

expect(sendRequest?.accountId).toBe("service");

139139

expect(sendRequest?.to).toBe("channel:chn_1");

140140

expect(sendRequest?.text).toBe("service bot online");

Original file line numberDiff line numberDiff line change

@@ -57,8 +57,8 @@ describe("CodexAppServerClient", () => {

5757

harness.process.stdout.write('{"token":"secret-value"} trailing\n');

5858
5959

await vi.waitFor(() => expect(warn).toHaveBeenCalledTimes(1));

60-

expect(warn.mock.calls[0]?.[0]).toBe("failed to parse codex app-server message");

61-

const metadata = warn.mock.calls[0]?.[1] as

60+

expect(warn.mock.calls.at(0)?.[0]).toBe("failed to parse codex app-server message");

61+

const metadata = warn.mock.calls.at(0)?.[1] as

6262

| {

6363

error?: unknown;

6464

errorMessage?: string;

Original file line numberDiff line numberDiff line change

@@ -229,7 +229,7 @@ describe("maybeCompactCodexAppServerSession", () => {

229229

expect(nativeDetails?.details?.backend).toBe("codex-app-server");

230230

expect(nativeDetails?.details?.threadId).toBe("thread-1");

231231

expect(compact).toHaveBeenCalledTimes(1);

232-

const [compactCall] = compact.mock.calls[0] ?? [];

232+

const [compactCall] = compact.mock.calls.at(0) ?? [];

233233

expect(compactCall).toStrictEqual({

234234

sessionId: "session-1",

235235

sessionKey: "agent:main:session-1",

@@ -242,7 +242,7 @@ describe("maybeCompactCodexAppServerSession", () => {

242242

runtimeContext: { workspaceDir: tempDir, provider: "codex" },

243243

});

244244

expect(maintain).toHaveBeenCalledTimes(1);

245-

const [maintainCall] = maintain.mock.calls[0] ?? [];

245+

const [maintainCall] = maintain.mock.calls.at(0) ?? [];

246246

const maintainParams = maintainCall as

247247

| {

248248

sessionId?: string;

Original file line numberDiff line numberDiff line change

@@ -67,7 +67,7 @@ describe("CodexNativeSubagentTaskMirror", () => {

6767

progressSummary: "Codex native subagent started.",

6868

}),

6969

);

70-

expect(vi.mocked(runtime.createRunningTaskRun).mock.calls[0]?.[0]).not.toHaveProperty(

70+

expect(vi.mocked(runtime.createRunningTaskRun).mock.calls.at(0)?.[0]).not.toHaveProperty(

7171

"childSessionKey",

7272

);

7373

expect(runtime.recordTaskRunProgressByRunId).toHaveBeenCalledWith(

@@ -251,7 +251,7 @@ describe("CodexNativeSubagentTaskMirror", () => {

251251

deliveryStatus: "not_applicable",

252252

}),

253253

);

254-

expect(vi.mocked(runtime.createRunningTaskRun).mock.calls[0]?.[0]).not.toHaveProperty(

254+

expect(vi.mocked(runtime.createRunningTaskRun).mock.calls.at(0)?.[0]).not.toHaveProperty(

255255

"childSessionKey",

256256

);

257257

expect(runtime.recordTaskRunProgressByRunId).toHaveBeenCalledWith(

Original file line numberDiff line numberDiff line change

@@ -74,7 +74,7 @@ describe("registerFeishuChatTools", () => {

7474

);

7575
7676

expect(registerTool).toHaveBeenCalledTimes(1);

77-

const tool = registerTool.mock.calls[0]?.[0];

77+

const tool = registerTool.mock.calls.at(0)?.[0];

7878

expect(tool?.name).toBe("feishu_chat");

7979
8080

chatGetMock.mockResolvedValueOnce({

@@ -205,7 +205,7 @@ describe("registerFeishuChatTools", () => {

205205

}),

206206

);

207207
208-

const tool = registerTool.mock.calls[0]?.[0];

208+

const tool = registerTool.mock.calls.at(0)?.[0];

209209

contactUserGetMock.mockRejectedValueOnce(

210210

Object.assign(new Error("Request failed with status code 400"), {

211211

response: {

Original file line numberDiff line numberDiff line change

@@ -63,8 +63,8 @@ describe("feishu_doc account selection", () => {

6363

await docToolB.execute("call-b", { action: "list_blocks", doc_token: "d" });

6464
6565

expect(createFeishuClientMock).toHaveBeenCalledTimes(2);

66-

expect(createFeishuClientMock.mock.calls[0]?.[0]?.appId).toBe("app-a");

67-

expect(createFeishuClientMock.mock.calls[1]?.[0]?.appId).toBe("app-b");

66+

expect(createFeishuClientMock.mock.calls.at(0)?.[0]?.appId).toBe("app-a");

67+

expect(createFeishuClientMock.mock.calls.at(1)?.[0]?.appId).toBe("app-b");

6868

});

6969
7070

test("explicit accountId param overrides agentAccountId context", async () => {

Original file line numberDiff line numberDiff line change

@@ -233,7 +233,7 @@ describe("feishu_doc image fetch hardening", () => {

233233

});

234234
235235

expect(blockDescendantCreateMock).toHaveBeenCalledTimes(1);

236-

const call = blockDescendantCreateMock.mock.calls[0]?.[0];

236+

const call = blockDescendantCreateMock.mock.calls.at(0)?.[0];

237237

expect(call?.data.children_id).toEqual(["h1", "t1", "h2"]);

238238

for (const block of blocks) {

239239

expect(call?.data.descendants).toContainEqual(block);

@@ -275,7 +275,7 @@ describe("feishu_doc image fetch hardening", () => {

275275

content: "tree reorder",

276276

});

277277
278-

const call = blockDescendantCreateMock.mock.calls[0]?.[0];

278+

const call = blockDescendantCreateMock.mock.calls.at(0)?.[0];

279279

expect(call?.data.children_id).toEqual(["h1", "p1", "h2", "list1"]);

280280

expect((call?.data.descendants as Array<{ block_id: string }>).map((b) => b.block_id)).toEqual([

281281

"h1",

Original file line numberDiff line numberDiff line change

@@ -828,7 +828,7 @@ describe("drive.notice.comment_add_v1 monitor handler", () => {

828828

await onComment(makeDriveCommentEvent());

829829
830830

expect(handleFeishuCommentEventMock).toHaveBeenCalledTimes(1);

831-

const handleArgs = handleFeishuCommentEventMock.mock.calls[0]?.[0] as

831+

const handleArgs = handleFeishuCommentEventMock.mock.calls.at(0)?.[0] as

832832

| {

833833

accountId?: string;

834834

botOpenId?: string;

@@ -918,7 +918,7 @@ describe("drive.notice.comment_add_v1 monitor handler", () => {

918918

);

919919

});

920920

const [recordedMessageId, recordedNamespace, recordedLogger] =

921-

(dedup.recordProcessedFeishuMessage as ReturnType<typeof vi.fn>).mock.calls[0] ?? [];

921+

(dedup.recordProcessedFeishuMessage as ReturnType<typeof vi.fn>).mock.calls.at(0) ?? [];

922922

expect(recordedMessageId).toBe("drive-comment:10d9d60b990db39f96a4c2fd357fb877");

923923

expect(recordedNamespace).toBe("default");

924924

expect(typeof recordedLogger).toBe("function");

Original file line numberDiff line numberDiff line change

@@ -140,8 +140,8 @@ describe("feishu tool account routing", () => {

140140

await tool.execute("call-ctx", { url: "invalid-url" });

141141

await tool.execute("call-override", { url: "invalid-url", accountId: "a" });

142142
143-

expect(createFeishuClientMock.mock.calls[0]?.[0]?.appId).toBe("app-b");

144-

expect(createFeishuClientMock.mock.calls[1]?.[0]?.appId).toBe("app-a");

143+

expect(createFeishuClientMock.mock.calls.at(0)?.[0]?.appId).toBe("app-b");

144+

expect(createFeishuClientMock.mock.calls.at(1)?.[0]?.appId).toBe("app-a");

145145

});

146146
147147

test("falls back to the configured Feishu default selection when agentAccountId is not a real account", async () => {