ae6eb578bb
`$currentCwd` is a global singleton, but a conversation switch publishes the new stored session id immediately while the new workspace only arrives when `session.resume` settles. For that whole window the path still names the PREVIOUS conversation, and every workspace-derived surface treats it as authoritative. Track WHICH conversation the live path describes instead of trying to keep the path itself in lockstep. Ownership — not emptiness — is what makes the switch atomic: clearing the path would collapse the workspace/review panes and drop file-tree state on every switch, so the path stays put and is simply marked not-yet-owned. The released marker is deliberately not `null`: `null` MATCHES a fresh draft (whose selected id is also null), so releasing to it would hand a leftover path to the draft as its own workspace. Co-authored-by: ZHJay <ZHJay@users.noreply.github.com>