dbc199d2db
/handoff mints a fresh session via newSession(), producing a new artifactsDir and an empty local/ root. The handoff document routinely references plans and scratch files under '/data/workspaces/can1357__oh-my-pi__8261/.omp-session/2026-08-11T16-39-09-489Z_019ff1b1-31b1-7000-81f5-c540f4ebf43d/local/,' so every reference became a dangling pointer in the new session. The plan approve-and-execute path already copies artifacts across the boundary; handoff did not. Extracted the plan-approve copy helper into a shared copyLocalArtifacts() in local-protocol.ts and invoke it across the handoff session switch (best-effort, since the switch is already committed). Fixes #8261