Skip to content

Releases: Jaggerxtrm/xtmux

v0.2.5

Choose a tag to compare

@Jaggerxtrm Jaggerxtrm released this 22 Aug 18:09

[0.2.5] - 2026-08-22

Patch fixes for the picker surface. Repairs the v0.2.4 cold-host regression where picker_state_read crashed on a missing state file — nav (prefix s) exited immediately and the fzf picker showed nothing; the fix had existed in PR #108 but never landed on main, so it ships here with a cold-start regression guard. Picker open latency drops from ~1.0s to ~0.35–0.4s on worktree-heavy hosts via a two-wave parallel git prepass in build_list (parallel rev-parses, then parallel status per unique toplevel; output byte-identical). Session header rows in the fzf list are now name-only — no repo, branch, path, or badges.

Fixed

  • Guard picker_state_read against missing state files on cold hosts (xtmux-rib.29) (2c3dc1a)
  • Reduce fzf list session headers to the session name (xtmux-rib.31) (90c43e4)

Other changes

  • Two-wave parallel git prepass in build_list (xtmux-rib.30) (6b23fcb)

v0.2.4

Choose a tag to compare

@Jaggerxtrm Jaggerxtrm released this 20 Aug 15:09
aebb885

[0.2.4] - 2026-08-20

Lands the response-episodes projection — a durable one-prompt-plus-continuations model for agent_turns (xtmux-gdk) — plus a nav-sidebar redesign and the K3 Codex runtime adapter. Response-episodes replaces the per-turn LIMIT 1 view with a stable episode row, so continuations, re-issues, and correlated replies stay grouped across restarts. The K3 Codex adapter rides existing authorities (no new auth surface) and ships with distribution smoke + Codex lifecycle recovery + terminal cleanup. Nav sidebar gets a hierarchy redesign: safe tmux navigator, wrap rows instead of cutting, lowercase labels + classic chrome + 75% drawer. Also new: Mermaid fence rendering with an mdcat backend, the board-audit hook feature (mirroring core), and the bd v1.2.1 hooks upgrade + bd-sync install landed via #111 / #112.

