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

推荐订阅源

Apple Machine Learning Research
Apple Machine Learning Research
C
Cisco Blogs
P
Privacy & Cybersecurity Law Blog
T
Tor Project blog
Google Online Security Blog
Google Online Security Blog
Scott Helme
Scott Helme
C
Cyber Attacks, Cyber Crime and Cyber Security
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Hacker News - Newest:
Hacker News - Newest: "LLM"
N
News and Events Feed by Topic
The Register - Security
The Register - Security
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
SecWiki News
SecWiki News
T
True Tiger Recordings
T
The Exploit Database - CXSecurity.com
L
LINUX DO - 最新话题
Attack and Defense Labs
Attack and Defense Labs
S
Security @ Cisco Blogs
T
Troy Hunt's Blog
P
Palo Alto Networks Blog
T
Threat Research - Cisco Blogs
Simon Willison's Weblog
Simon Willison's Weblog
L
Lohrmann on Cybersecurity
T
Tailwind CSS Blog
有赞技术团队
有赞技术团队
阮一峰的网络日志
阮一峰的网络日志
IT之家
IT之家
J
Java Code Geeks
Hugging Face - Blog
Hugging Face - Blog
The Hacker News
The Hacker News
Jina AI
Jina AI
S
Secure Thoughts
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
爱范儿
爱范儿
月光博客
月光博客
S
Schneier on Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 【当耐特】
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
H
Hacker News: Front Page
Know Your Adversary
Know Your Adversary
PCI Perspectives
PCI Perspectives
罗磊的独立博客
A
Arctic Wolf
雷峰网
雷峰网
Hacker News: Ask HN
Hacker News: Ask HN
Google DeepMind News
Google DeepMind News
V
Visual Studio Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Latest news
Latest news

Recent Commits to openclaw:main

