mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-26 04:15:48 -06:00
9ab6df9f19
The remote-mode seed obligation lived only in process memory (remoteSeedPending), so a gateway restart between sandbox create and the first exec adopted the sandbox via 'sandbox get' and silently skipped the one-time seed, leaving an empty remote-canonical workspace with no visible failure. Adopted remote sandboxes now probe the managed roots once per process at the ensure boundary and arm the seed only when every root is missing or empty, so recovery can never wipe operator content in an already-seeded workspace (the seed guard shipped in v2026.7.1, so legacy seeded sandboxes without any marker exist). The probe also heals a create that timed out client-side after the sandbox actually came up. Regression test simulates create -> restart -> first exec and fails pre-fix; a sibling test locks the never-reseed-non-empty-roots invariant.