Peter Steinberger
81a85c19ff
test(gateway): tighten e2e timeouts and dedupe invoke checks
2026-02-21 23:02:44 +00:00
Peter Steinberger
ae70bf4dca
refactor(test): simplify env scoping in exec and usage tests
2026-02-21 19:13:46 +00:00
Peter Steinberger
fa89ae8e9e
fix: stabilize swift protocol generation and flaky tests
2026-02-21 16:53:46 +01:00
Peter Steinberger
a1cb700a05
test: dedupe and optimize test suites
2026-02-19 15:19:38 +00:00
Peter Steinberger
7ebd213acf
perf(test): dedupe telegram thread cases and tighten PTY timer
2026-02-18 22:29:31 +00:00
Peter Steinberger
a011361784
perf(test): remove timer callbacks in command queue tests
2026-02-18 21:53:57 +00:00
Peter Steinberger
8f079afb38
perf(test): remove timer usage in command queue ordering test
2026-02-18 17:46:39 +00:00
Peter Steinberger
c7bc94436b
perf(test): fake queue timers and merge telegram reply-mode checks
2026-02-18 16:01:20 +00:00
Peter Steinberger
308e09c876
perf(test): shorten process timeout fixtures
2026-02-18 04:27:01 +00:00
Peter Steinberger
46278e22cf
perf(test): trim telegram duplicates and queue wait delays
2026-02-18 04:22:59 +00:00
Peter Steinberger
b8b43175c5
style: align formatting with oxfmt 0.33
2026-02-18 01:34:35 +00:00
Peter Steinberger
31f9be126c
style: run oxfmt and fix gate failures
2026-02-18 01:29:02 +00:00
cpojer
2a4ca7671e
chore: Fix types in tests 35/N.
2026-02-17 15:50:07 +09:00
cpojer
03e6acd051
chore: Fix types in tests 28/N.
2026-02-17 14:32:18 +09:00
cpojer
d0cb8c19b2
chore: wtf.
2026-02-17 13:36:48 +09:00
Sebastian
ed11e93cf2
chore(format)
2026-02-16 23:20:16 -05:00
Sebastian
f7d2e15a2e
test: stabilize infra tests
2026-02-16 22:37:34 -05:00
cpojer
01ea808876
chore: Format files.
2026-02-17 10:57:31 +09:00
Sebastian
fb996031bc
fix(process): harden graceful kill-tree cancellation semantics
2026-02-16 20:37:08 -05:00
Sebastian
726ad45c75
Revert "fix: add windowsHide: true to spawn in runCommandWithTimeout"
...
This reverts commit 32c66aff49 .
2026-02-16 20:27:32 -05:00
cpojer
90ef2d6bdf
chore: Update formatting.
2026-02-17 09:18:40 +09:00
artale
a1a1f56841
fix(process): disable detached spawn on Windows to fix empty exec output ( #18035 )
...
The supervisor's child adapter always spawned with `detached: true`,
which creates a new process group. On Windows Scheduled Tasks (headless,
no console), this prevents stdout/stderr pipes from properly connecting,
causing all exec tool output to silently disappear.
The old exec path (pre-supervisor refactor) never used `detached: true`.
The regression was introduced in cd44a0d01 (refactor process spawning).
Changes:
- child.ts: set `detached: false` on Windows, keep `detached: true` on
POSIX (where it's needed to survive parent exit). Skip the no-detach
fallback on Windows since it's already the default.
- child.test.ts: platform-aware assertions for detached behavior.
Fixes #18035
Fixes #17806
2026-02-16 23:59:53 +01:00
Guy
32c66aff49
fix: add windowsHide: true to spawn in runCommandWithTimeout
...
Fixes flashing conhost.exe windows on Windows when exec module spawns
child processes. The windowsHide: true option prevents orphaned conhost.exe
processes and eliminates disruptive terminal window flashing.
Closes #18613
2026-02-16 23:49:47 +01:00
Daniel Sauer
20957efa46
fix(process): graceful process tree termination with SIGTERM before SIGKILL
...
Process trees (pty sessions, tool exec) were being SIGKILL'd immediately
without any grace period for cleanup. This prevented child processes from:
- Flushing buffers and closing files cleanly
- Closing network connections
- Terminating their own child processes
- Removing temporary files
Changes:
- Send SIGTERM to process group first (Unix)
- Wait configurable grace period (default 3s)
- Then SIGKILL if process still alive
- Windows: taskkill without /F first, then with /F after grace period
- Use unref() on timeout to not block event loop exit
Fixes #18619
Co-authored-by: James <james@openclaw.ai >
2026-02-16 23:49:44 +01:00
Peter Steinberger
a177f7b9fe
refactor(tests): dedupe slack telegram and web monitor setup
2026-02-16 17:06:40 +00:00
Peter Steinberger
9684ae4c6d
test: tighten process timeout thresholds with stabilized emit guard
2026-02-16 05:09:47 +00:00
Peter Steinberger
0b780789bc
test: further reduce process timeout waits in fast suites
2026-02-16 04:48:55 +00:00
Peter Steinberger
795874711b
test: shorten process timeout waits in exec and supervisor suites
2026-02-16 04:45:44 +00:00
Peter Steinberger
17d8e2a1c8
test: reduce supervisor no-output wait threshold
2026-02-16 04:43:33 +00:00
Peter Steinberger
c53e4e6c8f
test: trim exec timeout waits for faster suite runtime
2026-02-16 04:41:45 +00:00
Peter Steinberger
1b223dbdd8
test: isolate git-hooks integration and stabilize exec timeout
2026-02-16 04:24:00 +00:00
Peter Steinberger
bc65e787c8
test: trim process no-output timeout waits
2026-02-16 04:17:38 +00:00
Peter Steinberger
a7385aa8ac
test: reduce process timeout test latency
2026-02-16 04:08:50 +00:00
Peter Steinberger
83ce48302f
test: trim timeout-heavy exec and telegram cases
2026-02-16 04:00:53 +00:00
Peter Steinberger
31939397a9
test: optimize hot-path test runtime
2026-02-16 03:49:05 +00:00
Peter Steinberger
38ac4b8083
test(pty): stabilize non-windows signal assertion
2026-02-16 03:06:03 +00:00
Peter Steinberger
273d70741f
refactor(supervisor): share env normalization
2026-02-16 01:41:35 +00:00
Onur
cd44a0d01e
fix: codex and similar processes keep dying on pty, solved by refactoring process spawning ( #14257 )
...
* exec: clean up PTY resources on timeout and exit
* cli: harden resume cleanup and watchdog stalled runs
* cli: productionize PTY and resume reliability paths
* docs: add PTY process supervision architecture plan
* docs: rewrite PTY supervision plan as pre-rewrite baseline
* docs: switch PTY supervision plan to one-go execution
* docs: add one-line root cause to PTY supervision plan
* docs: add OS contracts and test matrix to PTY supervision plan
* docs: define process-supervisor package placement and scope
* docs: tie supervisor plan to existing CI lanes
* docs: place PTY supervisor plan under src/process
* refactor(process): route exec and cli runs through supervisor
* docs(process): refresh PTY supervision plan
* wip
* fix(process): harden supervisor timeout and PTY termination
* fix(process): harden supervisor adapters env and wait handling
* ci: avoid failing formal conformance on comment permissions
* test(ui): fix cron request mock argument typing
* fix(ui): remove leftover conflict marker
* fix: supervise PTY processes (#14257 ) (openclaw#14257) (thanks @onutc)
2026-02-16 02:32:05 +01:00
Peter Steinberger
725f63f724
perf(test): fold restart recovery helper into spawn utils suite
2026-02-16 00:18:27 +00:00
Peter Steinberger
ee2fa5f411
refactor(test): reuse env snapshots in unit suites
2026-02-16 00:02:32 +00:00
Peter Steinberger
92f8c0fac3
perf(test): speed up suites and reduce fs churn
2026-02-15 19:29:27 +00:00
Peter Steinberger
a7eb0dd9a5
fix(security): harden Windows child process spawning
2026-02-15 03:24:55 +01:00
Peter Steinberger
5caf829d28
perf(test): trim duplicate gateway and auto-reply test overhead
2026-02-13 23:40:38 +00:00
Peter Steinberger
caebe70e9a
perf(test): cut setup/import overhead in hot suites
2026-02-13 21:23:50 +00:00
Joseph Krug
4e9f933e88
fix: reset stale execution state after SIGUSR1 in-process restart ( #15195 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 676f9ec45135be0d3471bb0444bc2ac7ce7d5224
Co-authored-by: joeykrug <5925937+joeykrug@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-02-13 15:30:09 -05:00
Yi LIU
a5ccfa57a8
refactor(process): use dedicated CommandLaneClearedError in clearCommandLane
...
Replace bare `new Error("Command lane cleared")` with a dedicated
`CommandLaneClearedError` class so callers that fire-and-forget
enqueued tasks can catch this specific type and avoid surfacing
unhandled rejection warnings.
2026-02-13 19:43:20 +01:00
Yi LIU
a49dd83b14
fix(process): reject pending promises when clearing command lane
...
clearCommandLane() was truncating the queue array without calling
resolve/reject on pending entries, causing never-settling promises
and memory leaks when upstream callers await enqueueCommandInLane().
Splice entries and reject each before clearing so callers can handle
the cancellation gracefully.
2026-02-13 19:43:20 +01:00
Shadow
be18f5f0f0
Process: fix Windows exec env overrides
2026-02-13 12:06:47 -06:00
Burak Sormageç
23b1b51568
fix(windows): normalize env entries for spawn
2026-02-13 17:48:04 +01:00
Burak Sormageç
e97aa45428
fix(windows): handle undefined environment variables in runCommandWithTimeout
2026-02-13 17:48:04 +01:00