慣性聚合 高效追讀感興趣之博客、新聞、科技資訊
閱原文 以慣性聚合開啟

推薦訂閱源

Recorded Future
Recorded Future
M
Microsoft Research Blog - Microsoft Research
Y
Y Combinator Blog
量子位
SecWiki News
SecWiki News
N
Netflix TechBlog - Medium
S
SegmentFault 最新的问题
Project Zero
Project Zero
美团技术团队
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
A
Arctic Wolf
L
LangChain Blog
Blog — PlanetScale
Blog — PlanetScale
T
Tor Project blog
F
Future of Privacy Forum
T
Threat Research - Cisco Blogs
T
Tailwind CSS Blog
The Hacker News
The Hacker News
T
ThreatConnect
T
Tenable Blog
A
About on SuperTechFans
Hacker News: Ask HN
Hacker News: Ask HN
小众软件
小众软件
V
V2EX - 技术
U
Unit 42
V
V2EX
MyScale Blog
MyScale Blog
Apple Machine Learning Research
Apple Machine Learning Research
Hacker News - Newest:
Hacker News - Newest: "LLM"
O
OpenAI News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
H
Hacker News: Front Page
S
Schneier on Security
Application and Cybersecurity Blog
Application and Cybersecurity Blog
S
Security Archives - TechRepublic
雷峰网
雷峰网
Cisco Talos Blog
Cisco Talos Blog
Google Online Security Blog
Google Online Security Blog
Microsoft Security Blog
Microsoft Security Blog
Google DeepMind News
Google DeepMind News
Jina AI
Jina AI
L
LINUX DO - 热门话题
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
T
Threatpost
I
Intezer
aimingoo的专栏
aimingoo的专栏
The Cloudflare Blog
P
Privacy International News Feed
D
Docker
P
Proofpoint News Feed

Recent Commits to openclaw:main

