Skip to content

fix(daemon): keep node tasks off gateway listener cleanup#85597

Merged
steipete merged 1 commit into
openclaw:mainfrom
giodl73-repo:fix-windows-node-skip-gateway-port-reclaim
May 27, 2026
Merged

fix(daemon): keep node tasks off gateway listener cleanup#85597
steipete merged 1 commit into
openclaw:mainfrom
giodl73-repo:fix-windows-node-skip-gateway-port-reclaim

Conversation

@giodl73-repo

@giodl73-repo giodl73-repo commented May 23, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Keep Windows node Scheduled Task stop/restart/status from treating the gateway listener port as node-owned runtime evidence.
  • Add installed-command process matching for node Scheduled Task and Startup-folder fallback paths, so node lifecycle commands can still find the managed node host without touching unrelated gateway listeners or manual node runs.
  • Cover registered task, Startup fallback, mixed fallback/task, and delayed schtasks launch cases.

Fixes #85289

Verification

  • git diff --check
  • node_modules/.bin/oxfmt --check --threads=1 src/daemon/schtasks.ts src/daemon/schtasks.stop.test.ts src/daemon/schtasks.startup-fallback.test.ts
  • OPENCLAW_VITEST_MAX_WORKERS=1 OPENCLAW_TEST_PROJECTS_SERIAL=1 OPENCLAW_VITEST_NO_OUTPUT_TIMEOUT_MS=120000 node scripts/run-vitest.mjs run src/daemon/schtasks.stop.test.ts --reporter=verbose
  • OPENCLAW_VITEST_MAX_WORKERS=1 OPENCLAW_TEST_PROJECTS_SERIAL=1 OPENCLAW_VITEST_NO_OUTPUT_TIMEOUT_MS=120000 node scripts/run-vitest.mjs run src/daemon/schtasks.startup-fallback.test.ts --reporter=dot
  • codex review --uncommitted

Real behavior proof
Behavior addressed: Windows node Scheduled Task lifecycle no longer reclaims or reports runtime from the Gateway listener port, while still detecting and stopping the installed node host process by matching the installed command line.
Real environment tested: WSL Ubuntu-24.04 durable OpenClaw worktree at /root/src/openclaw-85597; native Windows host redmond\giodl with Ubuntu-24.04 WSL2; Windows Task Scheduler (schtasks) run/end/rerun/end against task name OpenClaw Node; WSL loopback listener reachable from Windows on 127.0.0.1:19897.
Exact steps or command run after this patch: From the WSL PR checkout at SHA 9204441152acbc9ace41eff1ed369eed053f3935, ran focused daemon tests and maintainer Testbox below; then started a WSL TCP listener with Windows Start-Process wsl.exe -u root -- node /tmp/oc85597-listener.js 19897, created OpenClaw Node with schtasks /Create, ran schtasks /Run, schtasks /End, reran, and ended it again while probing Test-NetConnection 127.0.0.1 -Port 19897 after each lifecycle step.
Evidence after fix: Focused daemon tests passed; Blacksmith Testbox pnpm check:changed passed; native Windows/WSL supplemental proof showed tcp_127.0.0.1_19897=True after WSL listener start, after node task run, after node task end, after node task rerun, and after node task second end.
Observed result after fix: Node service paths skip gateway listener/port cleanup, ignore unrelated manual node hosts on the same gateway port, and terminate only the matching installed node host command when stop/restart needs process cleanup. In the native Windows/WSL supplemental proof, Windows Task Scheduler lifecycle activity did not disrupt the WSL loopback listener.
What was not tested: full native openclaw node install/start/stop/restart against the active Sebby/OpenClaw VM setup. The local native package path was blocked by unrelated environment issues: pnpm build currently fails on protobufjs descriptor resolution in the shared WSL dependency tree, and the packaged launcher/tsx respawn hits a Windows child-process Access is denied failure on this host.

Additional maintainer verification

  • node scripts/run-vitest.mjs src/daemon/schtasks.stop.test.ts src/daemon/schtasks.startup-fallback.test.ts src/daemon/schtasks.test.ts src/daemon/service.test.ts src/commands/node-daemon-install-helpers.test.ts - passed 5 files / 78 tests
  • node_modules/.bin/oxlint src/daemon/schtasks.ts src/daemon/schtasks.stop.test.ts src/daemon/schtasks.startup-fallback.test.ts
  • node_modules/.bin/oxfmt --check --threads=1 src/daemon/schtasks.ts src/daemon/schtasks.stop.test.ts src/daemon/schtasks.startup-fallback.test.ts
  • git diff --check
  • Blacksmith Testbox through Crabbox: tbx_01ks9f2fmhfar6ahwqvx071pak, Actions run https://github.com/openclaw/openclaw/actions/runs/26322648137, command corepack pnpm check:changed, exit 0
  • Native Windows + WSL2 supplemental proof: local Windows host redmond\giodl, Ubuntu-24.04 WSL2, task OpenClaw Node, port 19897; Test-NetConnection stayed true after schtasks /Run, schtasks /End, rerun, and second end; cleanup removed the task and stopped the listener.

@openclaw-barnacle openclaw-barnacle Bot added gateway Gateway runtime size: L maintainer Maintainer-authored PR labels May 23, 2026
@clawsweeper

clawsweeper Bot commented May 23, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs maintainer review before merge. Reviewed May 26, 2026, 1:48 PM ET / 17:48 UTC.

Summary
The PR updates Windows Scheduled Task daemon cleanup so node stop/restart/status skip gateway listener port ownership and instead match the installed node host command, with focused stop and Startup fallback tests.

PR surface: Source +175, Tests +441. Total +616 across 3 files.

Reproducibility: yes. source-reproducible: current main's Windows Scheduled Task stop/restart path always resolves and cleans gateway listener ports, and the linked issue gives concrete Windows/WSL2 steps. I did not rerun the Windows repro in this read-only review.

Review metrics: none identified.

Merge readiness
Overall: 🦞 diamond lobster
Proof: 🦞 diamond lobster
Patch quality: 🦞 diamond lobster
Result: ready for maintainer review.

Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch.

Risk before merge

  • This PR changes availability-sensitive Windows Scheduled Task stop/restart/status behavior; a bad process match could leave the managed node host running or terminate the wrong process.
  • The PR body notes that the full packaged native openclaw node install/start/stop/restart path was not tested, although direct Windows Task Scheduler proof and maintainer acceptance reduce that gap.

Maintainer options:

  1. Accept the direct Task Scheduler proof (recommended)
    Maintainers can merge with the documented packaged-CLI proof gap because the direct Windows Task Scheduler primitive, focused tests, and current checks cover the owned cleanup behavior.
  2. Ask for packaged CLI proof first
    If maintainers want exact launcher coverage, require native openclaw node install/start/stop/restart proof on Windows before merge.

Next step before merge
Protected maintainer label plus availability-sensitive Windows daemon cleanup means the next action is maintainer merge/proof acceptance, not automated repair.

Security
Cleared: No concrete security or supply-chain concern found; the diff does not change dependencies, workflows, permissions, package metadata, or secret handling.

Review details

Best possible solution:

Land the focused daemon fix after maintainer review and CI acceptance so Windows node lifecycle commands target only the installed node host and leave WSL2 gateway listeners alone.

Do we have a high-confidence way to reproduce the issue?

Yes, source-reproducible: current main's Windows Scheduled Task stop/restart path always resolves and cleans gateway listener ports, and the linked issue gives concrete Windows/WSL2 steps. I did not rerun the Windows repro in this read-only review.

Is this the best way to solve the issue?

Yes; splitting gateway-listener cleanup by service kind and matching the installed node command is the narrowest maintainable fix for the implicated daemon path. The remaining packaged CLI proof gap is a maintainer acceptance call, not a concrete code defect from this review.

AGENTS.md: found and applied where relevant.

Codex review notes: model gpt-5.5, reasoning high; reviewed against 8c575bd3c8d2.

Label changes

Label justifications:

  • P1: The linked report describes Windows node lifecycle commands disrupting WSL2 gateway connectivity, a broken core daemon workflow affecting availability.
  • merge-risk: 🚨 availability: The PR changes Windows daemon process detection and termination behavior, so merge risk is about keeping node/gateway processes available and correctly targeted.
  • rating: 🦞 diamond lobster: Overall readiness is 🦞 diamond lobster; proof is 🦞 diamond lobster and patch quality is 🦞 diamond lobster.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Sufficient (live_output): The PR body includes after-fix native Windows/WSL2 Task Scheduler proof and linked Testbox verification, and a maintainer comment accepts the direct Task Scheduler proof for this availability fix.
  • proof: sufficient: Contributor real behavior proof is sufficient. The PR body includes after-fix native Windows/WSL2 Task Scheduler proof and linked Testbox verification, and a maintainer comment accepts the direct Task Scheduler proof for this availability fix.
