triflux 7.1.1 → 7.1.3

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.
@@ -156,8 +156,8 @@ export async function runHeadless(sessionName, assignments, opts = {}) {
156
156
  : `${brand.emoji} ${resolvedCli}-${i + 1}`;
157
157
 
158
158
  let newPaneId;
159
- if (i === 0 && !dashboard) {
160
- // 대시보드 없으면: 첫 번째 워커가 빈 lead pane 사용
159
+ if (i === 0) {
160
+ // 첫 번째 워커: 빈 lead pane 사용
161
161
  newPaneId = `${sessionName}:0.0`;
162
162
  } else {
163
163
  // 2번째+: split-window로 추가
@@ -188,16 +188,7 @@ export async function runHeadless(sessionName, assignments, opts = {}) {
188
188
  // 모든 split 완료 후 레이아웃 한 번만 정렬 (깜빡임 방지)
189
189
  try { psmuxExec(["select-layout", "-t", sessionName, "tiled"]); } catch { /* 무시 */ }
190
190
 
191
- // v7.0.6: 워커 pane 생성 대시보드 시작 (워커가 먼저 존재해야 listPanes 감지 가능)
192
- if (dashboard) {
193
- const viewerPath = join(import.meta.dirname, "tui-viewer.mjs").replace(/\\/g, "/");
194
- const resultDir = RESULT_DIR.replace(/\\/g, "/");
195
- const viewerCmd = `node ${viewerPath} --session ${sessionName}`;
196
- try {
197
- psmuxExec(["send-keys", "-t", `${sessionName}:0.0`, viewerCmd, "Enter"]);
198
- psmuxExec(["select-pane", "-t", `${sessionName}:0.0`, "-T", "▲ dashboard"]);
199
- } catch { /* 무시 */ }
200
- }
191
+ // v7.1.3: psmux 내부 대시보드 pane 제거 WT 스플릿에서 tui-viewer 직접 실행
201
192
 
202
193
  } else {
203
194
  // ─── 기존 모드: 모든 pane을 한 번에 생성 ───
@@ -522,44 +513,20 @@ export function attachDashboardTab(sessionName, workerCount = 2) {
522
513
  try { execSync("where wt.exe", { stdio: "ignore" }); } catch { return false; }
523
514
  ensureWtProfile(workerCount);
524
515
 
525
- // v7.1: 같은 WT 창에서 가로 스플릿 (새 대신)
526
- // 포커스 탈취가 최소화되고 Claude Code와 나란히 보임
527
- if (process.env.WT_SESSION) {
528
- try {
529
- const child = spawn("wt.exe", [
530
- "-w", "0", "sp", "-H", "-s", "0.35",
531
- "--profile", "triflux",
532
- "--title", `▲ ${sessionName}`,
533
- "--", "psmux", "attach", "-t", sessionName,
534
- ], { detached: true, stdio: "ignore" });
535
- child.unref();
536
- // 스플릿 후 원래 pane으로 포커스 복귀
537
- try { spawn("wt.exe", ["-w", "0", "mf", "up"], { detached: true, stdio: "ignore" }).unref(); } catch {}
538
- return true;
539
- } catch { /* fallthrough to tab */ }
540
- }
541
-
542
- // WT 세션 외부 → 새 탭 fallback
516
+ // v7.1.3: 대시보드만 스플릿 (psmux attach 대신 tui-viewer 직접 실행)
517
+ // raw CLI 출력은 사용자에게 불필요 대시보드 로그만 표시
518
+ const viewerPath = join(import.meta.dirname, "tui-viewer.mjs").replace(/\\/g, "/");
543
519
  try {
544
520
  const child = spawn("wt.exe", [
545
- "-w", "0", "nt",
521
+ "-w", "0", "sp", "-H", "-s", "0.30",
546
522
  "--profile", "triflux",
547
523
  "--title", `▲ ${sessionName}`,
548
- "--", "psmux", "attach", "-t", sessionName,
524
+ "--", "node", viewerPath, "--session", sessionName,
549
525
  ], { detached: true, stdio: "ignore" });
550
526
  child.unref();
527
+ try { spawn("wt.exe", ["-w", "0", "mf", "up"], { detached: true, stdio: "ignore" }).unref(); } catch {}
528
+ return true;
551
529
  } catch { return false; }
552
-
553
- const prevTabScript = "Start-Sleep -Milliseconds 150; Add-Type -AssemblyName System.Windows.Forms; [System.Windows.Forms.SendKeys]::SendWait('^+{TAB}')";
554
- for (const shell of ["pwsh.exe", "powershell.exe"]) {
555
- try {
556
- spawn(shell, ["-NoProfile", "-NonInteractive", "-Command", prevTabScript], {
557
- detached: true, stdio: "ignore",
558
- }).unref();
559
- break;
560
- } catch { /* 다음 shell */ }
561
- }
562
- return true;
563
530
  }
564
531
 
565
532
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "triflux",
3
- "version": "7.1.1",
3
+ "version": "7.1.3",
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": {