mirror of
https://github.com/openclaw/openclaw.git
synced 2026-10-03 17:53:39 +00:00
* fix(gateway): keep received work inside its state lifetime Join original WebSocket dispatch, cooperating refreshes and connection cleanup before releasing Gateway dependencies. Retire passive approval/question/run observers without inventing durable decisions, and preserve test state until native callbacks and first browser closes settle. Remove the unused process-local approval implementation and forwarding adapters. The refactor removes 404 production lines from the initial repair while retaining boundary regressions and moving manager tests onto the real durable path. Verified under enforced credential-free isolation: 2,143 distinct owner/native/process tests, a final 77-test rerun, changed gates, product/UI builds and scoped-clean Codex P0 review. Protected exact-order browser replay remains a pre-merge gate; historical incomplete audits are not acceptance. * fix(gateway): join worker cleanup before closing transport Fence ingress without disconnecting the supervisor needed for worker cleanup, then join received work before releasing the remaining Gateway dependencies. Preserve exact pending-node authority during direct and restart shutdown. Keep startup logging and sidecar acquisition owned independently of fail-fast readiness, and retire published plugin services only through their actual owner. Join portal cleanup before reporting sibling shutdown failures. Record positive test-Gateway closure at its owner. Retain fixture state and selectors after incomplete shutdown, including across module reload, without confusing a post-close diagnostic with an unfinished producer. Cover that boundary through an isolated real-Gateway counterfactual and regression. Consolidate UI finalization with the shared QA cleanup owner and separate the lazy handler registry from dispatch without changing loading or method order. Derive handler families from typed descriptor rows and remove the old casts. Follow-up repair for the state-lifetime boundary in #136145 and #136146. * fix(gateway): fence worker frames during ordinary close Reject newly received worker frames once their connection generation starts closing, while retaining queued work and its completion owners. Cover the live-socket window through the real worker protocol and a checked synthetic node sink. Synchronize the update-failure UI test with its intended Updates recovery navigation before reopening the Inbox. Follow-up for #136146 (Gateway received-work lifetime), addressing the shutdown-admission gap from review. * fix(browser): join SDK-initiated MCP transport cleanup Route SDK initialization failure and transport close through the existing Chrome MCP process owner before native close clears the child PID. Capture the native closer separately so concurrent callers join one cleanup path without recursion or losing descendant ownership. Collect startup diagnostics after cleanup and stderr completion, while never-spawned commands skip the unused pipe. Preserve cleanup failures and the existing launch, environment, and process-group behavior. Exercise late stderr, descendant cleanup, forced termination, ENOENT, and backpressure through real subprocesses. * fix(gateway): retain supervisors after worker shutdown failure Require connection-dependent sidecars to stop successfully before draining their supervisor transports or releasing runtime dependencies. Cover public and startup-failure shutdown, retained-owner retry, and late sidecar registration. * test(gateway): join policy writers after releasing handler gates Preserve policy-revocation and response-order coverage under the received-work dispatcher completion contract. Retain all held calls and release/join them in finally so tests cannot wait on their own unreleased gates. * fix(gateway): retain execution through required shutdown Preserve early acknowledgements while joining original raw, typed, and agent execution through final cleanup. Cancel this Gateway's runs before the join, and fence late admission at controller publication. Retain failed startup acquisitions and plugin cleanup owners, preserve both startup and cleanup errors, and prevent CLI successors after incomplete retirement. Keep deferred startup hooks and sentinel refresh in their owner. Remove the monolithic close factory and redundant post-abort polling. Declare compiled plugin dependencies for the full lifecycle fixture through the existing pretest owner. Align the QA publishing reference with main. Validated isolated before/after regressions, original-order execution, startup/CLI/plugin suites, full build, types, lint, and Codex review. The protected metadata audit remains unaccepted; this is not merge approval. Refs #136145, #136146. * test(agents): align Code Mode fixtures with main Adopt the SessionManager fixture and structured-result classification from #138238, preserving the attempted hidden namespace call and the checks that neither the original preparer nor action executes. Remove redundant pass-through mocks with the upstream fixture. Both files match the successful upstream CI head ce42af56a82f exactly. Gateway runtime code is unchanged; this resolves the parallel test-fix merge conflict. * test(gateway): reuse tracked agent contexts Replace three partial agent-handler contexts with the shared fixture. The missing execution tracker threw after admission handoff and leaked session claims into later continuation tests. Preserve their assertions, timers, and original order. The complete 302-case file reproduces all six CI failures before this repair and passes afterward in the same order. Type checks, type-aware lint, formatting, and independent Codex review pass. No production code changes. * test: fix gateway, Signal, and UI fixture lifetimes Reset agent database handles, validation, and terminal latches only within retired fixture roots before deleting or recreating their files. Preserve ordinary runtime reopen behavior and unrelated roots. Model the pending host question in Signal's partial-delivery fixture and assert the accepted reaction binding. Use actual Settings navigation from independent cold UI contexts so document reloads do not abort startup scripts and masquerade as asset failures. Preserve existing assertions. Reproduced the Node and Signal failures locally and the UI cancellation on Linux. The Linux owner replay passes 30 tests across six files, the full settings suite passes seven, and the final UI revision passes both cold routes locally. Static checks and independent source review pass. The isolated native fixture still times out on this Mac; Linux completes its unchanged case in 13 seconds. Protected audit acceptance and final-head hosted checks remain separate landing requirements for PR #136146. * test(sessions): call database reset without hook context Wrap the participant suite teardown in a zero-argument callback. Vitest passes TestContext to registered hooks; the reset helper now accepts an optional root path for selective fixture retirement. The full seven-case file reproduced four teardown failures before this change and passes all seven afterward. Assertions and cleanup semantics are unchanged. The callback audit found no other direct registrations. Refs #136146, #136145.
5 lines
185 B
TypeScript
5 lines
185 B
TypeScript
export {
|
|
resolveWindowsPowerShellPath,
|
|
resolveWindowsSystem32Path,
|
|
} from "../windows-cmd-helpers.mjs";
|
|
export function resolveWindowsTaskkillPath(env?: NodeJS.ProcessEnv): string;
|