trantor 0.18.9 → 0.18.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "trantor",
3
- "version": "0.18.9",
3
+ "version": "0.18.10",
4
4
  "description": "Trantor \u2014 the hub-world for AI agent crews: live message bus, presence, project Kanban/flow board + crew orchestration for independent AI coding agents (Claude, Codex, Gemini, Kimi, DeepSeek)",
5
5
  "mcpServers": {
6
6
  "relay": {
package/bin/crew.sh CHANGED
@@ -46,11 +46,21 @@ HAVE_TMUX=0; command -v tmux >/dev/null 2>&1 && HAVE_TMUX=1
46
46
  # Events) — NOT the control socket — so it needs NO socket password (the socket denies external processes
47
47
  # by default; AppleScript bypasses that, exactly like we already script Terminal.app).
48
48
  HAVE_CMUX=0; [ -d "/Applications/cmux.app" ] && HAVE_CMUX=1
49
+ # PRESENCE vs PREFERENCE: HAVE_* answer "which mux do NEW crews get" and are stomped by CREW_MUX and
50
+ # the herdr auto-preference below. *_PRESENT answer "is this mux on the machine at all" and are what
51
+ # PRUNE keys on — a row is validated by ITS OWN kind's liveness, never by which mux new crews prefer.
52
+ # Conflating them let a dead cmux row survive prune the moment herdr became the preferred default.
53
+ CMUX_PRESENT=$HAVE_CMUX
54
+ HERDR_PRESENT=0; command -v herdr >/dev/null 2>&1 && HERDR_PRESENT=1
49
55
  # herdr (https://herdr.dev — a server-held terminal runtime: panes live in its background server, so a
50
- # crew survives the launcher exiting) is OPT-IN ONLY, never auto-detected a machine with herdr
51
- # installed keeps its default cmux→tmux→terminal dispatch untouched. CREW_MUX=herdr is the explicit
52
- # switch; opting in without the binary is a HARD ERROR, because a silent fallback would defeat the ask.
56
+ # crew survives the launcher exiting) is the PREFERRED mux when its binary is installed: it is the
57
+ # only backend the desktop app's Workspace pane can render, so an auto-detected herdr means every
58
+ # `trantor up` on every project shows up live in the app with no flag. (It was opt-in for exactly one
59
+ # wave; the first thing the operator noticed was that other projects' crews stayed invisible.)
60
+ # CREW_MUX=cmux|tmux|terminal still forces the old dispatch; CREW_MUX=herdr without the binary stays
61
+ # a HARD ERROR, because an explicit ask must never silently fall back.
53
62
  HAVE_HERDR=0
63
+ [ -z "${CREW_MUX:-}" ] && command -v herdr >/dev/null 2>&1 && { HAVE_HERDR=1; HAVE_CMUX=0; HAVE_TMUX=0; }
54
64
  # explicit override (user preference or tests): CREW_MUX=cmux|tmux|terminal|herdr forces the grouping UI.
55
65
  case "${CREW_MUX:-}" in
56
66
  cmux) HAVE_CMUX=1; HAVE_TMUX=0 ;;
@@ -100,7 +110,7 @@ _cmux() { CMUX_QUIET=1 "$CMUX_BIN" "$@"; } # quiet CLI wrapper (suppr
100
110
  _CMUX_OK="" # cached: does the control socket accept us (allowAll)?
101
111
  _cmux_ok() {
102
112
  [ -n "$_CMUX_OK" ] && { [ "$_CMUX_OK" = "1" ] && return 0 || return 1; }
103
- if [ "$HAVE_CMUX" = "1" ] && _cmux ping >/dev/null 2>&1; then _CMUX_OK=1; return 0; fi
113
+ if [ "$CMUX_PRESENT" = "1" ] && _cmux ping >/dev/null 2>&1; then _CMUX_OK=1; return 0; fi
104
114
  _CMUX_OK=0; return 1
105
115
  }
106
116
  # resolve a freshly-created workspace REF (workspace:N) → its stable UUID (survives index shifts).
@@ -409,10 +419,11 @@ prune_dead_state() {
409
419
  CLIVE="$(printf '%s' "$pair" | sed -n 1p)"
410
420
  CLIVE_NAMES="$(printf '%s' "$pair" | sed -n 2p)"
411
421
  fi
412
- # herdr liveness is queried ONLY under the explicit opt-in (CREW_MUX=herdr): a default run never
413
- # invokes herdr at all. Same keep-when-unprovable doctrine as cmux — no answer ⇒ rows are KEPT.
422
+ # herdr liveness is queried whenever the BINARY is present (herdr rows deserve validation no
423
+ # matter which mux new crews prefer). Same keep-when-unprovable doctrine as cmux — no answer,
424
+ # or no binary at all ⇒ rows are KEPT.
414
425
  local HLIVE="" HLIVE_NAMES=""
415
- if [ "$HAVE_HERDR" = "1" ]; then
426
+ if [ "$HERDR_PRESENT" = "1" ]; then
416
427
  local hpair
417
428
  hpair="$(_herdr_ws_live)"
418
429
  HLIVE="$(printf '%s' "$hpair" | sed -n 1p)"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "trantor",
3
- "version": "0.18.9",
3
+ "version": "0.18.10",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "trantor": "bin/cli.mjs"