trantor 0.18.37 → 0.18.38

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.37",
3
+ "version": "0.18.38",
4
4
  "description": "Trantor — 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
@@ -200,12 +200,22 @@ _herdr_ws_create() { # $1=cwd $2=label → "workspace_id<TAB>root_pane_id"
200
200
  let d="";process.stdin.on("data",c=>d+=c).on("end",()=>{try{const r=(JSON.parse(d.slice(d.search(/[\[{]/))).result)||{};
201
201
  process.stdout.write((((r.workspace||{}).workspace_id)||"")+"\t"+(((r.root_pane||{}).pane_id)||""))}catch(e){}})'
202
202
  }
203
- _herdr_split() { # $1=pane id ("" = UI-focused pane) $2=right|down → new pane id
204
- local a=(pane split); [ -n "$1" ] && a+=("$1"); a+=(--direction "$2" --no-focus)
203
+ _herdr_split() { # $1=pane id ("" = UI-focused pane) $2=right|down $3=cwd (optional) → new pane id
204
+ local a=(pane split); [ -n "$1" ] && a+=("$1"); a+=(--direction "$2" --no-focus); [ -n "$3" ] && a+=(--cwd "$3")
205
205
  _herdr "${a[@]}" 2>/dev/null | node -e '
206
206
  let d="";process.stdin.on("data",c=>d+=c).on("end",()=>{try{const r=(JSON.parse(d.slice(d.search(/[\[{]/))).result)||{};
207
207
  process.stdout.write(((r.pane||{}).pane_id)||"")}catch(e){}})'
208
208
  }
209
+ # Any live pane INSIDE a workspace (the one whose cwd is $2 first). The orchestrator pane must be
210
+ # hosted off a pane of ITS OWN workspace: splitting the UI-focused pane put crebral-com's
211
+ # orchestrator in the trantor window, in a trantor shell, twice on 2026-09-03 (the operator was
212
+ # looking at trantor when Wake ran) — twin bus identity, wrong checkout, crossed wires.
213
+ _herdr_ws_pane() { # $1=workspace id $2=preferred cwd → pane id ("" if none)
214
+ _herdr pane list 2>/dev/null | WS="$1" CWD="$2" node -e '
215
+ let d="";process.stdin.on("data",c=>d+=c).on("end",()=>{try{const o=JSON.parse(d.slice(d.search(/[\[{]/)));
216
+ const a=(Array.isArray(o)?o:(o.panes||((o.result||{}).panes)||[])).filter(p=>(p.workspace_id||p.workspace||"")===process.env.WS);
217
+ const m=a.find(p=>(p.cwd||"")===process.env.CWD)||a[0];process.stdout.write(m?(m.pane_id||m.id||""):"")}catch(e){}})'
218
+ }
209
219
  _herdr_ws_live() { # workspace list → "ids<TABnewline>names" (names \x01-wrapped+joined, like cmux)
210
220
  _herdr workspace list 2>/dev/null | node -e '
211
221
  let d="";process.stdin.on("data",c=>d+=c).on("end",()=>{try{const o=JSON.parse(d.slice(d.search(/[\[{]/)));
@@ -731,12 +741,19 @@ open_orchestrator() {
731
741
  # Host the pane: a JUST-created workspace's root pane IS the orchestrator pane (claude rides it);
732
742
  # an existing workspace gets a split — the crew's seats tile off it on the next `up`, never
733
743
  # replacing it (spawn_herdr's REUSE mode splits seats off their own old pane / the previous one).
744
+ # An EXISTING workspace hosts the split off one of ITS panes, in the project's checkout — never off
745
+ # the UI-focused pane, which is whatever the operator happens to be looking at (2026-09-03).
734
746
  if [ "$DRY" = "1" ]; then
735
747
  orch="%DRYORCH"
748
+ [ "$fresh" = "1" ] || echo "[dry] herdr: pane split %DRYHOST($wsid) --direction right --cwd $DIR" >&2
736
749
  echo "[dry] herdr: ${fresh:+root pane + }pane rename $orch 'orchestrator · $PROJ' + run '$(_orch_cmd "$DIR" "$sid")'" >&2
737
750
  else
738
751
  if [ "$fresh" = "1" ]; then orch="${pair##*$'\t'}"
739
- else orch="$(_herdr_split "" right)"; fi
752
+ else
753
+ local host; host="$(_herdr_ws_pane "$wsid" "$DIR")"
754
+ [ -n "$host" ] || { echo "trantor open: workspace $wsid has no live pane to host the orchestrator" >&2; exit 1; }
755
+ orch="$(_herdr_split "$host" right "$DIR")"
756
+ fi
740
757
  [ -n "$orch" ] || { echo "trantor open: could not create the orchestrator pane" >&2; exit 1; }
741
758
  _herdr pane rename "$orch" "orchestrator · $PROJ" >/dev/null 2>&1
742
759
  _herdr pane run "$orch" "$(_orch_cmd "$DIR" "$sid")" >/dev/null 2>&1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "trantor",
3
- "version": "0.18.37",
3
+ "version": "0.18.38",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "trantor": "bin/cli.mjs"