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:
Kjell Tore Guttormsen 2026-08-02 07:34:30 +02:00
commit 5bea1f8651
10 changed files with 76 additions and 9 deletions

View file

@ -5,6 +5,28 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [0.17.0] - 2026-08-02
### Added
- **`paste=` in every `--plan` block — the operator's line.** `--plan` shipped
with `dir=` and `command=` as separate fields, which is correct for a driver
(it moves the pane itself, then types the command) and unusable for a person.
The first operator to read a block could not act on it: 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.
`paste=` is the two already joined — `cd <dir> && <command>` — one thing to
select and paste. Both forms stay, because the two consumers want the same
fact shaped differently and neither shape serves both.
It is 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 by leaving the operator in the right directory
with no session started and no error to notice.
- `board-selftest.sh`: 86 -> 89 checks.
## [0.16.0] - 2026-08-02
### Added