Evidence reviewed

PR surface:

Source +175, Tests +441. Total +616 across 3 files.

View PR surface stats
Area Files Added Removed Net
Source 1 222 47 +175
Tests 2 442 1 +441
Docs 0 0 0 0
Config 0 0 0 0
Generated 0 0 0 0
Other 0 0 0 0
Total 3 664 48 +616

What I checked:

  • Repository policy read: Root AGENTS.md was read in full; its ClawSweeper PR policy treats startup/fallback behavior and process availability as compatibility/upgrade-sensitive and keeps protected maintainer-labeled items for human handling. (AGENTS.md:1, 8c575bd3c8d2)
  • Merge result scope: The synthetic merge result changes only the Windows Scheduled Task daemon file and two focused daemon test files, matching the stated daemon fix scope. (2a102da80286)
  • Current main behavior: Current main unconditionally resolves the Scheduled Task port and terminates gateway listeners during stop/restart, which is the source-level path implicated by the linked Windows/WSL2 report. (src/daemon/schtasks.ts:1036, 8c575bd3c8d2)
  • PR implementation: The PR gates gateway listener cleanup by service kind and routes node stop/restart to installed node host process matching instead of gateway port cleanup. (src/daemon/schtasks.ts:1201, ccf3d0481c72)
  • Regression coverage: The new stop/restart test verifies node Scheduled Tasks do not call gateway listener discovery, port inspection, or process-tree killing for a gateway listener. (src/daemon/schtasks.stop.test.ts:171, ccf3d0481c72)
  • CI status: GitHub check-runs for the current head show the relevant required checks and Real behavior proof completed successfully; CodeQL is neutral, not a changed-code failure. (ccf3d0481c72)

Likely related people:

What the crustacean ranks mean
  • 🦀 challenger crab: rare, exceptional readiness with strong proof, clean implementation, and convincing validation.
  • 🦞 diamond lobster: very strong readiness with only minor maintainer review expected.
  • 🐚 platinum hermit: good normal PR, likely mergeable with ordinary maintainer review.
  • 🦐 gold shrimp: useful signal, but proof or patch confidence is still limited.
  • 🦪 silver shellfish: thin signal; proof, validation, or implementation needs work.
  • 🧂 unranked krab: not merge-ready because proof is missing/unusable or there are serious correctness or safety concerns.
  • 🌊 off-meta tidepool: rating does not apply to this item.

Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics.

How this review workflow works
  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.

@clawsweeper clawsweeper Bot added rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. P1 High-priority user-facing bug, regression, or broken workflow. merge-risk: 🚨 availability 🚨 May cause crashes, hangs, restart loops, stalls, or process outages. labels May 23, 2026
@clawsweeper

clawsweeper Bot commented May 23, 2026

Copy link
Copy Markdown
Contributor

ClawSweeper PR egg

✨ Hatched: 🌱 uncommon Cosmic Branchling

Hatch command

Comment @clawsweeper hatch when this PR is hatchable.

Hatchability rules:

  • Merged PRs are hatchable.
  • Open PRs are hatchable when they are status: 👀 ready for maintainer look, status: 🚀 automerge armed, or labeled clawsweeper:automerge.
  • Closed unmerged PRs are hatchable only when one of those hatchable labels is still present in the durable record.

Rarity: 🌱 uncommon.
Trait: purrs at green checks.
Image traits: location artifact grotto; accessory CI status badge; palette moonlit blue and soft silver; mood focused; pose balancing on a branch marker; shell woven fiber shell; lighting gentle morning glow; background little resolved-comment flags.
Share on X: post this hatch
Copy: My PR egg hatched a 🌱 uncommon Cosmic Branchling in ClawSweeper.

