trantor 0.18.66 → 0.18.67

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.66",
3
+ "version": "0.18.67",
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": {
@@ -751,33 +751,23 @@ export function maybeSpawn(projectDir, conf = readConfig(), handoffFile = "", de
751
751
  try {
752
752
  if (_platform !== "darwin") return false;
753
753
  if (_env.TRANTOR_NO_HANDOFF_SPAWN === "1") return false;
754
- // #8089: a pane session gets NO Terminal window but it does get a successor. This used to
755
- // return false on the theory that "the pane claims the handoff (trantor open) on its own",
756
- // and for an ARMED baton nothing was driving that: /trantor:handoff always runs inside a turn,
757
- // so it always arms, so this is always the path taken and spawnPaneBaton, which the direct
758
- // path (spawnBaton) calls right here, was never reached. The record was written and the session
759
- // sat there. Witnessed on crebral-health 2026-09-19: written 00:18:58, unclaimed, original alive.
760
- const paneId = _pane(_env);
761
- if (paneId) {
762
- if (!handoffFile) {
763
- _log(`[trantor] pane ${paneId} needs the handoff file to pass the baton and none was given no successor opened\n`);
764
- return false;
765
- }
766
- const ok = _spawnPane(projectDir, handoffFile, paneId);
767
- _log(`[trantor] herdr pane ${paneId}: ${ok ? "baton driver spawned — it replaces this pane in place" : "baton driver FAILED to spawn — no successor"}\n`);
768
- return ok;
754
+ // #8089 REVERTED 2026-09-19, and the revert is the point. A pane session gets NO Terminal
755
+ // window AND no baton driver from here: the APP owns the replacement. app handoff_now runs
756
+ // `trantor handoff --write-only`, waits for the record (including the armed-mid-turn case it
757
+ // explicitly handles), then does its OWN idle gate, kill and reopen (#6081, #5509). Making this
758
+ // spawn a pane baton put a SECOND driver on the same pane, racing the app's — which broke the
759
+ // chat handoff button and the skill, both of which had been working. The stranding this was
760
+ // meant to fix is real but lives in the SKILL path, where no app driver exists; fixing it here
761
+ // cannot tell the two flows apart, so it must be fixed where the flows are distinguishable.
762
+ if (_pane(_env)) {
763
+ _log(`[trantor] session lives in herdr pane ${_pane(_env)} no Terminal window and no baton driver from here; the app (or the skill path) owns the replacement\n`);
764
+ return false;
769
765
  }
770
766
  if (conf.autoHandoffPrompt === false) return false;
771
767
  if (_hasPane(basename(projectDir))) {
772
- // Same correction as above for the cwd-keyed pane: drive the replacement, do not assume
773
- // something else will. Without HERDR_PANE_ID the driver resolves the pane from crew-windows.
774
- if (!handoffFile) {
775
- _log(`[trantor] orch pane hosts ${basename(projectDir)} but no handoff file was given — no successor opened\n`);
776
- return false;
777
- }
778
- const ok = _spawnPane(projectDir, handoffFile);
779
- _log(`[trantor] orch pane hosts ${basename(projectDir)}: ${ok ? "baton driver spawned — it replaces the pane in place" : "baton driver FAILED to spawn — no successor"}\n`);
780
- return ok;
768
+ _log(`[trantor] orch pane hosts ${basename(projectDir)} no Terminal window; the app or the skill path claims the handoff
769
+ `);
770
+ return false;
781
771
  }
782
772
  const script = join(HERE, "..", "..", "bin", "handoff-prompt.sh");
783
773
  if (!existsSync(script)) { _log(`[trantor] handoff-prompt.sh missing\n`); return false; }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "trantor",
3
- "version": "0.18.66",
3
+ "version": "0.18.67",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "trantor": "bin/cli.mjs"