fix(e2e): harden Telegram credential paths on Windows · openclaw/openclaw@c643370 fix(android): complete qr setup operator handoff · openclaw/openclaw@be9bb77 fix(android): align setup pairing scopes fix(test): copy cleanup smoke prepare hook · openclaw/openclaw@dbc08f6 fix(secrets): allow hash in exec SecretRef ids (#86072) · openclaw/openclaw@675158c fix(media): use static image compression metadata · openclaw/openclaw@694d45e fix(release): verify large plugin npm packs fix(test): require kitchen sink diagnostic canaries · openclaw/openclaw@7e51f83 fix(scripts): harden Windows upgrade survivor recipe · openclaw/openclaw@483d7be fix(installer): count verify progress stage fix: Refine PR template for review state (#86054) fix(test): repair split agent shard runs · openclaw/openclaw@125d82c fix(codex): harden Windows protocol formatting · openclaw/openclaw@ce48e4c fix(openrouter): use endpoint context limits (#86041) · openclaw/openclaw@dd01a2e test(qa): remove brittle capability flip setup turn fix(telegram): migrate account topic cache sidecars · openclaw/openclaw@5cfb12f fix(telegram): migrate legacy cache sidecars · openclaw/openclaw@eb9b882 fix(scripts): harden Windows ZAI fallback repro · openclaw/openclaw@5be62e7 style(android): sharpen v2 screen rhythm · openclaw/openclaw@400d90a test(qa): extend capability flip setup budget · openclaw/openclaw@c91c3c6 fix(android): simplify gateway status copy fix(android): route offline voice to gateway setup fix(scripts): harden Windows control UI i18n commands · openclaw/openclaw@581c8a6 fix(android): stop operator chat subscription · openclaw/openclaw@5c15859 fix(test): fail missing kitchen sink rss samples test(qa): widen capability flip restart budget · openclaw/openclaw@c7d4e9e fix(android): smooth gateway pairing recovery · openclaw/openclaw@60e6ccd fix(test): suppress rolldown timing noise · openclaw/openclaw@6d9b388 style(android): fix talk mode ktlint formatting · openclaw/openclaw@01b284c fix(telegram): store topic cache in plugin state fix(telegram): store bot info cache in plugin state · openclaw/openclaw@2ed5296 fix(test): sync sparse AWS Crabbox runs from full checkout · openclaw/openclaw@0f82c81 fix(release): harden Windows cross-os command shims · openclaw/openclaw@7154767 fix(test): harden Docker resource ceilings test(telegram): keep startup limiter coverage focused test(telegram): isolate startup probe limiter timing · openclaw/openclaw@04d86e0 test(release): harden plugin prerelease checks · openclaw/openclaw@578e73f fix(telegram): serialize topic dispatch replies (#85709) · openclaw/openclaw@62b51a6 test(release): stabilize plugin prerelease checks · openclaw/openclaw@3679151 fix(test): fail live gateway false greens · openclaw/openclaw@295339d fix(test): build startup artifacts for smoke scripts · openclaw/openclaw@3838e45 test(telegram): wait for startup probe slots · openclaw/openclaw@0a8af67 test(codex): match sandbox exec-server yolo policy · openclaw/openclaw@783290f fix(test): fail missing explicit test targets · openclaw/openclaw@9ff4d36 test(codex): avoid full sandbox exec-server turn run · openclaw/openclaw@558c1bc fix(ci): keep Crabbox pnpm hydration shims writable · openclaw/openclaw@bca1ac0 fix(release): harden Windows release-check npm probes · openclaw/openclaw@75ac11a fix(docker): parse peer-suffixed lockfile packages · openclaw/openclaw@cf46f2e fix(docker): seed lockfile packages before prune · openclaw/openclaw@f799da0 fix(docker): seed lockfile snapshot tarballs before prune · openclaw/openclaw@2cd93f1
修复端到端:加固 Windows 厨房水槽断言 · openclaw/openclaw@87a2eba
vincentkoc · 2026-05-24 · via Recent Commits to openclaw:main

@@ -62,10 +62,11 @@ function runAssertInstalled({

6262

const pluginId = "openclaw-kitchen-sink-fixture";

6363

const home = mkdtempSync(path.join(tmpdir(), "openclaw-kitchen-sink-home-"));

6464

const installPath = mkdtempSync(path.join(tmpdir(), "openclaw-kitchen-sink-install-"));

65-

const pluginsJsonPath = path.join("/tmp", `kitchen-sink-${label}-plugins.json`);

66-

const inspectJsonPath = path.join("/tmp", `kitchen-sink-${label}-inspect.json`);

67-

const inspectAllJsonPath = path.join("/tmp", `kitchen-sink-${label}-inspect-all.json`);

68-

const installPathMarker = path.join("/tmp", `kitchen-sink-${label}-install-path.txt`);

65+

const scratchRoot = tmpdir();

66+

const pluginsJsonPath = path.join(scratchRoot, `kitchen-sink-${label}-plugins.json`);

67+

const inspectJsonPath = path.join(scratchRoot, `kitchen-sink-${label}-inspect.json`);

68+

const inspectAllJsonPath = path.join(scratchRoot, `kitchen-sink-${label}-inspect-all.json`);

69+

const installPathMarker = path.join(scratchRoot, `kitchen-sink-${label}-install-path.txt`);

6970

const installsPath = path.join(home, ".openclaw", "plugins", "installs.json");

7071

const spawnEnv = { ...process.env };

7172

delete spawnEnv.KITCHEN_SINK_REQUIRE_ALL_DIAGNOSTICS;

@@ -100,6 +101,7 @@ function runAssertInstalled({

100101

KITCHEN_SINK_SOURCE: "npm",

101102

KITCHEN_SINK_SPEC: "npm:@openclaw/kitchen-sink@latest",

102103

KITCHEN_SINK_SURFACE_MODE: "full",

104+

KITCHEN_SINK_TMP_DIR: scratchRoot,

103105

},

104106

});

105107

} finally {

@@ -113,41 +115,32 @@ function runAssertInstalled({

113115

}

114116115117

describe("kitchen-sink plugin assertions", () => {

116-

it.skipIf(process.platform === "win32")(

117-

"fails full-surface installs when stable diagnostic canaries disappear",

118-

() => {

119-

const result = runAssertInstalled();

118+

it("fails full-surface installs when stable diagnostic canaries disappear", () => {

119+

const result = runAssertInstalled();

120120121-

expect(result.status).not.toBe(0);

122-

expect(`${result.stdout}\n${result.stderr}`).toContain(

123-

"missing expected kitchen-sink diagnostic error",

124-

);

125-

},

126-

);

121+

expect(result.status).not.toBe(0);

122+

expect(`${result.stdout}\n${result.stderr}`).toContain(

123+

"missing expected kitchen-sink diagnostic error",

124+

);

125+

});

127126128-

it.skipIf(process.platform === "win32")(

129-

"accepts published full-surface installs with stable diagnostic canaries",

130-

() => {

131-

const result = runAssertInstalled({

132-

diagnostics: diagnosticErrors(REQUIRED_FULL_DIAGNOSTIC_CANARIES),

133-

});

127+

it("accepts published full-surface installs with stable diagnostic canaries", () => {

128+

const result = runAssertInstalled({

129+

diagnostics: diagnosticErrors(REQUIRED_FULL_DIAGNOSTIC_CANARIES),

130+

});

134131135-

expect(result.status).toBe(0);

136-

},

137-

);

132+

expect(result.status).toBe(0);

133+

});

138134139-

it.skipIf(process.platform === "win32")(

140-

"keeps exhaustive diagnostic matching available for synchronized fixtures",

141-

() => {

142-

const result = runAssertInstalled({

143-

diagnostics: diagnosticErrors(REQUIRED_FULL_DIAGNOSTIC_CANARIES),

144-

env: { KITCHEN_SINK_REQUIRE_ALL_DIAGNOSTICS: "1" },

145-

});

135+

it("keeps exhaustive diagnostic matching available for synchronized fixtures", () => {

136+

const result = runAssertInstalled({

137+

diagnostics: diagnosticErrors(REQUIRED_FULL_DIAGNOSTIC_CANARIES),

138+

env: { KITCHEN_SINK_REQUIRE_ALL_DIAGNOSTICS: "1" },

139+

});

146140147-

expect(result.status).not.toBe(0);

148-

expect(`${result.stdout}\n${result.stderr}`).toContain(

149-

"cli registration missing explicit commands metadata",

150-

);

151-

},

152-

);

141+

expect(result.status).not.toBe(0);

142+

expect(`${result.stdout}\n${result.stderr}`).toContain(

143+

"cli registration missing explicit commands metadata",

144+

);

145+

});

153146

});