Skip to content

Release 4.9.0 — mx work ensure + mx-ensure-sessions - #47

Merged
rousan merged 1 commit into
mainfrom
develop
Aug 31, 2026
Merged

Release 4.9.0 — mx work ensure + mx-ensure-sessions#47
rousan merged 1 commit into
mainfrom
develop

Conversation

@rousan

@rousan rousan commented Aug 31, 2026

Copy link
Copy Markdown
Owner

mx work -n <name> ensure — build a work's tmux session (same lazy build + work-session hook as attach) without attaching. --porcelain here is a pure format flag: {work, session, created, claudeAction, attached:false}.

attach is now interactive-onlyattach --porcelain errors (INTERACTIVE_ONLY) and points at ensure, so --porcelain never changes behaviour anywhere. (Behaviour change: scripts using attach --porcelain to build-without-attaching must switch to ensure.)

mx-ensure-sessions bin — build the sessions for active works without attaching, in a chosen order, so they line up in tmux's session picker (prefix + s, by creation time). Order via CLI args or a config at <runtime>/files/mx-ensure-sessions.conf (names/globs, * = the rest, exclude:); --dry-run/--example/-x/--config/--no-config. Idempotent; pairs with mx-kill-sessions to re-order a fleet.

Bump 4.9.0.

Add `mx work -n <name> ensure` — build a work's tmux session (same lazy,
self-healing build as `attach`, same work-session hook) WITHOUT attaching, so
the current terminal is left alone. `--porcelain` here is a pure output-format
flag: `{work, session, created, claudeAction, attached:false}`.

Make `attach` interactive-only: `attach --porcelain` now errors with
INTERACTIVE_ONLY and points at `ensure`, instead of silently changing behaviour
to not-attach. This keeps `--porcelain` a format flag everywhere — it never
changes what a command does. (Behaviour change: scripts that used
`attach --porcelain` to build-without-attaching must switch to `ensure`.)

Add the `mx-ensure-sessions` bin: build the tmux session for active works
without attaching, in a chosen order, so they line up in tmux's session picker
(prefix + s, by creation time). Order comes from CLI args or an optional config
at <runtime>/files/mx-ensure-sessions.conf (work names/globs, `*` = the rest,
`exclude:` globs); `--dry-run`/`--example`/`-x`/`--config`/`--no-config` like the
other list bins. Idempotent — pair with mx-kill-sessions to re-order a fleet.

Bump 4.9.0.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@rousan
rousan merged commit a297b72 into main Aug 31, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant