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

推荐订阅源

奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
人人都是产品经理
人人都是产品经理
爱范儿
爱范儿
aimingoo的专栏
aimingoo的专栏
博客园 - 叶小钗
H
Help Net Security
Microsoft Security Blog
Microsoft Security Blog
The Cloudflare Blog
S
SegmentFault 最新的问题
小众软件
小众软件
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 司徒正美
The GitHub Blog
The GitHub Blog
量子位
H
Hackread – Cybersecurity News, Data Breaches, AI and More
V
V2EX
Martin Fowler
Martin Fowler
博客园 - 【当耐特】
J
Java Code Geeks
D
DataBreaches.Net
云风的 BLOG
云风的 BLOG
F
Fortinet All Blogs
Blog — PlanetScale
Blog — PlanetScale
Last Week in AI
Last Week in AI

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
fix(gateway): cover restored watch artifacts · openclaw/o...
rubencu · 2026-05-10 · via Recent Commits to openclaw:main

@@ -59,16 +59,10 @@ const DIST_RUNTIME_EXTENSION_SKILL = "dist-runtime/extensions/demo/skills/SKILL.

5959

const DIST_OPENCLAW_ALIAS_PACKAGE = "dist/extensions/node_modules/openclaw/package.json";

6060

const DIST_OPENCLAW_ALIAS_PLUGIN_SDK_INDEX =

6161

"dist/extensions/node_modules/openclaw/plugin-sdk/index.js";

62-

const ACPX_PACKAGE = "extensions/acpx/package.json";

63-

const ACPX_MCP_PROXY_SOURCE = "extensions/acpx/src/runtime-internals/mcp-proxy.mjs";

64-

const DIST_ACPX_MCP_PROXY = "dist/extensions/acpx/mcp-proxy.mjs";

65-

const ACPX_ERROR_FORMAT_SOURCE = "extensions/acpx/src/runtime-internals/error-format.mjs";

66-

const DIST_ACPX_ERROR_FORMAT = "dist/extensions/acpx/error-format.mjs";

67-

const ACPX_MCP_COMMAND_LINE_SOURCE = "extensions/acpx/src/runtime-internals/mcp-command-line.mjs";

68-

const DIST_ACPX_MCP_COMMAND_LINE = "dist/extensions/acpx/mcp-command-line.mjs";

6962

const DIFFS_PACKAGE = "extensions/diffs/package.json";

7063

const DIFFS_VIEWER_RUNTIME_SOURCE = "extensions/diffs/assets/viewer-runtime.js";

7164

const DIST_DIFFS_VIEWER_RUNTIME = "dist/extensions/diffs/assets/viewer-runtime.js";

65+

const DIST_RUNTIME_DIFFS_VIEWER_RUNTIME = "dist-runtime/extensions/diffs/assets/viewer-runtime.js";

7266

const DIST_EXTENSION_MANIFEST = bundledDistPluginFile("demo", "openclaw.plugin.json");

7367

const DIST_EXTENSION_PACKAGE = bundledDistPluginFile("demo", "package.json");

7468

