@cliphijack/santaclaude 1.0.13 → 1.0.14
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.
- package/package.json +1 -1
- package/santaclaude.js +4 -4
package/package.json
CHANGED
package/santaclaude.js
CHANGED
|
@@ -377,15 +377,15 @@ async function run(conf) {
|
|
|
377
377
|
execFileSync('tmux', ['send-keys', '-t', w, String(cmd.key || '')]);
|
|
378
378
|
console.log(` ⌨️ 키 → ${w}: ${cmd.key}`);
|
|
379
379
|
} else if (cmd.action === 'resize') {
|
|
380
|
-
//
|
|
381
|
-
// 보통 cols만 옴 = 폭만 맞추고 높이는 그대로(스크롤백으로 세로 내역 풍부하게). rows 오면 같이 적용.
|
|
382
|
-
if (clientsAttached(session)) { console.log(' 📐 리사이즈 건너뜀 — 사람이 tmux에 붙어있음(고객 화면 보호)'); return; } // 사람이 직접 보고있으면 reflow로 화면 망가뜨리지 않음
|
|
380
|
+
// 📐 창에맞춤 토글: fit=강제 reflow(사람 붙어있어도) / restore=window-size latest로 원복(내 터미널 따라가기)
|
|
383
381
|
const w = (cmd.name && windowExists(session, cmd.name)) ? (session + ':' + cmd.name) : pane;
|
|
382
|
+
if (cmd.restore) { try { execFileSync('tmux', ['set-window-option', '-t', w, 'window-size', 'latest']); console.log(' 📐 창에맞춤 OFF → 터미널 크기로 복원(window-size latest)'); } catch (e) {} return; }
|
|
383
|
+
if (!cmd.fit && clientsAttached(session)) { console.log(' 📐 리사이즈 스킵(사람 attach + 창맞춤 off=보호)'); return; } // fit OFF + 사람 붙음 = 보호
|
|
384
384
|
const c = parseInt(cmd.cols) || 0, rr = parseInt(cmd.rows) || 0;
|
|
385
385
|
const args = ['resize-window', '-t', w];
|
|
386
386
|
if (c > 0) args.push('-x', String(Math.max(20, Math.min(400, c))));
|
|
387
387
|
if (rr > 0) args.push('-y', String(Math.max(10, Math.min(200, rr))));
|
|
388
|
-
if (args.length > 3) { try { execFileSync('tmux', args); console.log(` 📐 리사이즈 ${w} → 폭${c || '그대로'}${rr ? '
|
|
388
|
+
if (args.length > 3) { try { execFileSync('tmux', args); console.log(` 📐 리사이즈 ${w} → 폭${c || '그대로'}${rr ? '×' + rr : ''}${cmd.fit ? ' (창맞춤)' : ''}`); } catch (e) {} }
|
|
389
389
|
} else if (cmd.action === 'transcript') {
|
|
390
390
|
if (cmd.live) { txState.until = Date.now() + 45000; return; } // keepalive — 라이브 모드만 연장(seed 안 함, 초경량)
|
|
391
391
|
// 💬 seed: 전체내역(JSONL 꼬리) 읽어 웹에 전달 + 라이브 모드 무장(이후 델타는 화면틱에 묻어감)
|