What is this egg doing here?
  • Eggs appear after the PR passes real-behavior proof. It is here for vibes, not verdicts: it does not change labels, ratings, merge decisions, or automation.
  • The shell reacts to review momentum: open follow-up work warms it up, re-review makes it wobble, and a clean final review lets it hatch.
  • Hatchability usually comes from sufficient real-behavior proof, no blocking P0/P1/P2 findings, no security attention needed, and clean correctness. A merged PR is already final, so merge makes the egg hatchable independently.
  • The hatch is seeded from this repository and PR number, so the same PR keeps the same creature; the reviewed head SHA can only change safe visual details.
  • Rarity is just collectible sparkle: 🥚 common, 🌱 uncommon, 💎 rare, ✨ glimmer, and 🌈 legendary.

@giodl73-repo
giodl73-repo force-pushed the fix-windows-node-skip-gateway-port-reclaim branch from 41413cd to 9204441 Compare May 23, 2026 03:46
@clawsweeper clawsweeper Bot added rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. and removed rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. labels May 23, 2026
@giodl73-repo

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

Current GitHub checks are green, including Real behavior proof. Please refresh the durable review verdict and labels for this head.

@clawsweeper

clawsweeper Bot commented May 23, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

Re-review progress:

@giodl73-repo

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

Maintainer proof decision for #85597:

I accept the existing partial native Windows/WSL2 proof for this availability fix rather than blocking on the exact packaged openclaw node stop/restart path.

Rationale:

  • The current head 9204441152acbc9ace41eff1ed369eed053f3935 is clean/mergeable and all GitHub checks are green, including Real behavior proof, check-lint, check-guards, check-test-types, check-additional-extension-package-boundary, and the relevant node/gateway shards.
  • The PR body includes native Windows + WSL2 supplemental proof using the real Windows Task Scheduler service primitive this code owns: task OpenClaw Node, WSL listener on 127.0.0.1:19897, and Test-NetConnection stayed true after task run/end/rerun/end.
  • The patch is scoped to src/daemon/schtasks.ts plus focused tests, and ClawSweeper already rated patch quality as platinum hermit. The remaining gap is product-packaged CLI-path proof, not code-path uncertainty.
  • The exact packaged native CLI path was documented as blocked on this host by unrelated local packaging/Windows child-process issues, and I do not want that unrelated environment issue to block this narrow availability fix.

Please refresh the durable verdict/labels with maintainer acceptance of the direct Task Scheduler proof.

@clawsweeper

clawsweeper Bot commented May 23, 2026

Copy link
Copy Markdown
Contributor

🦞👀
ClawSweeper picked this up.

Command router queued. I will update this comment with the next step.

Re-review progress:

@clawsweeper clawsweeper Bot added proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🦞 diamond lobster Very strong PR readiness with only minor maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. and removed rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. merge-risk: 🚨 availability 🚨 May cause crashes, hangs, restart loops, stalls, or process outages. labels May 23, 2026
@giodl73-repo
giodl73-repo force-pushed the fix-windows-node-skip-gateway-port-reclaim branch from 9204441 to 4fcf7bd Compare May 23, 2026 15:49
@giodl73-repo

Copy link
Copy Markdown
Contributor Author

Updated #85597 against current origin/main and resolved the stale merge state.

Current head: 4fcf7bd9df041407d66a03702e20b81d63f25915

Verification run after the rebase:

  • git diff --check origin/main...HEAD
  • node_modules/.bin/oxfmt --check --threads=1 src/daemon/schtasks.ts src/daemon/schtasks.stop.test.ts src/daemon/schtasks.startup-fallback.test.ts
  • node_modules/.bin/oxlint src/daemon/schtasks.ts src/daemon/schtasks.stop.test.ts src/daemon/schtasks.startup-fallback.test.ts
  • node scripts/run-vitest.mjs src/daemon/schtasks.stop.test.ts src/daemon/schtasks.startup-fallback.test.ts src/daemon/schtasks.test.ts src/daemon/service.test.ts src/commands/node-daemon-install-helpers.test.ts --reporter=verbose - passed 5 files / 78 tests
  • .agents/skills/autoreview/scripts/autoreview --mode branch - clean, no accepted/actionable findings

GitHub now reports the PR as mergeable. CI is rerunning on the new head.

@clawsweeper clawsweeper Bot added rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. and removed rating: 🦞 diamond lobster Very strong PR readiness with only minor maintainer review expected. labels May 23, 2026
@clawsweeper

clawsweeper Bot commented May 23, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

Re-review progress:

@giodl73-repo

Copy link
Copy Markdown
Contributor Author