@@ -1904,38 +1898,25 @@ describe("run-node script", () => {

19041898

await setupTrackedProject(tmp, {

19051899

files: {

19061900

[ROOT_SRC]: "export const value = 1;\n",

1907-

[ACPX_PACKAGE]:

1908-

'{"openclaw":{"build":{"staticAssets":[{"source":"./src/runtime-internals/mcp-proxy.mjs","output":"mcp-proxy.mjs"},{"source":"./src/runtime-internals/error-format.mjs","output":"error-format.mjs"},{"source":"./src/runtime-internals/mcp-command-line.mjs","output":"mcp-command-line.mjs"}]}}}\n',

1909-

[ACPX_MCP_PROXY_SOURCE]: "export {};\n",

1910-

[DIST_ACPX_MCP_PROXY]: "export {};\n",

1911-

[ACPX_ERROR_FORMAT_SOURCE]: "export {};\n",

1912-

[DIST_ACPX_ERROR_FORMAT]: "export {};\n",

1913-

[ACPX_MCP_COMMAND_LINE_SOURCE]: "export {};\n",

1914-

[DIST_ACPX_MCP_COMMAND_LINE]: "export {};\n",

19151901

[DIFFS_PACKAGE]:

19161902

'{"openclaw":{"build":{"staticAssets":[{"source":"./assets/viewer-runtime.js","output":"assets/viewer-runtime.js"}]}}}\n',

19171903

[DIFFS_VIEWER_RUNTIME_SOURCE]: "export {};\n",

19181904

[DIST_DIFFS_VIEWER_RUNTIME]: "export {};\n",

1905+

[DIST_RUNTIME_DIFFS_VIEWER_RUNTIME]: "export {};\n",

19191906

[RUNTIME_POSTBUILD_STAMP]: '{"head":"abc123"}\n',

19201907

},

19211908

buildPaths: [

19221909

ROOT_SRC,

1923-

ACPX_PACKAGE,

1924-

ACPX_MCP_PROXY_SOURCE,

1925-

DIST_ACPX_MCP_PROXY,

1926-

ACPX_ERROR_FORMAT_SOURCE,

1927-

DIST_ACPX_ERROR_FORMAT,

1928-

ACPX_MCP_COMMAND_LINE_SOURCE,

1929-

DIST_ACPX_MCP_COMMAND_LINE,

19301910

DIFFS_PACKAGE,

19311911

DIFFS_VIEWER_RUNTIME_SOURCE,

19321912

DIST_DIFFS_VIEWER_RUNTIME,

1913+

DIST_RUNTIME_DIFFS_VIEWER_RUNTIME,

19331914

DIST_ENTRY,

19341915

BUILD_STAMP,

19351916

RUNTIME_POSTBUILD_STAMP,

19361917

],

19371918

});

1938-

await fs.rm(resolvePath(tmp, DIST_ACPX_MCP_COMMAND_LINE));

1919+

await fs.rm(resolvePath(tmp, DIST_DIFFS_VIEWER_RUNTIME));

1939192019401921

const requirement = resolveRuntimePostBuildRequirement(

19411922

createBuildRequirementDeps(tmp, {

@@ -1951,6 +1932,32 @@ describe("run-node script", () => {

19511932

});

19521933

});

195319341935+

it("does not require static asset outputs when the declared source is absent", async () => {

1936+

await withTempDir({ prefix: "openclaw-run-node-" }, async (tmp) => {

1937+

await setupTrackedProject(tmp, {

1938+

files: {

1939+

[ROOT_SRC]: "export const value = 1;\n",

1940+

[DIFFS_PACKAGE]:

1941+

'{"openclaw":{"build":{"staticAssets":[{"source":"./assets/viewer-runtime.js","output":"assets/viewer-runtime.js"}]}}}\n',

1942+

[RUNTIME_POSTBUILD_STAMP]: '{"head":"abc123"}\n',

1943+

},

1944+

buildPaths: [ROOT_SRC, DIFFS_PACKAGE, DIST_ENTRY, BUILD_STAMP, RUNTIME_POSTBUILD_STAMP],

1945+

});

1946+1947+

const requirement = resolveRuntimePostBuildRequirement(

1948+

createBuildRequirementDeps(tmp, {

1949+

gitHead: "abc123\n",

1950+

gitStatus: "",

1951+

}),

1952+

);

1953+1954+

expect(requirement).toEqual({

1955+

shouldSync: false,

1956+

reason: "clean",

1957+

});

1958+

});

1959+

});

1960+19541961

it("reports missing core runtime postbuild outputs when runtime stamps match HEAD", async () => {

19551962

for (const missingPath of [

19561963

DIST_PLUGIN_SDK_ROOT_ALIAS,