fix(gateway): keep unmanaged restarts in-process#83138
Conversation
|
Codex review: passed. Workflow note: Future ClawSweeper reviews update this same comment in place. How this review workflow works
Summary Reproducibility: yes. at source level: current main and v2026.5.12 detach-spawn unmanaged ordinary restarts, and the run loop exits on mode "spawned". The PR body also supplies after-fix terminal proof that the patched helper returns disabled without spawning. Real behavior proof Next step before merge Security Review detailsBest possible solution: Land this focused PR after exact-head CI/automerge validation so ordinary unmanaged restarts use the existing in-process fallback while update restarts keep fresh-process replacement. Do we have a high-confidence way to reproduce the issue? Yes, at source level: current main and v2026.5.12 detach-spawn unmanaged ordinary restarts, and the run loop exits on mode "spawned". The PR body also supplies after-fix terminal proof that the patched helper returns disabled without spawning. Is this the best way to solve the issue? Yes. Returning disabled for ordinary unmanaged restarts is the narrowest maintainable fix because the run loop already has an in-process fallback, and the PR leaves update.run on respawnGatewayProcessForUpdate. What I checked:
Likely related people:
Remaining risk / open question:
Codex review notes: model gpt-5.5, reasoning high; reviewed against aa71f7fe1568. |
21b538e to
8c82df6
Compare
|
@clawsweeper automerge |
|
🦞✅ Source: What merged:
Automerge notes:
The automerge loop is complete. Automerge progress:
|
Summary: - The PR changes ordinary unmanaged gateway restarts to return the existing in-process fallback instead of detached-spawning a replacement child, with focused tests, docs wording, and a changelog entry. - Reproducibility: yes. at source level: current main and v2026.5.12 detach-spawn unmanaged ordinary restarts, ... e PR body also supplies after-fix terminal proof that the patched helper returns disabled without spawning. Automerge notes: - No ClawSweeper repair was needed after automerge opt-in. Validation: - ClawSweeper review passed for head 8c82df6c776f746cf4fd99ccccfb366cb34e25c6. - Required merge gates passed before the squash merge. Prepared head SHA: 8c82df6c776f746cf4fd99ccccfb366cb34e25c6 Review: openclaw/openclaw#83138 (comment) Co-authored-by: mjamiv <[email protected]> Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com> Approved-by: takhoffman Co-authored-by: takhoffman <[email protected]>
Summary: - The PR changes ordinary unmanaged gateway restarts to return the existing in-process fallback instead of detached-spawning a replacement child, with focused tests, docs wording, and a changelog entry. - Reproducibility: yes. at source level: current main and v2026.5.12 detach-spawn unmanaged ordinary restarts, ... e PR body also supplies after-fix terminal proof that the patched helper returns disabled without spawning. Automerge notes: - No ClawSweeper repair was needed after automerge opt-in. Validation: - ClawSweeper review passed for head 8c82df6c776f746cf4fd99ccccfb366cb34e25c6. - Required merge gates passed before the squash merge. Prepared head SHA: 8c82df6c776f746cf4fd99ccccfb366cb34e25c6 Review: openclaw/openclaw#83138 (comment) Co-authored-by: mjamiv <[email protected]> Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com> Approved-by: takhoffman Co-authored-by: takhoffman <[email protected]>
Summary: - The PR changes ordinary unmanaged gateway restarts to return the existing in-process fallback instead of detached-spawning a replacement child, with focused tests, docs wording, and a changelog entry. - Reproducibility: yes. at source level: current main and v2026.5.12 detach-spawn unmanaged ordinary restarts, ... e PR body also supplies after-fix terminal proof that the patched helper returns disabled without spawning. Automerge notes: - No ClawSweeper repair was needed after automerge opt-in. Validation: - ClawSweeper review passed for head 8c82df6. - Required merge gates passed before the squash merge. Prepared head SHA: 8c82df6 Review: openclaw#83138 (comment) Co-authored-by: mjamiv <[email protected]> Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com> Approved-by: takhoffman Co-authored-by: takhoffman <[email protected]>
Summary: - The PR changes ordinary unmanaged gateway restarts to return the existing in-process fallback instead of detached-spawning a replacement child, with focused tests, docs wording, and a changelog entry. - Reproducibility: yes. at source level: current main and v2026.5.12 detach-spawn unmanaged ordinary restarts, ... e PR body also supplies after-fix terminal proof that the patched helper returns disabled without spawning. Automerge notes: - No ClawSweeper repair was needed after automerge opt-in. Validation: - ClawSweeper review passed for head 8c82df6. - Required merge gates passed before the squash merge. Prepared head SHA: 8c82df6 Review: openclaw#83138 (comment) Co-authored-by: mjamiv <[email protected]> Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com> Approved-by: takhoffman Co-authored-by: takhoffman <[email protected]>
Summary: - The PR changes ordinary unmanaged gateway restarts to return the existing in-process fallback instead of detached-spawning a replacement child, with focused tests, docs wording, and a changelog entry. - Reproducibility: yes. at source level: current main and v2026.5.12 detach-spawn unmanaged ordinary restarts, ... e PR body also supplies after-fix terminal proof that the patched helper returns disabled without spawning. Automerge notes: - No ClawSweeper repair was needed after automerge opt-in. Validation: - ClawSweeper review passed for head 8c82df6. - Required merge gates passed before the squash merge. Prepared head SHA: 8c82df6 Review: openclaw#83138 (comment) Co-authored-by: mjamiv <[email protected]> Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com> Approved-by: takhoffman Co-authored-by: takhoffman <[email protected]>
Summary: - The PR changes ordinary unmanaged gateway restarts to return the existing in-process fallback instead of detached-spawning a replacement child, with focused tests, docs wording, and a changelog entry. - Reproducibility: yes. at source level: current main and v2026.5.12 detach-spawn unmanaged ordinary restarts, ... e PR body also supplies after-fix terminal proof that the patched helper returns disabled without spawning. Automerge notes: - No ClawSweeper repair was needed after automerge opt-in. Validation: - ClawSweeper review passed for head 8c82df6. - Required merge gates passed before the squash merge. Prepared head SHA: 8c82df6 Review: openclaw#83138 (comment) Co-authored-by: mjamiv <[email protected]> Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com> Approved-by: takhoffman Co-authored-by: takhoffman <[email protected]>
Summary: - The PR changes ordinary unmanaged gateway restarts to return the existing in-process fallback instead of detached-spawning a replacement child, with focused tests, docs wording, and a changelog entry. - Reproducibility: yes. at source level: current main and v2026.5.12 detach-spawn unmanaged ordinary restarts, ... e PR body also supplies after-fix terminal proof that the patched helper returns disabled without spawning. Automerge notes: - No ClawSweeper repair was needed after automerge opt-in. Validation: - ClawSweeper review passed for head 8c82df6. - Required merge gates passed before the squash merge. Prepared head SHA: 8c82df6 Review: openclaw#83138 (comment) Co-authored-by: mjamiv <[email protected]> Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com> Approved-by: takhoffman Co-authored-by: takhoffman <[email protected]>
Summary: - The PR changes ordinary unmanaged gateway restarts to return the existing in-process fallback instead of detached-spawning a replacement child, with focused tests, docs wording, and a changelog entry. - Reproducibility: yes. at source level: current main and v2026.5.12 detach-spawn unmanaged ordinary restarts, ... e PR body also supplies after-fix terminal proof that the patched helper returns disabled without spawning. Automerge notes: - No ClawSweeper repair was needed after automerge opt-in. Validation: - ClawSweeper review passed for head 8c82df6. - Required merge gates passed before the squash merge. Prepared head SHA: 8c82df6 Review: openclaw#83138 (comment) Co-authored-by: mjamiv <[email protected]> Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com> Approved-by: takhoffman Co-authored-by: takhoffman <[email protected]>
Summary: - The PR changes ordinary unmanaged gateway restarts to return the existing in-process fallback instead of detached-spawning a replacement child, with focused tests, docs wording, and a changelog entry. - Reproducibility: yes. at source level: current main and v2026.5.12 detach-spawn unmanaged ordinary restarts, ... e PR body also supplies after-fix terminal proof that the patched helper returns disabled without spawning. Automerge notes: - No ClawSweeper repair was needed after automerge opt-in. Validation: - ClawSweeper review passed for head 8c82df6. - Required merge gates passed before the squash merge. Prepared head SHA: 8c82df6 Review: openclaw#83138 (comment) Co-authored-by: mjamiv <[email protected]> Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com> Approved-by: takhoffman Co-authored-by: takhoffman <[email protected]>
Summary: - The PR changes ordinary unmanaged gateway restarts to return the existing in-process fallback instead of detached-spawning a replacement child, with focused tests, docs wording, and a changelog entry. - Reproducibility: yes. at source level: current main and v2026.5.12 detach-spawn unmanaged ordinary restarts, ... e PR body also supplies after-fix terminal proof that the patched helper returns disabled without spawning. Automerge notes: - No ClawSweeper repair was needed after automerge opt-in. Validation: - ClawSweeper review passed for head 8c82df6. - Required merge gates passed before the squash merge. Prepared head SHA: 8c82df6 Review: openclaw#83138 (comment) Co-authored-by: mjamiv <[email protected]> Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com> Approved-by: takhoffman Co-authored-by: takhoffman <[email protected]>
Summary: - The PR changes ordinary unmanaged gateway restarts to return the existing in-process fallback instead of detached-spawning a replacement child, with focused tests, docs wording, and a changelog entry. - Reproducibility: yes. at source level: current main and v2026.5.12 detach-spawn unmanaged ordinary restarts, ... e PR body also supplies after-fix terminal proof that the patched helper returns disabled without spawning. Automerge notes: - No ClawSweeper repair was needed after automerge opt-in. Validation: - ClawSweeper review passed for head 8c82df6. - Required merge gates passed before the squash merge. Prepared head SHA: 8c82df6 Review: openclaw#83138 (comment) Co-authored-by: mjamiv <[email protected]> Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com> Approved-by: takhoffman Co-authored-by: takhoffman <[email protected]>
Summary: - The PR changes ordinary unmanaged gateway restarts to return the existing in-process fallback instead of detached-spawning a replacement child, with focused tests, docs wording, and a changelog entry. - Reproducibility: yes. at source level: current main and v2026.5.12 detach-spawn unmanaged ordinary restarts, ... e PR body also supplies after-fix terminal proof that the patched helper returns disabled without spawning. Automerge notes: - No ClawSweeper repair was needed after automerge opt-in. Validation: - ClawSweeper review passed for head 8c82df6. - Required merge gates passed before the squash merge. Prepared head SHA: 8c82df6 Review: openclaw#83138 (comment) Co-authored-by: mjamiv <[email protected]> Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com> Approved-by: takhoffman Co-authored-by: takhoffman <[email protected]>
Summary: - The PR changes ordinary unmanaged gateway restarts to return the existing in-process fallback instead of detached-spawning a replacement child, with focused tests, docs wording, and a changelog entry. - Reproducibility: yes. at source level: current main and v2026.5.12 detach-spawn unmanaged ordinary restarts, ... e PR body also supplies after-fix terminal proof that the patched helper returns disabled without spawning. Automerge notes: - No ClawSweeper repair was needed after automerge opt-in. Validation: - ClawSweeper review passed for head 8c82df6. - Required merge gates passed before the squash merge. Prepared head SHA: 8c82df6 Review: openclaw#83138 (comment) Co-authored-by: mjamiv <[email protected]> Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com> Approved-by: takhoffman Co-authored-by: takhoffman <[email protected]>
Summary: - The PR changes ordinary unmanaged gateway restarts to return the existing in-process fallback instead of detached-spawning a replacement child, with focused tests, docs wording, and a changelog entry. - Reproducibility: yes. at source level: current main and v2026.5.12 detach-spawn unmanaged ordinary restarts, ... e PR body also supplies after-fix terminal proof that the patched helper returns disabled without spawning. Automerge notes: - No ClawSweeper repair was needed after automerge opt-in. Validation: - ClawSweeper review passed for head 8c82df6. - Required merge gates passed before the squash merge. Prepared head SHA: 8c82df6 Review: openclaw#83138 (comment) Co-authored-by: mjamiv <[email protected]> Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com> Approved-by: takhoffman Co-authored-by: takhoffman <[email protected]>
Summary
update.runon the fresh-process replacement pathValidation
node scripts/run-vitest.mjs src/infra/process-respawn.test.ts src/cli/gateway-cli/run-loop.test.ts src/commands/doctor-platform-notes.startup-optimization.test.tspnpm exec oxfmt --check --threads=1 src/infra/process-respawn.ts src/infra/process-respawn.test.ts src/commands/doctor-platform-notes.ts src/commands/doctor-platform-notes.startup-optimization.test.ts docs/vps.md docs/install/raspberry-pi.md CHANGELOG.mdpnpm check:changed --base upstream/maingit diff --checkReal behavior proof
disabledso the run loop uses its in-process restart fallback.21b538ee68with dependencies installed, running the patched restart helper in a real Node 24 process without Vitest or module mocks.{ "platform": "linux", "supervisorHintsCleared": true, "result": { "mode": "disabled", "detail": "unmanaged: use in-process restart to keep custom supervisor PID tracking stable" }, "spawnedDetachedChild": false }OPENCLAW_NO_RESPAWNunset, the real helper returns the in-process fallback result and does not detach-spawn a child.update.runfresh-process path.Fixes #65668