fix: harden Telegram restart recovery on macOS#484
Merged
Conversation
- what: block the shared main launchd service from using the detached lane-local restart helper, and persist Telegram's learned sticky IPv4 fallback across fresh transport instances with regression tests. - why: /restart could unload ai.openclaw.gateway and fail to relaunch it, while polling restarts kept re-entering the same failing IPv6/auto-family path and looping on stalls. - risk: restart behavior changes for the canonical shared main runtime on macOS and Telegram transport now caches IPv4 fallback policy within a process; isolated lane helpers still use the old detached path.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Review Fast Path
/restarton the shared main bot no longer uses the lane-local detached helper that can unloadai.openclaw.gateway, and Telegram polling restarts now keep the learned IPv4 fallback instead of rediscovering the same failing network path.pnpm vitest run src/infra/restart-trigger.test.ts src/auto-reply/reply/commands-restart.test.ts src/media/fetch.telegram-network.test.tsai.openclaw.gatewayis now excluded fromscripts/restart-local-gateway.shand from helper eligibility in/restart.main.Why This Matters
/restartfrom Telegram could briefly bring the bot back and then take the shared main runtime fully offline.Scope Boundary
Verification
pnpm install --frozen-lockfilepnpm vitest run src/infra/restart-trigger.test.ts src/auto-reply/reply/commands-restart.test.ts src/media/fetch.telegram-network.test.ts/restartafter briefly recoveringAI Assistance