Peter Steinberger
3b7b2a2a1f
chore: update dependencies and migrate major contracts ( #112963 )
...
* build(deps): complete latest dependency migrations
* fix(deps): satisfy updated dependency types
* fix(deps): hold incompatible build tooling
* fix(deps): preserve portable tooling contracts
* build(deps): allow reviewed fresh transitive releases
* fix(deps): repair major upgrade validation
* build(deps): regenerate current dependency graph
* fix(logging): keep tslog adapter type private
* fix(agents): narrow grep subprocess handle
* fix(codex): prefer pinned managed binary
* fix(codex): fence managed native provenance
* build(deps): align codex ACP with managed harness
* fix(slack): use socket-mode Undici runtime
* fix(slack): detect cross-runtime responses
* fix(slack): bridge package-owned fetch types
* fix(deps): retain tslog v4 JSON contract
* build(plugin-sdk): refresh logging API manifest
2026-07-23 21:21:01 -07:00
Peter Steinberger
9a94beace7
fix(process): preserve descendant output under event-loop stalls ( #111040 )
...
* fix(process): drain buffered descendant output after exit
* test(process): cover deferred output release phase
2026-07-18 17:00:08 -07:00
mushuiyu886
4e11da2872
fix(process): UTF-8 command output corrupts at Windows byte limits ( #105274 )
...
* fix(process): preserve byte-capped UTF-8 output on Windows
* fix(process): skip codepage probe for UTF-8 output
Co-authored-by: 杨浩宇0668001029 <yang.haoyu@xydigit.com >
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-18 22:44:12 +01:00
Peter Steinberger
d1684f48a3
refactor: delete dead infra and config exports ( #106019 )
...
* refactor: delete dead infra and config exports
* refactor: preserve live infra and config contracts
* refactor(config): remove obsolete file-store lifecycle APIs
* refactor(infra): finish current-main dead export cleanup
2026-07-13 12:00:47 -07:00
Peter Steinberger
db02a96c4c
refactor(process): route bounded commands through Execa ( #106495 )
...
* refactor(process): centralize bounded command execution
* refactor(process): migrate core one-shot commands
* refactor(plugins): migrate one-shot commands
* fix(process): await Windows tree termination
* chore(plugin-sdk): refresh process runtime surface
* refactor(process): migrate remaining bounded commands
* refactor(process): normalize command result handling
* refactor(process): split execution responsibilities
* chore(plugin-sdk): refresh API baseline
* chore(process): remove release-owned changelog entry
* fix(process): narrow binary command input checks
* fix(process): cap sandbox command output
* fix(qa-lab): preserve exact node probe env
* chore(ci): refresh dead export baseline
* fix(process): preserve force-kill command deadlines
* fix(process): avoid post-exit timeout reclassification
* test(process): update scp staging wrapper mock
* test(process): update remaining wrapper mocks
* refactor(qa-lab): preserve Execa tar execution
2026-07-13 11:07:35 -07:00
Peter Steinberger
4f287dd740
refactor(process): adopt Execa execution layer ( #105939 )
...
* refactor(process): adopt execa execution layer
* fix(process): preserve launch error semantics
* chore(process): ratchet exec size baseline
* fix(process): preserve Windows and error contracts
* chore(plugin-sdk): ratchet wildcard surface budget
* test(process): allow resolved Windows executable paths
* fix(process): preserve Windows shim completion
* test(process): isolate Execa mocks
* style(process): format Windows exec test
* style(process): apply Windows test formatting
* test(process): normalize Windows system path casing
* fix(process): harden execa edge handling
* test(tui): preserve ESM fixture semantics
* fix(process): preserve PATHEXT lookup contract
* fix(process): keep invocation type internal
2026-07-13 02:21:08 -07:00
Peter Steinberger
c7909ead5c
fix(update): prevent build workers surviving timeouts ( #103406 )
...
* fix(update): terminate timed-out process trees
* chore: leave changelog to release generation
2026-07-10 06:30:07 +01:00
Wynne668
55fa22b482
fix(process): handle taskkill spawn errors ( #101392 )
2026-07-07 08:06:31 +01:00
Vincent Koc
a192b2ea52
fix(windows): resolve taskkill in core spawns
2026-06-21 10:57:41 +02:00
Vincent Koc
2248aa4315
fix(process): wrap Windows command shims
2026-06-20 06:50:56 +02:00
NVIDIAN
781e03a179
fix(process): return timeout code for killed commands
2026-06-10 19:21:35 +01:00
Peter Steinberger
a628a66e4d
docs: document process helpers
2026-06-04 20:14:34 -04:00
Peter Steinberger
304e2c83c0
chore(lint): enable stricter oxlint rules
2026-05-31 18:59:02 +01:00
Peter Steinberger
4f4d108639
chore(lint): remove underscore-dangle allow list ( #83542 )
...
* chore(lint): reduce underscore-dangle exceptions
* chore(lint): reduce more underscore exceptions
* chore(lint): remove underscore-dangle allow list
* fix(lint): repair underscore cleanup regressions
* test(lint): track version define suppression
2026-05-18 14:56:06 +01:00
Vincent Koc
e0c3c80ebc
test: share Windows platform spy helpers
2026-05-17 08:56:56 +08:00
Peter Steinberger
f468f0f61f
test: guard windows exec mock calls
2026-05-12 04:19:02 +01:00
Peter Steinberger
60e5804a9d
test: guard windows exec spawn call
2026-05-11 22:42:30 +01:00
Shakker
3cebb019d0
test: tighten windows exec assertions
2026-05-11 04:51:55 +01:00
Devin Robison
982d123b80
Harden Windows command wrapper resolution ( #77472 )
...
* Harden Windows command wrapper resolution
* clawsweeper: route Windows cmd.exe wrapper through getWindowsInstallRoots
Replace the local SystemRoot/windir/SYSTEMROOT/WINDIR scan in
resolveTrustedWindowsCmdExe with the shared getWindowsInstallRoots()
resolver from src/infra/windows-install-roots.ts. The shared resolver
already rejects UNC paths, root-relative values, semicolon-delimited
path-lists, and missing-drive-letter roots, and prefers registry-derived
roots over env, so the wrapper-launch trust boundary now matches the
existing Windows install-root boundary on main.
Tests:
- _resetWindowsInstallRootsForTests in beforeEach so cached roots track
per-test process.env mutations
- expectedTrustedCmdExe helper now joins the resolved systemRoot, so the
expected wrapper executable matches the production resolver on Linux
CI (where it falls back to DEFAULT_WINDOWS_SYSTEM_ROOT)
- new "rejects unsafe Windows root values" test covers UNC,
semicolon-delimited path-list, root-relative, and bare-relative
SystemRoot inputs
* Add CHANGELOG entry for #77472 Windows command wrapper hardening
* clawsweeper: stub registry probe in Windows wrapper tests
On real Windows CI runners getWindowsInstallRoots() reads the canonical
SystemRoot from the registry (e.g. C:\WINDOWS) before falling back to
process.env, which shadowed the env-only setup in the ComSpec-poisoning
and unsafe-root tests and produced casing mismatches like
"C:\WINDOWS\System32\cmd.exe" vs the expected "C:\Windows\...". Pass a
queryRegistryValue stub returning null in beforeEach (and inside the
unsafe-root loop) so install-root resolution is fully driven by the
test's process.env setup on every platform.
* clawsweeper: overwrite WINDIR alongside SystemRoot in unsafe-root test
Real Windows runners did not honor `delete process.env.windir`, so the
unsafe-root iteration's WINDIR fallback still resolved to the canonical
`C:\WINDOWS` and produced a casing mismatch against the expected default
`C:\Windows\System32\cmd.exe`. Set both `SystemRoot` and `WINDIR` to the
unsafe payload so every install-root env source is rejected by
`normalizeWindowsInstallRoot` and the resolver falls through to
`DEFAULT_WINDOWS_SYSTEM_ROOT`.
2026-05-04 14:33:18 -06:00
Peter Steinberger
3921e1b0b7
fix(process): kill Windows command trees on timeout
...
(cherry picked from commit 9cc3ae100b )
2026-05-04 20:44:27 +01:00
Peter Steinberger
e1acb61317
refactor: expose SDK test helper subpaths
2026-04-28 03:28:17 +01:00
Vincent Koc
e6d2c9b080
fix(process): decode Windows command output with console codepage awareness ( #72393 )
...
* fix(process): decode Windows command output with console codepage awareness
* fix(clownfish): address review for ghcrawl-199248-agentic-merge (1)
2026-04-26 23:10:59 -07:00
Vincent Koc
b22bbf5660
test(process): share shimmed windows success assertions
2026-04-12 09:37:06 +01:00
Peter Steinberger
552b5d3859
test: speed up cli and process tests
2026-04-08 00:30:22 +01:00
Peter Steinberger
edab013e51
fix: support corepack cmd shim on windows
2026-04-06 03:48:47 +01:00
Peter Steinberger
ab318de8b7
test(plugins): finish moving contract coverage
2026-04-04 00:11:39 +01:00
Vincent Koc
0464435777
fix(ci): align windows builtin mock types
2026-04-04 03:57:48 +09:00
Peter Steinberger
bc23db501b
test: trim more core importOriginal usage
2026-04-03 19:49:43 +01:00
Peter Steinberger
636a23b73e
test: extract node builtin mock helpers
2026-04-03 18:40:28 +01:00
Peter Steinberger
f03d7c5a4c
refactor: centralize Windows exec invocation
2026-04-02 18:27:53 +01:00
lawrence3699
2fd7f7ca52
fix(exec): hide windows console windows
2026-04-03 02:19:32 +09:00
Peter Steinberger
b87f33c920
test(ci): deflake windows npm exec coverage
2026-03-31 19:28:11 +01:00
Vincent Koc
11590eb6ce
fix(ci): restore dotenv trust boundary and windows npm exit handling
2026-03-31 21:51:17 +09:00
George Zhang
e133924047
[codex] harden clawhub plugin publishing and install ( #56870 )
...
* fix: harden clawhub plugin publishing and install
* fix(process): preserve windows shim exit success
2026-03-29 11:59:19 -07:00
Ayaan Zaidi
cfba0ab68f
fix(process): wait for windows close state settlement
2026-03-28 16:55:15 +05:30
Ayaan Zaidi
c3c1f9df54
fix(process): wait for windows exit code settlement
2026-03-28 16:37:29 +05:30
Ayaan Zaidi
e0ba57e9c7
fix: preserve windows child exit codes
2026-03-28 14:55:20 +05:30
Peter Steinberger
5fb7a1363f
fix: stabilize full gate
2026-03-17 07:06:25 +00:00
Peter Steinberger
b1c30f0ba9
refactor: dedupe cli config cron and install flows
2026-03-02 19:57:33 +00:00
Tak Hoffman
2a11a20fe2
test(windows): stabilize exec wrapper mock assertions ( #31771 )
2026-03-02 08:24:49 -06:00
icesword0760
6e008e93be
Process: fix Windows .cmd spawn EINVAL (openclaw#29759) thanks @icesword0760
...
Verified:
- pnpm vitest run src/process/exec.test.ts src/process/exec.windows.test.ts
Co-authored-by: icesword0760 <123886211+icesword0760@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-03-02 07:49:54 -06:00