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

推荐订阅源

Hugging Face - Blog
Hugging Face - Blog
GbyAI
GbyAI
Engineering at Meta
Engineering at Meta
有赞技术团队
有赞技术团队
博客园 - 【当耐特】
H
Hackread – Cybersecurity News, Data Breaches, AI and More
WordPress大学
WordPress大学
博客园_首页
美团技术团队
H
Help Net Security
MongoDB | Blog
MongoDB | Blog
宝玉的分享
宝玉的分享
大猫的无限游戏
大猫的无限游戏
小众软件
小众软件
J
Java Code Geeks
A
About on SuperTechFans
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
IT之家
IT之家
T
The Blog of Author Tim Ferriss
Microsoft Azure Blog
Microsoft Azure Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
B
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
perf(sandbox): shard container registry into per-entry fi...
hobo-l-20230 · 2026-05-03 · via Recent Commits to openclaw:main

@@ -25,12 +25,12 @@ const spawnState = vi.hoisted(() => ({

2525

}));

26262727

const registryMocks = vi.hoisted(() => ({

28-

readRegistry: vi.fn(),

28+

readRegistryEntry: vi.fn(),

2929

updateRegistry: vi.fn(),

3030

}));

31313232

vi.mock("./registry.js", () => ({

33-

readRegistry: registryMocks.readRegistry,

33+

readRegistryEntry: registryMocks.readRegistryEntry,

3434

updateRegistry: registryMocks.updateRegistry,

3535

}));

3636

@@ -100,7 +100,7 @@ let ensureSandboxContainer: typeof import("./docker.js").ensureSandboxContainer;

100100

async function loadFreshDockerModuleForTest() {

101101

vi.resetModules();

102102

vi.doMock("./registry.js", () => ({

103-

readRegistry: registryMocks.readRegistry,

103+

readRegistryEntry: registryMocks.readRegistryEntry,

104104

updateRegistry: registryMocks.updateRegistry,

105105

}));

106106

vi.doMock("node:child_process", async () => createChildProcessMock());

@@ -185,7 +185,7 @@ describe("ensureSandboxContainer config-hash recreation", () => {

185185

spawnState.calls.length = 0;

186186

spawnState.inspectRunning = true;

187187

spawnState.labelHash = "";

188-

registryMocks.readRegistry.mockClear();

188+

registryMocks.readRegistryEntry.mockClear();

189189

registryMocks.updateRegistry.mockClear();

190190

registryMocks.updateRegistry.mockResolvedValue(undefined);

191191

await loadFreshDockerModuleForTest();

@@ -213,17 +213,13 @@ describe("ensureSandboxContainer config-hash recreation", () => {

213213

expect(newHash).not.toBe(oldHash);

214214215215

spawnState.labelHash = oldHash;

216-

registryMocks.readRegistry.mockResolvedValue({

217-

entries: [

218-

{

219-

containerName: "oc-test-shared",

220-

sessionKey: "shared",

221-

createdAtMs: 1,

222-

lastUsedAtMs: 0,

223-

image: newCfg.docker.image,

224-

configHash: oldHash,

225-

},

226-

],

216+

registryMocks.readRegistryEntry.mockResolvedValue({

217+

containerName: "oc-test-shared",

218+

sessionKey: "shared",

219+

createdAtMs: 1,

220+

lastUsedAtMs: 0,

221+

image: newCfg.docker.image,

222+

configHash: oldHash,

227223

});

228224229225

const containerName = await ensureSandboxContainer({

@@ -269,17 +265,13 @@ describe("ensureSandboxContainer config-hash recreation", () => {

269265270266

spawnState.inspectRunning = false;

271267

spawnState.labelHash = "stale-hash";

272-

registryMocks.readRegistry.mockResolvedValue({

273-

entries: [

274-

{

275-

containerName: "oc-test-shared",

276-

sessionKey: "shared",

277-

createdAtMs: 1,

278-

lastUsedAtMs: 0,

279-

image: cfg.docker.image,

280-

configHash: "stale-hash",

281-

},

282-

],

268+

registryMocks.readRegistryEntry.mockResolvedValue({

269+

containerName: "oc-test-shared",

270+

sessionKey: "shared",

271+

createdAtMs: 1,

272+

lastUsedAtMs: 0,

273+

image: cfg.docker.image,

274+

configHash: "stale-hash",

283275

});

284276285277

const createCall = await ensureSandboxCreateCallForTest({ cfg, workspaceDir });

@@ -304,7 +296,7 @@ describe("ensureSandboxContainer config-hash recreation", () => {

304296305297

spawnState.inspectRunning = false;

306298

spawnState.labelHash = "";

307-

registryMocks.readRegistry.mockResolvedValue({ entries: [] });

299+

registryMocks.readRegistryEntry.mockResolvedValue(null);

308300

registryMocks.updateRegistry.mockResolvedValue(undefined);

309301310302

const createCall = await ensureSandboxCreateCallForTest({ cfg, workspaceDir });

@@ -320,7 +312,7 @@ describe("ensureSandboxContainer config-hash recreation", () => {

320312321313

spawnState.inspectRunning = false;

322314

spawnState.labelHash = "";

323-

registryMocks.readRegistry.mockResolvedValue({ entries: [] });

315+

registryMocks.readRegistryEntry.mockResolvedValue(null);

324316325317

const createCall = await ensureSandboxCreateCallForTest({ cfg, workspaceDir });

326318

expect(createCall.args).toContain(