Follow-up after the failed-job rerun on the rebased head 4fcf7bd9df041407d66a03702e20b81d63f25915:

  • checks-node-auto-reply-reply-commands passed on rerun; the earlier checkout/auth failure cleared.
  • The only remaining failed check is checks-node-core-runtime-infra-process.
  • That lane fails in src/config/config.pruning-defaults.test.ts > adds cacheRetention defaults for dated Anthropic primary model refs with expected undefined to be 'short' at line 111.
  • This PR does not touch src/config/config.pruning-defaults.test.ts or the config pruning defaults surface; the branch diff remains limited to src/daemon/schtasks.ts, src/daemon/schtasks.stop.test.ts, and src/daemon/schtasks.startup-fallback.test.ts.

So the conflict update is pushed and the remaining red CI is unrelated to this branch's changed surface.

@giodl73-repo

Copy link
Copy Markdown
Contributor Author

Updated the branch with a focused CI repair for the failing checks.\n\nValidation run locally in WSL from /root/src/openclaw-85597-ci:\n- \pnpm lint --threads=2\n- \pnpm check:test-types\n- \pnpm lint:extensions:bundled\n-
ode scripts/run-vitest.mjs src/gateway/server-startup-post-attach.test.ts extensions/meeting-notes/index.test.ts --reporter=dot\n- \pnpm exec oxfmt --check src/gateway/server-startup-post-attach.test.ts extensions/meeting-notes/src/tool.ts extensions/meeting-notes/index.test.ts\n- \git diff --check\n\nNotes: full \pnpm format:check\ is red on unrelated pre-existing files in this checkout, so I used a changed-file format check instead. No merge performed.

@clawsweeper clawsweeper Bot added the merge-risk: 🚨 availability 🚨 May cause crashes, hangs, restart loops, stalls, or process outages. label May 24, 2026
@giodl73-repo
giodl73-repo force-pushed the fix-windows-node-skip-gateway-port-reclaim branch from 8f29499 to 10b6987 Compare May 24, 2026 20:22
@giodl73-repo

Copy link
Copy Markdown
Contributor Author

Rebased the PR branch onto current main and force-updated it with an explicit lease. The branch now carries only the daemon fix commit on top of main.\n\nRevalidated after rebase in WSL from /root/src/openclaw-85597-ci:\n- \pnpm lint:extensions:bundled\n- \pnpm check:test-types\n- \pnpm lint --threads=2\n-
ode scripts/run-vitest.mjs src/daemon/schtasks.startup-fallback.test.ts src/daemon/schtasks.stop.test.ts --reporter=dot\n- \pnpm exec oxfmt --check src/daemon/schtasks.ts src/daemon/schtasks.startup-fallback.test.ts src/daemon/schtasks.stop.test.ts\n- \git diff --check FETCH_HEAD...HEAD\n\nNo merge performed.

@clawsweeper clawsweeper Bot added rating: 🌊 off-meta tidepool PR readiness rating does not apply to this item. and removed proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. labels May 24, 2026
@giodl73-repo
giodl73-repo force-pushed the fix-windows-node-skip-gateway-port-reclaim branch from 97ed722 to 41a81b5 Compare May 25, 2026 00:41
@clawsweeper clawsweeper Bot added proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. and removed rating: 🌊 off-meta tidepool PR readiness rating does not apply to this item. labels May 25, 2026
@giodl73-repo
giodl73-repo force-pushed the fix-windows-node-skip-gateway-port-reclaim branch from 90231b3 to 1841067 Compare May 26, 2026 05:10
@giodl73-repo

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

Refreshed #85597 onto current upstream \main\ by rebuilding the branch as the original daemon fix commit on top of current main, removing the old merge-from-main commits. New signed head is \1841067017cf8fa8b4e30e684f529f259d9b410a.

Focused WSL validation after the refresh passed:


  • ode scripts/run-vitest.mjs src/daemon/schtasks.stop.test.ts src/daemon/schtasks.startup-fallback.test.ts --reporter=dot\ -> 2 files, 34 tests passed
  • ./node_modules/.bin/oxfmt --check src/daemon/schtasks.ts src/daemon/schtasks.stop.test.ts src/daemon/schtasks.startup-fallback.test.ts\
  • ./node_modules/.bin/oxlint --tsconfig config/tsconfig/oxlint.core.json src/daemon/schtasks.ts src/daemon/schtasks.stop.test.ts src/daemon/schtasks.startup-fallback.test.ts\
  • \git diff --check origin/main...HEAD\
  • \git diff --check\

