openclaw/src
lbo728 aaa9bd0f1c fix(config-reload): skip reload when config file is not found
When a config file is written atomically (tmp → rename), chokidar can
fire an 'unlink' event for the temporary removal of the destination file
before the rename completes. runReload() would then call readSnapshot(),
which returns { exists: false, valid: true, config: {} } — an empty
config that looks valid — causing diffConfigPaths() to find many changes
and triggering an unnecessary SIGUSR1 restart.

The restarted gateway process then fails to find the config file (still
in the middle of the write) and enters a crash loop with:
  'Missing config. Run openclaw setup...'

Fix: guard against exists=false before the existing valid=false check,
so mid-write snapshots are silently skipped rather than treated as a
config wipe.

Fixes #23321
2026-02-22 15:34:46 +01:00
..
acp test: stabilize acp cwd prefix assertions across env leakage 2026-02-22 14:18:44 +00:00
agents fix: align timeout cooldown behavior docs/tests (#22622) (thanks @vageeshkumar) 2026-02-22 15:34:20 +01:00
auto-reply refactor(runtime): consolidate followup, gateway, and provider dedupe paths 2026-02-22 14:08:51 +00:00
browser test: fix flaky auth tests when OPENCLAW_GATEWAY_TOKEN is present 2026-02-22 15:17:37 +01:00
canvas-host test: tighten canvas host websocket watchdog timeouts 2026-02-21 23:02:44 +00:00
channels refactor(channels): dedupe plugin routing and channel helpers 2026-02-22 14:08:51 +00:00
cli test: remove redundant channels smoke parse case 2026-02-22 12:56:18 +00:00
commands test: share fast-path mocks for targeted doctor suites 2026-02-22 14:18:44 +00:00
compat
config test(core): increase coverage for sessions, auth choice, and model listing 2026-02-22 14:08:51 +00:00
cron chore: merge origin/main into main 2026-02-22 13:42:52 +00:00
daemon test(daemon): use lightweight clears in systemd mocks 2026-02-22 08:01:16 +00:00
discord chore: merge origin/main into main 2026-02-22 13:42:52 +00:00
docs
gateway fix(config-reload): skip reload when config file is not found 2026-02-22 15:34:46 +01:00
hooks refactor(runtime): consolidate followup, gateway, and provider dedupe paths 2026-02-22 14:08:51 +00:00
imessage refactor(channels): reuse runtime group policy helpers 2026-02-22 12:44:23 +01:00
infra test(core): increase coverage for sessions, auth choice, and model listing 2026-02-22 14:08:51 +00:00
line refactor(channels): reuse runtime group policy helpers 2026-02-22 12:44:23 +01:00
link-understanding chore: remove verified dead code paths 2026-02-22 09:21:09 +01:00
logging Feat/logger support log level validation0222 (#23436) 2026-02-22 11:15:13 +01:00
markdown test: dedupe channel and transport adapters 2026-02-21 21:44:01 +00:00
media test(core): reduce mock reset overhead in targeted suites 2026-02-22 08:40:29 +00:00
media-understanding refactor(runtime): consolidate followup, gateway, and provider dedupe paths 2026-02-22 14:08:51 +00:00
memory Memory/QMD: normalize Han-script BM25 search queries 2026-02-22 01:53:00 -08:00
node-host refactor(exec): centralize safe-bin policy checks 2026-02-22 13:18:25 +01:00
pairing test(pairing): dedupe fixture writers and expand store coverage 2026-02-21 21:40:39 +00:00
plugin-sdk refactor(channels): reuse runtime group policy helpers 2026-02-22 12:44:23 +01:00
plugins test: move hooks and plugin local suites out of e2e 2026-02-22 11:05:53 +00:00
process refactor(runtime): consolidate followup, gateway, and provider dedupe paths 2026-02-22 14:08:51 +00:00
providers test(core): use lightweight clears in update, child adapter, and copilot token setup 2026-02-22 08:01:16 +00:00
routing test: optimize gateway infra memory and security coverage 2026-02-21 21:44:50 +00:00
scripts test(scripts): dedupe a2ui temp fixture and cover skip-missing env path 2026-02-21 21:40:39 +00:00
security chore: merge origin/main into main 2026-02-22 13:42:52 +00:00
sessions fix(auth/session): preserve override reset behavior and repair oauth profile-id drift (openclaw#18820) thanks @Glucksberg 2026-02-19 21:16:26 -06:00
shared fix: tighten gateway restart loop handling (#23416) (thanks @jeffwnli) 2026-02-22 10:38:32 +01:00
signal refactor(signal): extract rpc parse helper and validate response envelope 2026-02-22 15:29:56 +01:00
slack refactor(runtime): consolidate followup, gateway, and provider dedupe paths 2026-02-22 14:08:51 +00:00
telegram fix: downgrade telegram autoSelectFamily log to debug 2026-02-22 15:21:23 +01:00
terminal test(core): use lightweight clears in runtime and telegram setup 2026-02-22 08:09:14 +00:00
test-helpers test: dedupe telegram draft stream setup and extend state-dir env coverage 2026-02-22 07:46:17 +00:00
test-utils test: share runtime scan filters and cached test scans 2026-02-22 12:44:44 +01:00
tts test: streamline auto-reply and tts suites 2026-02-21 21:44:01 +00:00
tui refactor(tui): dedupe handlers and formatter test setup 2026-02-22 14:08:51 +00:00
types chore(deadcode): add deadcode scanning and remove unused lockfile deps (#22468) 2026-02-21 01:29:20 -05:00
utils fix: stabilize flaky tests and sanitize directive-only chat tags 2026-02-22 12:19:33 +01:00
web test: speed up slow media and synology suites 2026-02-22 14:18:44 +00:00
whatsapp
wizard test(wizard): share onboarding prompter scaffold 2026-02-22 07:44:57 +00:00
channel-web.ts
docker-image-digests.test.ts fix(docker): pin base images to SHA256 digests (#7734) 2026-02-19 12:42:07 -08:00
docker-setup.test.ts test(core): increase coverage for sessions, auth choice, and model listing 2026-02-22 14:08:51 +00:00
dockerfile.test.ts
entry.ts refactor(gateway): simplify restart flow and expand lock tests 2026-02-22 10:44:47 +01:00
extensionAPI.ts
globals.ts
index.ts
logger.test.ts
logger.ts
logging.ts
polls.test.ts
polls.ts
runtime.ts
utils.test.ts fix(utils): guard resolveUserPath for missing workspace input 2026-02-22 13:19:25 +01:00
utils.ts fix(utils): guard resolveUserPath for missing workspace input 2026-02-22 13:19:25 +01:00
version.test.ts test(core): increase coverage for sessions, auth choice, and model listing 2026-02-22 14:08:51 +00:00
version.ts