Rami Abdelrazzaq
0b8b95f2c9
fix(update): prevent gateway crash loop after failed self-update
...
The gateway unconditionally scheduled a SIGUSR1 restart after every
update.run call, even when the update itself failed (broken deps,
build errors, etc.). This left the process restarting into a broken
state — corrupted node_modules, partial builds — causing a crash loop
that required manual intervention.
Three fixes:
1. Only restart on success: scheduleGatewaySigusr1Restart is now
gated on result.status === "ok". Failed or skipped updates still
write the restart sentinel (so the status can be reported back to
the user) but the running gateway stays alive.
2. Early bail on step failure: deps install, build, and ui:build now
check exit codes immediately (matching the preflight section) so a
failed deps install no longer cascades into a broken build and
ui:build.
3. Auto-repair config during update: the doctor step now runs with
--fix alongside --non-interactive, so unknown config keys left over
from schema changes between versions are stripped automatically
instead of causing a startup validation crash.
2026-02-16 23:54:49 +01:00
OpenClaw Bot
b2d622cfa3
fix: clear stale device-auth token on token mismatch
...
When the gateway connection fails due to device token mismatch (e.g., after
re-pairing the device), clear the stored device-auth token so that
subsequent connection attempts can obtain a fresh token.
This fixes the cron tool failing with 'device token mismatch' error
after running 'openclaw configure' to re-pair the device.
Fixes #18175
2026-02-16 23:54:23 +01:00
yinghaosang
aeec95f870
fix(gateway): include deliveryContext in update.run restart sentinel ( #18239 )
2026-02-16 23:53:50 +01:00
David Szarzynski
30ee12e40a
gateway: wire channel health monitor into startup with configurable interval
2026-02-16 23:53:35 +01:00
David Szarzynski
497e2d76ad
feat(gateway): add channel health monitor with auto-restart
2026-02-16 23:53:35 +01:00
David Szarzynski
68489a213f
gateway: expose isManuallyStopped and resetRestartAttempts on ChannelManager
2026-02-16 23:53:35 +01:00
Xinhua Gu
ae0b110e44
fix(security): set 0o600 on remaining session file write paths
...
Follow-up to #18066 — three session file write sites were missed:
- auto-reply/reply/session.ts: forked session transcript header
- pi-embedded-runner/session-manager-init.ts: session file reset
- gateway/server-methods/sessions.ts: compacted transcript rewrite
All now use mode 0o600 consistent with transcript.ts and chat.ts.
2026-02-16 23:53:28 +01:00
Vignesh Natarajan
02c268eec1
fix (gateway/memory): start qmd onBoot for all agents
2026-02-16 10:35:26 -08:00
Peter Steinberger
9b70849567
refactor(test): dedupe trusted-proxy auth test setup
2026-02-16 18:31:37 +00:00
Peter Steinberger
c7e386982f
refactor(test): dedupe agent and memory cli test setup
2026-02-16 17:57:45 +00:00
Peter Steinberger
71111c9978
refactor(tests): dedupe gateway send and threading fixtures
2026-02-16 17:22:26 +00:00
Peter Steinberger
94a4dd0189
refactor(gateway): dedupe wizard and exec approval handler paths
2026-02-16 17:22:26 +00:00
Peter Steinberger
8df83d1835
refactor(core): extract shared runtime and wizard schemas
2026-02-16 17:06:40 +00:00
Mariano
44ef045614
fix(canvas): port remaining iOS branch stability fixes ( #18228 )
...
* fix(canvas): prevent snapshot disconnects on proxied gateways
(cherry picked from commit 2a3c9f746a65f3301c0cfe58ebe6596fed06230f)
* fix(canvas): accept url alias for present and navigate
(cherry picked from commit 674ee86a0b776cbb738add1920a4031246125312)
---------
Co-authored-by: Nimrod Gutman <nimrod.g@singular.net>
2026-02-16 16:42:28 +00:00
Peter Steinberger
93ca0ed54f
refactor(channels): dedupe transport and gateway test scaffolds
2026-02-16 14:59:31 +00:00
brandonwise
095d522099
fix(security): create session transcript files with 0o600 permissions ( #18066 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 962f497d242c5affa9b610f38f3dc7844426198d
Co-authored-by: brandonwise <21148772+brandonwise@users.noreply.github.com>
Co-authored-by: sebslight <19554889+sebslight@users.noreply.github.com>
Reviewed-by: @sebslight
2026-02-16 08:33:40 -05:00
sebslight
5b8bfd261b
test(gateway): cover mixed-id config.patch rollback
2026-02-16 08:24:55 -05:00
不做了睡大觉
cb391f4bdc
fix(config): prevent config.patch from destroying arrays when patch entries lack id ( #18030 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: a857df9e328f17774bc345a9567aaa39f94038ae
Co-authored-by: stakeswky <64798754+stakeswky@users.noreply.github.com>
Co-authored-by: sebslight <19554889+sebslight@users.noreply.github.com>
Reviewed-by: @sebslight
2026-02-16 08:13:51 -05:00
Advait Paliwal
bc67af6ad8
cron: separate webhook POST delivery from announce ( #17901 )
...
* cron: split webhook delivery from announce mode
* cron: validate webhook delivery target
* cron: remove legacy webhook fallback config
* fix: finalize cron webhook delivery prep (#17901 ) (thanks @advaitpaliwal)
---------
Co-authored-by: Tyler Yust <TYTYYUST@YAHOO.COM>
2026-02-16 02:36:00 -08:00
Peter Steinberger
31939397a9
test: optimize hot-path test runtime
2026-02-16 03:49:05 +00:00
Vignesh Natarajan
eed02a2b57
fix (security/gateway): preserve control-ui scopes in bypass mode
2026-02-15 19:12:06 -08:00
Peter Steinberger
2f621876f1
test(gateway): cover basePath bootstrap config endpoint
2026-02-16 02:56:23 +00:00
Peter Steinberger
8985f23de7
test(gateway): move Control UI http coverage
2026-02-16 03:50:39 +01:00
Peter Steinberger
c6e6023e3a
refactor(gateway): share Control UI bootstrap contract and CSP
2026-02-16 03:50:39 +01:00
Peter Steinberger
c6c53437f7
fix(security): scope session tools and webhook secret fallback
2026-02-16 03:47:10 +01:00
Peter Steinberger
3f44ea244f
perf(test): fold health + signal mention tests
2026-02-16 02:45:00 +00:00
Peter Steinberger
dc9808a674
refactor(gateway): dedupe transcript tail preview
2026-02-16 02:21:39 +00:00
Peter Steinberger
adc818db4a
fix(gateway): serve Control UI bootstrap config and lock down CSP
2026-02-16 03:15:57 +01:00
Peter Steinberger
07be14c02d
refactor(gateway): dedupe chat session abort flow
2026-02-16 01:39:39 +00:00
Peter Steinberger
73a97ee255
refactor(gateway): share node invoke error handling
2026-02-16 01:25:06 +00:00
Peter Steinberger
b1dca644bc
refactor(gateway): share restart request parsing
2026-02-16 01:21:54 +00:00
Peter Steinberger
b743e652c0
refactor(gateway): reuse shared validators + baseHash
2026-02-16 01:19:01 +00:00
Peter Steinberger
71cee673b2
fix(gateway): satisfy server-method lint
2026-02-16 01:15:31 +00:00
Peter Steinberger
dc5d234848
refactor(gateway): share server-method param validation
2026-02-16 01:13:52 +00:00
Peter Steinberger
a5cbd036de
refactor(gateway): dedupe wizard param validation
2026-02-16 01:08:36 +00:00
Advait Paliwal
14fb2c05b1
Gateway/Control UI: preserve partial output on abort ( #15026 )
...
* Gateway/Control UI: preserve partial output on abort
* fix: finalize abort partial handling and tests (#15026 ) (thanks @advaitpaliwal)
---------
Co-authored-by: Tyler Yust <TYTYYUST@YAHOO.COM>
2026-02-15 16:55:28 -08:00
Peter Steinberger
f8fbeb52b0
refactor(protocol): dedupe cron/config schemas
2026-02-16 00:46:11 +00:00
Peter Steinberger
ba3a0e7adb
perf(test): fold gateway server utils into misc suite
2026-02-16 00:18:27 +00:00
Peter Steinberger
67bfe8fb80
perf(test): cut gateway unit suite overhead
2026-02-16 00:18:26 +00:00
Advait Paliwal
115cfb4430
gateway: add cron finished-run webhook ( #14535 )
...
* gateway: add cron finished webhook delivery
* config: allow cron webhook in runtime schema
* cron: require notify flag for webhook posts
* ui/docs: add cron notify toggle and webhook docs
* fix: harden cron webhook auth and fill notify coverage (#14535 ) (thanks @advaitpaliwal)
---------
Co-authored-by: Tyler Yust <TYTYYUST@YAHOO.COM>
2026-02-15 16:14:17 -08:00
Shakker
b562aa6625
fix(gateway): keep boot sessions ephemeral without remapping main
2026-02-16 00:03:21 +00:00
Shakker
fe73878dfc
fix(gateway): preserve session mapping across gateway restarts
2026-02-16 00:03:21 +00:00
Peter Steinberger
a90e007d50
refactor(test): reuse env snapshot in gateway ws harness
2026-02-15 23:56:57 +00:00
Peter Steinberger
f809ff5e55
refactor(test): reuse env snapshot helper
2026-02-15 23:51:24 +00:00
Peter Steinberger
abd009b092
refactor(test): dedupe openresponses server setup
2026-02-15 23:34:52 +00:00
Peter Steinberger
35ab521e07
refactor(test): simplify voicewake env cleanup
2026-02-15 23:34:02 +00:00
Peter Steinberger
a68ed3f64c
refactor(test): reuse env snapshots in gateway call tests
2026-02-15 23:22:58 +00:00
Peter Steinberger
31980bcaf1
refactor(test): dedupe gateway env restores
2026-02-15 23:18:16 +00:00
Peter Steinberger
36b5f0c9a8
perf(test): consolidate gateway server-methods suites
2026-02-15 23:14:42 +00:00
Peter Steinberger
0b56472cf5
refactor(test): dedupe ios/android gateway client id tests
2026-02-15 23:07:50 +00:00