fix(build): suppress singleton smoke deprecation noise

This commit is contained in:
Vincent Koc 2026-03-19 16:07:39 -07:00
parent f3971571fe
commit 9486f6e379
2 changed files with 42 additions and 0 deletions

View File

@ -5,6 +5,41 @@ import path from "node:path";
import { fileURLToPath, pathToFileURL } from "node:url"; import { fileURLToPath, pathToFileURL } from "node:url";
import { stageBundledPluginRuntime } from "./stage-bundled-plugin-runtime.mjs"; import { stageBundledPluginRuntime } from "./stage-bundled-plugin-runtime.mjs";
const warningFilterKey = Symbol.for("openclaw.warning-filter");
function installProcessWarningFilter() {
if (globalThis[warningFilterKey]?.installed) {
return;
}
const originalEmitWarning = process.emitWarning.bind(process);
process.emitWarning = (...args) => {
const [warningArg, secondArg, thirdArg] = args;
const warning =
warningArg instanceof Error
? {
name: warningArg.name,
message: warningArg.message,
code: warningArg.code,
}
: {
name: typeof secondArg === "string" ? secondArg : secondArg?.type,
message: typeof warningArg === "string" ? warningArg : undefined,
code: typeof thirdArg === "string" ? thirdArg : secondArg?.code,
};
if (warning.code === "DEP0040" && warning.message?.includes("punycode")) {
return;
}
return Reflect.apply(originalEmitWarning, process, args);
};
globalThis[warningFilterKey] = { installed: true };
}
installProcessWarningFilter();
const repoRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), ".."); const repoRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..");
const smokeEntryPath = path.join(repoRoot, "dist", "plugins", "build-smoke-entry.js"); const smokeEntryPath = path.join(repoRoot, "dist", "plugins", "build-smoke-entry.js");
assert.ok(fs.existsSync(smokeEntryPath), `missing build output: ${smokeEntryPath}`); assert.ok(fs.existsSync(smokeEntryPath), `missing build output: ${smokeEntryPath}`);

View File

@ -140,6 +140,13 @@ const SKIP_EAGER_WARMUP_PRIMARY_COMMANDS = new Set([
]); ]);
function shouldEagerWarmContextWindowCache(argv: string[] = process.argv): boolean { function shouldEagerWarmContextWindowCache(argv: string[] = process.argv): boolean {
// Keep this gate tied to the real OpenClaw CLI entrypoints.
//
// This module can also land inside shared dist chunks that are imported from
// plugin-sdk/library surfaces during smoke tests and plugin loading. If we do
// eager warmup for those generic Node script imports, merely importing the
// built plugin-sdk can call ensureOpenClawModelsJson(), which cascades into
// plugin discovery and breaks dist/source singleton assumptions.
if (!isLikelyOpenClawCliProcess(argv)) { if (!isLikelyOpenClawCliProcess(argv)) {
return false; return false;
} }