---
name: kitsubito-remote-launch-traps
description: "Three traps when launching a battery on kitsubito over ssh — single-branch fetch refspec, non-login PATH missing ~/.local/bin (traceable-reqs), and a cd that must exit on failure"
metadata: 
  node_type: memory
  type: project
  originSessionId: 0f1cd318-0505-4e70-8849-c30b62254099
  modified: 2026-09-07T01:24:35.561Z
---

Launching a lane battery on kitsubito over `ssh reavus@kitsubito` (measured 2026-09-07, W1 #249):

1. `~/spt-w1` is a SINGLE-BRANCH clone: `git fetch origin <branch>` mints NO `origin/<branch>` ref
   (the configured refspec covers one branch). Fetch with the explicit refspec
   `git fetch origin +refs/heads/X:refs/remotes/origin/X` before `git worktree add ... origin/X`.
2. A non-login ssh shell (`bash -s`, even after `source ~/.cargo/env`) lacks `~/.local/bin`, which is
   where `traceable-reqs` lives → the driver's first leg exits 127. Run drivers under `bash -lc`.
3. A launch script must `cd <worktree> || exit`: mine fell through into the ROOT checkout and launched
   the driver there. Harmless only because that sha had no script; the shape was one `||` from a
   foreign-tree battery in the root pool.

**Why:** each trap reads like a lane red or a running battery. I told doyle the battery was running
before reading the launch output — [[never-send-a-claim-composed-before-its-check-ran]] again.

**How to apply:** one ssh, `bash -lc`, explicit refspec, `cd ... || exit N`, then `cat driver.log`
after a sleep and report only what that cat shows. Related: [[a-stopped-local-ssh-does-not-stop-its-remote-command]].