fix(qa-lab): bound plugin tools stderr tail · openclaw/openclaw@9085d17 fix(qa-lab): bound child process output · openclaw/openclaw@4a2b02e fix(test): escalate e2e watchdog termination · openclaw/openclaw@beb25d6 fix(security): avoid fetching untrusted proof refs · openclaw/openclaw@4bd711e fix(security): avoid CodeQL legacy auth patterns · openclaw/openclaw@3844e03 fix(test): keep upgrade survivor runtime state local · openclaw/openclaw@9fef53c Tighten phone-control mutation authorization [AI] (#87150) · openclaw/openclaw@91a4635 fix(voice-call): bound ngrok diagnostics · openclaw/openclaw@629fc2f fix(qa): expose credential fingerprints in admin list · openclaw/openclaw@1bc32e5 fix(memory): bound remote error bodies · openclaw/openclaw@93577ad Clarify directive persistence authorization policy [AI] (#86369) · openclaw/openclaw@bb418a8 fix(install): harden Windows git installs · openclaw/openclaw@dc5671e fix(qa): stabilize live transport lanes · openclaw/openclaw@f9aec04 fix(security): address OpenClaw CodeQL alerts · openclaw/openclaw@b008989 fix(parallels): guard release target harness mismatch · openclaw/openclaw@7275304 docs(skills): add OpenClaw release announcement guide · openclaw/openclaw@9805202 docs(skills): refine beta release announcement guidance · openclaw/openclaw@9ebf51e fix(release): bound cross-os fetch bodies · openclaw/openclaw@13dcded Fix Claude live tool progress for watchdog recovery (#87546) · openclaw/openclaw@4c3a029 test: avoid platform-specific transcript stat assertion · openclaw/openclaw@bd02977 fix(scripts): bound audit advisory error bodies · openclaw/openclaw@9f70064 fix: ignore leading transcript bytes in tail scan · openclaw/openclaw@b005f01 fix: avoid direct transcript stat fallback · openclaw/openclaw@e397636 fix(scripts): bound docker preflight capture fix(scripts): bound gh read error bodies · openclaw/openclaw@744da7e perf: avoid runtime catalog load for reasoning defaults fix(release): pin ClawHub publish workdir · openclaw/openclaw@a0cf185 perf: reuse preflight transcript scan size · openclaw/openclaw@8d5f6c8 fix(scripts): bound labeler error bodies perf: skip recent transcript read after final usage · openclaw/openclaw@39bc43c fix(scripts): bound memory fd ready output perf: reuse transcript scan size · openclaw/openclaw@bd6a404 fix(scripts): bound gateway watch log capture fix(agents): cancel failed skill download bodies · openclaw/openclaw@00fb152 fix(agents): suppress abandoned requester completion handoff (#87541) fix(qa): keep live transport artifacts local fix(release): speed windows upgrade fallback · openclaw/openclaw@1342727 fix(release): close cross-os artifact sockets · openclaw/openclaw@9771727 test(release): satisfy cross-os socket lint chore(ui): refresh nl control ui locale · openclaw/openclaw@43deaf4 chore(ui): refresh fa control ui locale · openclaw/openclaw@c16620c chore(ui): refresh vi control ui locale · openclaw/openclaw@55e1878 chore(ui): refresh th control ui locale · openclaw/openclaw@47c67e3 chore(ui): refresh pl control ui locale · openclaw/openclaw@062d429 chore(ui): refresh id control ui locale · openclaw/openclaw@580e95f chore(ui): refresh tr control ui locale · openclaw/openclaw@dcb00f3 chore(ui): refresh uk control ui locale · openclaw/openclaw@748015b chore(ui): refresh it control ui locale · openclaw/openclaw@ae0f469 chore(ui): refresh ar control ui locale · openclaw/openclaw@5f3012b chore(ui): refresh fr control ui locale · openclaw/openclaw@b0517f1 chore(ui): refresh ja-JP control ui locale · openclaw/openclaw@5058fc9 chore(ui): refresh ko control ui locale · openclaw/openclaw@d4ffac4 chore(ui): refresh es control ui locale · openclaw/openclaw@384dd12 chore(ui): refresh de control ui locale · openclaw/openclaw@6c858ac chore(ui): refresh pt-BR control ui locale · openclaw/openclaw@d3751e4 chore(ui): refresh zh-CN control ui locale · openclaw/openclaw@831bb45 chore(ui): refresh zh-TW control ui locale · openclaw/openclaw@71781b8 test(cron): speed up isolated fallback tests (#87520) · openclaw/openclaw@127c0ad refactor(openai): centralize codex oauth flow (#87411) · openclaw/openclaw@e805ffd test(agents): prove active live subagent steering · openclaw/openclaw@d1bca0c test(agents): narrow bounded error assertions · openclaw/openclaw@44027e7 chore: clarify bug report issue scope · openclaw/openclaw@8f6a2f0 fix(agents): preserve signed thinking payloads (#87493) · openclaw/openclaw@4a45a25 fix(test): harden startup benchmark harness · openclaw/openclaw@d10d30c fix(agents): bound minimax vlm error bodies · openclaw/openclaw@4f26cc9 fix(telegram): lower polling keepalive delay (#83304) ci(mantis): route telegram proof runs to us-east-1 · openclaw/openclaw@51d7f3c fix(agents): bound native pdf error bodies · openclaw/openclaw@c841218 test: deflake agent image root checks (#87499) · openclaw/openclaw@647e18a fix(android): preserve private LAN TLS pins · openclaw/openclaw@633c40a fix(android): keep LAN cleartext untrusted · openclaw/openclaw@5f3d6cd fix(android): allow private LAN pairing fix(android): trust private LAN credentials · openclaw/openclaw@771ddcf fix(qa): reject loose openwebui probe timeouts · openclaw/openclaw@6ae4a00 fix(media): cancel oversized fetch responses · openclaw/openclaw@a0ba9f2 fix(whatsapp): strip control characters from outbound document fileNa… · openclaw/openclaw@313d6ae refactor: share QA runtime helpers (#87412) · openclaw/openclaw@8d21ac3 fix(media): cancel ignored input fetch bodies fix(qa): parse kitchen sink rpc guardrails strictly · openclaw/openclaw@6adf234 fix(media): drain ignored download responses · openclaw/openclaw@736e04c fix(perf): keep abort leak thresholds active fix: harden qqbot direct media uploads · openclaw/openclaw@b860a0d fix(doctor): validate normalized tool schemas · openclaw/openclaw@751cd0c fix(perf): keep startup memory budgets active · openclaw/openclaw@f5e48f7 perf(tests): refactor embedded attempt runner helpers (#87410) · openclaw/openclaw@d165100 chore: stop tracking generated diffs viewer runtime (#87405) · openclaw/openclaw@5887119 fix(perf): reject loose extension memory numeric flags · openclaw/openclaw@bf22893 perf: dedupe persisted skill prompts (#87458) · openclaw/openclaw@edd4c62 fix(qa): reject loose Docker scheduler numeric env · openclaw/openclaw@6fe7ddd fix(qa): reject loose gateway CPU numeric flags · openclaw/openclaw@3ef3470 fix(whatsapp): support pluginHooks.messageReceived in channel/account… · openclaw/openclaw@e0d003b fix: keep private SDK declarations local · openclaw/openclaw@2229122 test(agents): cover tool schema quarantine in turns · openclaw/openclaw@8b78ded fix(qa): reject loose gauntlet numeric flags · openclaw/openclaw@ac28c06 perf(plugins) refactor plugin SDK declarations for flat package types… · openclaw/openclaw@3005b62 fix(file-transfer): handle late tar pipe errors · openclaw/openclaw@b6e354f fix(perf): reject invalid startup bench counts · openclaw/openclaw@d1577a2 fix(status): keep default JSON scan lean · openclaw/openclaw@d2319d7 fix(auth): honor OAuth login cancellation · openclaw/openclaw@5846878 test(reply): avoid redundant settled hook return unions
fix(test): wait for credential timeout cleanup · openclaw/openclaw@88c395c
vincentkoc · 2026-05-28 · via Recent Commits to openclaw:main

@@ -1,4 +1,4 @@

1-

import { mkdtempSync, rmSync } from "node:fs";

1+

import { existsSync, mkdtempSync, rmSync, writeFileSync } from "node:fs";

22

import { readFile } from "node:fs/promises";

33

import { tmpdir } from "node:os";

44

import path, { win32 } from "node:path";

@@ -73,6 +73,45 @@ describe("telegram user credential IO", () => {

7373

});

7474

});

