smokeTestDaemonBroker mkdtemp'd its runtime dir directly under
os.tmpdir(), and the broker's startup sweep pruneDeadDaemonRuntimeDirs
reclaims path.dirname(runtimeDir). On a default session that is /tmp, so
--smoke-test recursively deleted every aged sibling with no live
broker/clients (tmux/ssh sockets, editor state, build trees) while still
exiting 0.
- client.ts: keep the smoke broker's project and runtime dirs under a
single private mkdtemp parent the process owns.
- presence.ts: refuse any prune root that is not the daemons container
and only prune entries named like a 16-hex daemon scope key, so a
relocated runtime dir can never rm -rf unrelated neighbours.
Fixes#8721