From c8fe007c42a6c00aeaf18658507bc3395843b28a Mon Sep 17 00:00:00 2001 From: Dallin Romney Date: Sat, 2 May 2026 11:45:46 +0800 Subject: [PATCH] fix: dedupe config future-version warning per process (#75927) --- CHANGELOG.md | 1 + src/config/io.ts | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 21c132b7539..40e1cdc9ee5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,7 @@ Docs: https://docs.openclaw.ai ### Fixes +- Config: log the "newer OpenClaw" version warning once per process instead of once per config snapshot read. (#75927) Thanks @romneyda. - Gateway/chat history: merge Claude CLI transcript imports for Anthropic-routed sessions that still have a Claude CLI binding, so local chat history does not hide CLI JSONL turns. Fixes #75850. Thanks @alfredjbclaw. - Media: trim serialized JSON suffixes after local `MEDIA:` directive file extensions, so generated-image metadata cannot pollute the parsed media path and cause false `ENOENT` delivery failures. Fixes #75182. Thanks @TnzGit and @hclsys. - Cron: make scheduler reload schedule comparison tolerate malformed persisted jobs, so one bad cron entry no longer aborts the whole tick. Fixes #75886. Thanks @samfox-ai. diff --git a/src/config/io.ts b/src/config/io.ts index e0513899626..09c6f4ed1d4 100644 --- a/src/config/io.ts +++ b/src/config/io.ts @@ -156,6 +156,7 @@ type ShippedPluginInstallConfigReadMigration = { const CONFIG_HEALTH_STATE_FILENAME = "config-health.json"; const loggedInvalidConfigs = new Set(); +const warnedFutureTouchedVersions = new Set(); type ConfigHealthFingerprint = { hash: string; @@ -952,6 +953,10 @@ function warnIfConfigFromFuture(cfg: OpenClawConfig, logger: Pick