757576+

it.runIf(process.platform !== "win32")(

77+

"waits for timed-out child processes to exit before rejecting",

78+

async () => {

79+

const dir = makeTempDir("openclaw-telegram-credential-timeout-");

80+

const terminatedPath = path.join(dir, "terminated.txt");

81+

const scriptPath = path.join(dir, "ignore-term.cjs");

82+

writeFileSync(

83+

scriptPath,

84+

`

85+

const fs = require("node:fs");

86+

process.on("SIGTERM", () => {

87+

setTimeout(() => {

88+

fs.writeFileSync(process.argv[2], "terminated");

89+

process.exit(0);

90+

}, 75);

91+

});

92+

setInterval(() => {}, 1000);

93+

`,

94+

"utf8",

95+

);

96+97+

const runPromise = runCommand(process.execPath, [scriptPath, terminatedPath], undefined, {

98+

timeoutKillGraceMs: 1_000,

99+

timeoutMs: 100,

100+

});

101+

const runError = runPromise.catch((error: unknown) => error);

102+103+

try {

104+

const error = (await runError) as Error & { code?: string };

105+

expect(error).toBeInstanceOf(Error);

106+

expect(error.code).toBe("ETIMEDOUT");

107+

expect(error.message).toContain("timed out after 100ms");

108+

expect(existsSync(terminatedPath)).toBe(true);

109+

} finally {

110+

await runPromise.catch(() => {});

111+

}

112+

},

113+

);

114+76115

it("aborts broker fetches that never return", async () => {

77116

let signal: AbortSignal | undefined;

78117

await expect(