triflux 7.1.0 → 7.1.2

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.
@@ -522,28 +522,19 @@ export function attachDashboardTab(sessionName, workerCount = 2) {
522
522
  try { execSync("where wt.exe", { stdio: "ignore" }); } catch { return false; }
523
523
  ensureWtProfile(workerCount);
524
524
 
525
+ // v7.1.2: 항상 가로 스플릿 (Claude Code 아래 35%)
525
526
  try {
526
- // psmux attach로 전체 세션을 WT 탭에 표시
527
527
  const child = spawn("wt.exe", [
528
- "-w", "0", "nt",
528
+ "-w", "0", "sp", "-H", "-s", "0.35",
529
529
  "--profile", "triflux",
530
530
  "--title", `▲ ${sessionName}`,
531
531
  "--", "psmux", "attach", "-t", sessionName,
532
532
  ], { detached: true, stdio: "ignore" });
533
533
  child.unref();
534
+ // 포커스 복귀
535
+ try { spawn("wt.exe", ["-w", "0", "mf", "up"], { detached: true, stdio: "ignore" }).unref(); } catch {}
536
+ return true;
534
537
  } catch { return false; }
535
-
536
- // 150ms 후 이전 탭으로 복귀
537
- const prevTabScript = "Start-Sleep -Milliseconds 150; Add-Type -AssemblyName System.Windows.Forms; [System.Windows.Forms.SendKeys]::SendWait('^+{TAB}')";
538
- for (const shell of ["pwsh.exe", "powershell.exe"]) {
539
- try {
540
- spawn(shell, ["-NoProfile", "-NonInteractive", "-Command", prevTabScript], {
541
- detached: true, stdio: "ignore",
542
- }).unref();
543
- break;
544
- } catch { /* 다음 shell */ }
545
- }
546
- return true;
547
538
  }
548
539
 
549
540
  /**
@@ -2,7 +2,7 @@
2
2
  // hub/team/tui-viewer.mjs — psmux pane용 append-only 로그 뷰어 v3
3
3
  // 같은 psmux 세션의 워커 pane을 capture-pane으로 모니터링한다.
4
4
 
5
- import { existsSync, readFileSync, readdirSync, statSync } from "node:fs";
5
+ import { existsSync, readFileSync, statSync } from "node:fs";
6
6
  import { execFileSync } from "node:child_process";
7
7
  import { join } from "node:path";
8
8
  import { tmpdir } from "node:os";
@@ -72,9 +72,6 @@ const workerState = new Map(); // paneName → { paneIdx, done }
72
72
 
73
73
  function poll() {
74
74
  const panes = listPanes();
75
- if (panes.length <= 1 && workerState.size === 0) {
76
- process.stderr.write(`[poll] no workers found. panes=${JSON.stringify(panes)} session=${SESSION}\n`);
77
- }
78
75
  // pane 0 = 대시보드 (자기 자신), pane 1+ = 워커
79
76
  for (const pane of panes) {
80
77
  if (pane.index === 0) continue; // 자기 자신 건너뜀
package/hub/team/tui.mjs CHANGED
@@ -113,9 +113,6 @@ export function createLogDashboard(opts = {}) {
113
113
  merged.status || "",
114
114
  merged.snapshot || "",
115
115
  merged.handoff?.verdict || "",
116
- merged.handoff?.lead_action || "",
117
- merged.handoff?.confidence || "",
118
- merged.handoff?.risk || "",
119
116
  ].join("|");
120
117
  const sigChanged = nextSig !== existing._sig;
121
118
  const explicitElapsed = Number.isFinite(state.elapsed) ? Math.max(0, Math.round(state.elapsed)) : null;
@@ -141,3 +138,6 @@ export function createLogDashboard(opts = {}) {
141
138
  },
142
139
  };
143
140
  }
141
+
142
+ // 하위 호환
143
+ export { createLogDashboard as createTui };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "triflux",
3
- "version": "7.1.0",
3
+ "version": "7.1.2",
4
4
  "description": "CLI-first multi-model orchestrator for Claude Code — route tasks to Codex, Gemini, and Claude",
5
5
  "type": "module",
6
6
  "bin": {