Existing native Windows/WSL2 Task Scheduler proof remains in the PR body. No merge performed.

@clawsweeper

clawsweeper Bot commented May 26, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

Re-review progress:

@clawsweeper clawsweeper Bot added rating: 🦞 diamond lobster Very strong PR readiness with only minor maintainer review expected. and removed rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. labels May 26, 2026
@giodl73-repo
giodl73-repo force-pushed the fix-windows-node-skip-gateway-port-reclaim branch from 1841067 to 1697564 Compare May 26, 2026 05:20
@giodl73-repo

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

Refreshed #85597 onto current upstream \main\; new signed head is \169756458c5298a85cb063ff7deafe26d3fe8f80\.

Focused WSL validation after the refresh passed:

  • \
    ode scripts/run-vitest.mjs src/daemon/schtasks.stop.test.ts src/daemon/schtasks.startup-fallback.test.ts --reporter=dot\ -> 2 files, 34 tests passed
  • \./node_modules/.bin/oxfmt --check src/daemon/schtasks.ts src/daemon/schtasks.stop.test.ts src/daemon/schtasks.startup-fallback.test.ts\
  • \./node_modules/.bin/oxlint --tsconfig config/tsconfig/oxlint.core.json src/daemon/schtasks.ts src/daemon/schtasks.stop.test.ts src/daemon/schtasks.startup-fallback.test.ts\
  • \git diff --check origin/main...HEAD\
  • \git diff --check\

Existing native Windows/WSL2 Task Scheduler proof remains in the PR body. No merge performed.

@clawsweeper

clawsweeper Bot commented May 26, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

Re-review progress:

@giodl73-repo
giodl73-repo force-pushed the fix-windows-node-skip-gateway-port-reclaim branch from 1697564 to ccf3d04 Compare May 26, 2026 17:41
@giodl73-repo

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

Refreshed #85597 onto current upstream \main\; new signed head is \ccf3d0481c72f2df08135bb1fcf5f1559947f788\.

Focused WSL validation after the refresh passed:

  • \
    ode scripts/run-vitest.mjs src/daemon/schtasks.stop.test.ts src/daemon/schtasks.startup-fallback.test.ts --reporter=dot\ -> 2 files, 34 tests passed
  • \./node_modules/.bin/oxfmt --check src/daemon/schtasks.ts src/daemon/schtasks.stop.test.ts src/daemon/schtasks.startup-fallback.test.ts\
  • \./node_modules/.bin/oxlint --tsconfig config/tsconfig/oxlint.core.json src/daemon/schtasks.ts src/daemon/schtasks.stop.test.ts src/daemon/schtasks.startup-fallback.test.ts\
  • \git diff --check origin/main...HEAD\
  • \git diff --check\

Existing native Windows/WSL2 Task Scheduler proof remains in the PR body. No merge performed.

@clawsweeper

clawsweeper Bot commented May 26, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

Re-review progress:

@steipete

Copy link
Copy Markdown
Contributor

Maintainer verification before landing:

  • Reviewed the daemon/node Scheduled Task ownership boundary against current main.
  • Confirmed the PR changes only src/daemon/schtasks.ts plus focused Windows Scheduled Task tests.
  • Ran focused local proof on the PR ref:
    node scripts/run-vitest.mjs src/daemon/schtasks.startup-fallback.test.ts src/daemon/schtasks.stop.test.ts
  • Result: 2 files / 34 tests passed.
  • Ran git diff --check against the PR patch: clean.
  • Live PR state before merge: mergeable_state=clean; no required checks reported by GitHub.

This matches #85289: node stop/restart no longer reclaims or waits on the gateway listener port, while node runtime detection/cleanup is limited to the installed node host command line.

@steipete
steipete merged commit a4e0b6e into openclaw:main May 27, 2026
98 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gateway Gateway runtime maintainer Maintainer-authored PR merge-risk: 🚨 availability 🚨 May cause crashes, hangs, restart loops, stalls, or process outages. P1 High-priority user-facing bug, regression, or broken workflow. proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🦞 diamond lobster Very strong PR readiness with only minor maintainer review expected. size: L status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

openclaw node start/stop/restart on Windows host disrupts WSL2 Gateway connectivity

2 participants