Added

  • Add K3 Codex runtime adapter over existing authorities (xtmux-s96.2) (d8edb1e)
  • Add distribution smoke, dry-run plan, and correct false S7 label (xtmux-s96.4) (c67bcde)
  • Complete Codex lifecycle, recovery, and terminal cleanup (xtmux-s96.4) (0aa2f6b)
  • Add safe sidebar tmux navigator (f1500f0)
  • Redesign nav sidebar hierarchy (35c6f25)
  • Wrap nav rows instead of cutting (5189d25)
  • Nav lowercase labels, classic chrome, 75% drawer (513bd86)
  • Response episodes — durable one-prompt-plus-continuations model for agent_turns (xtmux-gdk) (#105) (51a54bd)
  • Consume the response-episode projection instead of LIMIT 1 (xtmux-it6) (#103) (df00b5d)
  • Render Mermaid fences and add mdcat renderer backend (a8b516a)
  • Board-audit — bd exporter + PR-checkpoint hook adapter (xtmux-wjr) (#112) (ac60165)

Fixed

  • K3 review-1 corrections — Core K3 fixtures, full v1 boundary, honest dedupe (xtmux-s96.2) (45f039d)
  • K3 review-2 corrections — Stop type guards, honest degraded-dedupe scope (xtmux-s96.2) (599f01b)
  • Strict per-identifier failure classifier for the EVAL-01 gate (xtmux-s96.3) (08ab7ae)
  • Remove EVAL-01 options-file race (xtmux-s96.3) (3f9a550)
  • Adopt byte-identical compatibility links (xtmux-s96.2.1) (06f203f)
  • Preserve unowned hook trust and repair pre-tag entries (xtmux-s96.4) (711254f)
  • Document instance-get and hold the help band (xtmux-s96.4) (3103053)
  • Arm a real monitor poller and give @agent_state liveness (xtmux-dvs) (d2bb59a)
  • Respawn the poller via execPath, not Bun's baked argv (xtmux-dvs) (17523fd)
  • Read @agent_last_transition from the caller's list-panes row (xtmux-dvs) (d50c2e7)
  • Stand down when another writer concludes the monitor (xtmux-dvs) (ee5350c)
  • Prune terminal monitors in retention; bound monitor-list for Pi wake path (c9e9483)
  • Never touch a stale ctx after session replacement or reload (a176909)
  • Prune terminal monitors on every monitor-list read (d635e6e)
  • Make stale ctx non-fatal even when session_shutdown never ran (8c65780)
  • Harden nav redesign review gates (a32957b)
  • Survive deleted-cwd teardown and honor session:%pane targets (#106) (5df145f)
  • Monotonic capture anchor — same-text earlier records can never absorb a lagging stop (xtmux-gdk post-merge P1) (#107) (82cc854)
  • Keep mdcat popup open by paginating (06f8b72)
  • Clamp and center popup to client size (a16fc97)

Other changes

  • Include this commit in whatever next pr lands. (8f17470)
  • This documentation must land in any next pr (a188095)
  • Drop mdcat renderer backend, restore glow (c6fc118)

Project maintenance

  • Characterize Codex 0.146.0 seams (xtmux-s96.1) (50a95fa)
  • Correct Codex K1 replay evidence (xtmux-s96.1) (3417f34)
  • Harden Codex K1 characterization boundaries (64ec9cf)
  • Pin Codex Stop characterization provenance (8dbc77d)
  • K3 review-3 correction — Codex turn-capture contract wording (xtmux-s96.2) (041457c)
  • EVAL-01 Codex column and recovery evidence gate (xtmux-s96.3) (9d69342)
  • Refresh CHANGELOG [Unreleased] for xtmux-dvs (88791d0)
  • Refresh CHANGELOG [Unreleased] for the xtmux-dvs CI fixes (e81ddae)
  • Refresh CHANGELOG [Unreleased] (dab4999)
  • Refresh CHANGELOG [Unreleased] (44d8e1b)
  • Sync managed assets to xtrm-tools 0.11.4 and ignore runtime skill links (65f5544)
  • Ignore post-migration per-repo skill and hook residue (6543e70)
  • Mark renderer design incomplete, resume point (0af90e5)
  • Sync managed hooks to bd v1.2.1 + install bd-sync (xtmux-71c) (#111) (aabd012)

v0.2.3

Choose a tag to compare

@Jaggerxtrm Jaggerxtrm released this 28 Jul 09:25
12d6709

Added

  • Add idempotent changelog-update.mjs (xtrm-reyem.11) (#69) (02cb455)
  • Make --for optional under tmux for hook queries (#87) (cd5ec84)

Coordination and hooks

  • Align message and Claude Stop semantics (#76) (ff2cb57)

Fixed

  • Stop duplicating gh release create (xtrm-reyem.6 follow-up) (#68) (fee5db3)
  • Skip merge commits so CI == local (xtrm-reyem.13) (#71) (048b742)
  • Widen session event stream and beads cursor (ed8497c)
  • Bound Claude turn transcript capture (#75) (101fa07)
  • Mint a Claude agent instance id on SessionStart (#79) (03575e5)
  • Stop wait-agent replaying a stale done on a working pane (#81) (afef8b6)
  • Tag Codex agent-state hooks and mint their instance id (#82) (9708c2d)
  • Bound safe-send-pointer's obs subprocess by wall-clock (#84) (3d7088c)
  • Overlay terminal_status onto the projected state (#85) (9f6a423)
  • Self-reap when the parent shell dies (#86) (b5c0683)
  • Let direct --from-npm proceed for drift repair (xtrm-9hq6w) (#88) (6b8f521)

Project maintenance

  • Add changelog:check + rename raw wrapper (xtrm-reyem.12) (#70) (44ffb26)
  • Add pr-review-gate required-status-check workflow (082e96f)
  • Wave-2 — pull_request_review_comment trigger + preserve CR verdicts (1c1caaf)
  • Pi-column contract matrix for the cross-runtime gate (#77) (283a94c)
  • Untrack specialists/beads runtime state (xtrm-136tf) (#80) (b57c5e7)
  • Commit the injected communication-style + task-tracking block (xtrm-wiy5n.4.36) (#83) (2eccd79)

v0.2.2

Choose a tag to compare

@Jaggerxtrm Jaggerxtrm released this 22 Jul 21:30
235273d
Release v0.2.2

v0.2.1

Choose a tag to compare

@Jaggerxtrm Jaggerxtrm released this 22 Jul 15:42
0d11728

Release v0.2.1

v0.1.0

Choose a tag to compare

@Jaggerxtrm Jaggerxtrm released this 17 Jul 00:43

[0.1.0] - 2026-07-17

Added

  • Add agent-state hook contract for tmux panes (7dde61a)
  • Act-on-preview — approve/interrupt/message panes from the list (a39c3ba)
  • Add tmux-native specialist sp-* awareness (6364b4e)
  • Recognize interactive role-[-] session names (b6b0453)
  • Xtmux multiplexing + agent-state orchestration primitives (8f4d46b)
  • Message-send signal, normalization, dead-target error, rotation (xtmux-1hq) (a0f665f)
  • Phase 2 Bun/TS scaffold + SQLite adapter + migrations (xtmux-3xs.2) (b6e0ffd)
  • Phase 3 delegation — V2 message/log routing + delivery attempts (xtmux-3xs.3) (bd0436e)
  • Phase 5 agent instances/transitions/turns + smart-dispatch log-emit (xtmux-3xs.5) (f6663f6)
  • Phase 6 handoff lifecycle + prompt-pointer atomicity (xtmux-3xs.6) (78631de)
  • Phase 10 — retention + benchmarks + docs + cutover HOLD (xtmux-3xs.10) (7bd5cd5)
  • CI, CodeQL, and Dependabot baseline (#2) (fdba7b8)
  • Additive --json command API + xtrm v2 skills migration (#6) (fd568db)
  • Expose canonical xtmux command prefix via alias (#9) (589695c)
  • Real xtmux help — grouped commands and --json output fields (#11) (ad304ee)
  • Publish @jaggerxtrm/xtmux installer (#20) (d5cc800)
  • Persist host_id and rotate @agent_instance_id per agent occupation (xtmux-j46.1) (#21) (6c7924f)
  • Xtmux context --current --json — the Specialists runtime-origin contract (xtmux-j46.2) (#25) (009901a)
  • Xtmux topology --json + single-source host id (xtmux-j46.3) (#27) (7a04260)
  • Bounded xtmux pane capture --json (xtmux-j46.4) (#29) (5956ba6)
  • Cursor-paged journal reads — log query --after-id (xtmux-j46.5) (#31) (cbae0bd)
  • Persist outbound wake ownership (#23) (b74185d)
  • Log follow --after-id — the committed-event stream (xtmux-j46.6) (#32) (4de5ff0)
  • Readiness-aware, idempotent, durable delegation (xtmux-j46.8) (#34) (4003abe)
  • Read-only NDJSON bridge over ssh (j46.9 + protocol tests j46.16) (#38) (fad430f)
  • Structured activity spans + stabilize the bridge topology test (xtmux-j46.11) (#40) (a02b66b)

Coordination and hooks

  • Auto-monitor-on-send — Claude Code hook + pi extension (2a642ac)
  • Pi-auto-monitor.ts uses correct isBashToolResult + event shape (f900c28)
  • Wake-path completion — wait-for-transition + Claude Stop drain (c70b725)
  • XTMUX_AUTO_MONITOR_SKIP_TARGETS env bypass (xtmux-3xs.29) (ae42383)
  • Auto-monitor tmux has-session precheck (xtmux-3xs.30) (5f4eb8f)
  • List pane reply obligations (9f2eed2)
  • Complete Phase 2 picker and retention parity (#43) (8af5b6a)

Fixed

  • Split git cache from agent_state — never cache attention sort/badges (xtmux-rib.17) (96c7787)
  • Make WAIT orchestrator-safe via PostToolUse reset (d14572b)
  • Alt-x kill wedged the picker via a nested fzf (d138131)
  • Do not mark active sp-* panes stale in the hot list (e989297)
  • Group worktree sessions under their parent repo (845bbca)
  • Render specialist sessions as pane rows (6c542c1)
  • Add repo headers for specialist pane grouping (4d0bf84)
  • Pre-filter events.jsonl with grep before parse loop (xtmux-bje) (8deb7ad)
  • P0 telemetry+identity bystander corruption when $TMUX unset (xtmux-3xs.18) (0d2309a)
  • V2 message ack takes V1 message-key; audit --stable sort (xtmux-3xs.24, .17) (7ce1eef)
  • Shadow-tee sites were checking stale $REPLY after log_event (xtmux-3xs.12) (fc3195e)
  • Derive coordination effects from JSON results (#12) (6f20973)
  • Make the smoke gate tell the truth, and fix what it was hiding (#13) (e19886b)
  • Migrate on the monitor/telemetry/audit path (#15) (c81da80)
  • Detect Claude panes that run behind the xt wrapper (#17) (647bcaa)
  • Reach the V2 runtime via the vendored-bun launcher on npm installs (xtmux-j46.19) (#26) (41674a7)
  • Bind delegated metadata before the lifecycle emits, and keep the V2 feed out of the legacy journal (xtmux-j46.7) (#30) (24ae942)
  • Stop mining a bead id out of a temp-dir path (tmp.9) (#36) (9a5a7c4)
  • Per-connection request-rate cap; document host-wide capture scope (j46.21, j46.22) (#41) (d7c29ec)
  • Restitch requester ownership onto correlated CLI (#42) (f213b9e)
  • Preflight undeliverable targets (#49) (026952b)

Messages and delivery

  • Phase 3 messages/receipts/deliveries/events domain (xtmux-3xs.3, WIP) (1753539)
  • Add status and unread query primitives (53b0c2b)
  • Unread-count --pane %N for pane-scoped counts (xtmux-3xs.28) (ff2c489)
  • V2 timestamp column matches V1 date -Is byte-for-byte (xtmux-3xs.27) (b056061)
  • Add sender-declared reply expectations (b87fb05)
  • SQLite reply-obligation model (migration 0010, cycle guard, opt-in correlated projection) — xtmux-3ua.2 (#24) (a45aa05)

Migration

  • Phase 9 legacy JSONL importer + shadow-mode substrate (xtmux-3xs.9) (3f90149)
  • Recon...
Read more