




















@@ -7,6 +7,7 @@ import { resolveAgentWorkspaceDir, resolveDefaultAgentId } from "../agents/agent
77import { ensureOwnerDisplaySecret } from "../agents/owner-display.js";
88import { isVerbose } from "../global-state.js";
99import { loadDotEnv } from "../infra/dotenv.js";
10+import { isTruthyEnvValue } from "../infra/env.js";
1011import { formatErrorMessage } from "../infra/errors.js";
1112import { resolveRequiredHomeDir } from "../infra/home-dir.js";
1213import { replaceFileAtomic, replaceFileAtomicSync } from "../infra/replace-file.js";
@@ -956,6 +957,7 @@ export type ConfigSnapshotReadOptions = {
956957observe?: boolean;
957958skipPluginValidation?: boolean;
958959preservedLegacyRootKeys?: readonly string[];
960+suppressFutureVersionWarning?: boolean;
959961};
960962961963function warnOnConfigMiskeys(raw: unknown, logger: Pick<typeof console, "warn">): void {
@@ -997,6 +999,13 @@ function warnIfConfigFromFuture(cfg: OpenClawConfig, logger: Pick<typeof console
997999}
9981000}
99910011002+function shouldSuppressFutureVersionWarningForEnv(env: NodeJS.ProcessEnv): boolean {
1003+return (
1004+isTruthyEnvValue(env.OPENCLAW_UPDATE_IN_PROGRESS) ||
1005+isTruthyEnvValue(env.OPENCLAW_UPDATE_POST_CORE)
1006+);
1007+}
1008+10001009function resolveConfigPathForDeps(deps: Required<ConfigIoDeps>): string {
10011010if (deps.configPath) {
10021011return deps.configPath;
@@ -1005,16 +1014,17 @@ function resolveConfigPathForDeps(deps: Required<ConfigIoDeps>): string {
10051014}
1006101510071016function normalizeDeps(overrides: ConfigIoDeps = {}): Required<ConfigIoDeps> {
1017+const env = overrides.env ?? process.env;
10081018return {
10091019fs: overrides.fs ?? fs,
10101020json5: overrides.json5 ?? JSON5,
1011-env: overrides.env ?? process.env,
1012-homedir:
1013-overrides.homedir ?? (() => resolveRequiredHomeDir(overrides.env ?? process.env, os.homedir)),
1021+ env,
1022+homedir: overrides.homedir ?? (() => resolveRequiredHomeDir(env, os.homedir)),
10141023configPath: overrides.configPath ?? "",
10151024logger: overrides.logger ?? console,
10161025measure: overrides.measure ?? (async (_name, run) => await run()),
1017-suppressFutureVersionWarning: overrides.suppressFutureVersionWarning ?? false,
1026+suppressFutureVersionWarning:
1027+overrides.suppressFutureVersionWarning ?? shouldSuppressFutureVersionWarningForEnv(env),
10181028observe: overrides.observe ?? true,
10191029};
10201030}
@@ -2544,6 +2554,7 @@ export async function readConfigFileSnapshot(
25442554 ...(options.measure ? { measure: options.measure } : {}),
25452555 ...(options.observe === false ? { observe: false } : {}),
25462556 ...(options.skipPluginValidation ? { pluginValidation: "skip" } : {}),
2557+ ...(options.suppressFutureVersionWarning ? { suppressFutureVersionWarning: true } : {}),
25472558 ...(options.preservedLegacyRootKeys
25482559 ? { preservedLegacyRootKeys: options.preservedLegacyRootKeys }
25492560 : {}),
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。