8922a9a2ee
* fix(backend): prefer local copilot CLI over npx at launch IsInstalled probed the copilot binary for the UI badge but launch always ran `npx -y @github/copilot`, paying an npm registry round-trip every start — minutes behind a private registry. Reuse the env-correct binary check (standalone LookPath, SSH preflight probe) so when copilot is on PATH the lifecycle runs it directly; containerized runtimes keep npx. * fix(backend): make SSH native-binary probe non-fatal on transport error The native-binary probe is an optimisation, not a requirement. A transient SSH transport error (MaxSessions, reset) made "Verifying agent binary" abort the launch, blaming copilot before npx was tried. Treat probe transport errors as a miss and fall through to the required default-command probe, which reports failures with proper context. Also call NativeBinaryName() once. * fix(backend): clear stale native-binary metadata before SSH probe A pre-existing or stale MetadataKeyNativeBinary in req.Metadata could make the command builder prefer copilot --acp on an npx-only host even when this probe misses. Clear it up front so only a positive probe re-sets it. * refactor(backend): use resolved RuntimeName for native-binary check buildExecutionFromInstance re-derived the runtime from req.ExecutorType while promoteWorkspaceExecution read execution.RuntimeName. Use the already resolved execution.RuntimeName (set from rt.Name()) in both, so the two call sites are consistent. * fix(backend): reflect local copilot CLI in profile command preview The profile setup command preview always rendered `npx -y @github/copilot` because PreviewAgentCommand built the command without the native-binary probe. The preview is not bound to an executor, so assume the default standalone host and probe PATH (mirroring the standalone launch path): show `copilot --acp` when the CLI is installed, npx otherwise.