feat(board): give the plan a paste= line the operator can actually use
--plan shipped with dir= and command= as separate fields. That is right for a driver, which moves the pane itself and then types the command, and unusable for a person: the first operator to read a block could not act on it at all. Joining an absolute path from one field with a command from another is not a saved line of output. It is the step where a session gets started in the wrong repository - the same failure the absolute dir= exists to prevent, moved from the machine to the human. paste= is the two already joined, cd <dir> && <command>, one thing to select. Both forms stay: the two consumers want the same fact shaped differently, and neither shape serves both. Emitted only alongside command=, never once per block. A `paste=cd X && ` with nothing after it would run the cd and then a bare newline, which fails SILENTLY - the operator ends up in the right directory with no session started and no error to notice. board-selftest: 86 -> 89 checks. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011eKRzhD1RqY2MxvDEkrJAM
This commit is contained in:
parent
6d0fe14d0f
commit
5bea1f8651
10 changed files with 76 additions and 9 deletions
|
|
@ -409,10 +409,18 @@ fi
|
|||
# that dropped them silently would repeat exactly that defect.
|
||||
# Excluded: done, deferred, blocked-without-debt, and repos with no STATE.md and
|
||||
# no debt - a tab that cannot be moved is not a plan entry.
|
||||
# Two lines for two consumers, and they are not redundant. A driver cd's the
|
||||
# pane itself and then types the command, so it needs them apart; the operator
|
||||
# needs ONE thing to select and paste, because assembling `cd <dir>` from one
|
||||
# field and the command from another is precisely where a tab ends up started
|
||||
# in the wrong repo. paste= is emitted only alongside command= - `paste=cd X && `
|
||||
# with nothing after it would run the cd and then a bare newline, leaving the
|
||||
# operator in the right directory with no session and no error.
|
||||
plan_cmd() {
|
||||
if pc_cmd="$(route_cmd_for "$1")"; then
|
||||
if [ -n "$pc_cmd" ]; then
|
||||
printf 'command=%s\n' "$pc_cmd"
|
||||
printf 'paste=cd %s && %s\n' "$1" "$pc_cmd"
|
||||
else
|
||||
printf 'command_missing=route-linjen kunne ikke tolkes (kost: %s)\n' "$2"
|
||||
fi
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue