diff --git a/CHANGELOG.md b/CHANGELOG.md index 9e16144f4..37bf82e6c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -88,6 +88,15 @@ breaking changes may land in a minor release. - Refuse psmux option values shaped `-X=value`, `-t…` or `--`: psmux 3.4.0 rewrites the first silently and rejects the others, so the value is now warned about and its key freed (#905). +- Stop `cleanup` and the TUI from calling the sessions in a displaced registry `not migrated` + when it is another project's derived `PSMUX_DATA_DIR` (or this project's from before a + rename): name it as such and say its control session and untagged sessions most likely + belong to that project, while a session tagged as this project's is yours; the stderr + note names it too (#906). +- Report a pre-upgrade `bmad-loop-ctl-<16 hex>` control session left in the project's own + psmux registry: `cleanup` names it on stderr and in `sessions.legacy_leftovers` with the + command that ends it (`sessions.legacy_kill_commands`), and `attach` names it when it finds + nothing to attach (#733). - Fire the TUI's stale state-root note on psmux too: the psmux backend now answers which value a new pane inherits through psmux 3.4.0's named `show-environment` (#660). - Fix the OpenCode V2 SSE-reconnect end-to-end test failing on slow runners (Windows): the diff --git a/docs/multiplexer-backends.md b/docs/multiplexer-backends.md index 71b317be3..6ff1c3448 100644 --- a/docs/multiplexer-backends.md +++ b/docs/multiplexer-backends.md @@ -137,7 +137,12 @@ prunes it. Nothing launches into it, though, so the TUI's attach and stop keys a parked-window sweep do not reach its windows. To end one, let its runs finish (`bmad-loop stop` reaches a live engine wherever it runs) and check that every window shows the exit banner (see `capture-pane` below). Then run -`psmux kill-session -t bmad-loop-ctl-<16 hex>`. +`psmux kill-session -t bmad-loop-ctl-<16 hex>`. `cleanup` names the one an earlier release +started for this project in its registry (matched by that exact name, since a run id +`ctl-<16 hex>` gives an agent session the same shape) on stderr and in +`sessions.legacy_leftovers`, with that command ready to paste +(`sessions.legacy_kill_commands` in `--json`). `attach` names it when it finds nothing to +attach, with `switch-client` instead of `attach` when run inside a psmux pane. **If the state root cannot be derived** (for example, `BMAD_LOOP_STATE_DIR` is a relative path), bmad-loop says so and leaves whatever `PSMUX_DATA_DIR` was in force. `cleanup` then @@ -202,9 +207,11 @@ repeats the warning. A server already running with it on is not detected. Unset before the per-project root: psmux's default registry, and any `PSMUX_DATA_DIR` root bmad-loop displaced. It kills only sessions that carry this project's ownership tag and whose run is not still going. Whatever it leaves is named on stderr as -`left in (not migrated): …` and in `cleanup --json` at +`left in (