@cliphijack/santaclaude 1.0.21 → 1.0.22
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 +3 -1
package/package.json
CHANGED
package/santaclaude.js
CHANGED
|
@@ -443,11 +443,13 @@ async function run(conf) {
|
|
|
443
443
|
execFileSync('tmux', ['send-keys', '-t', w, '-l', String(cmd.text || '')]);
|
|
444
444
|
setTimeout(() => { try { execFileSync('tmux', ['send-keys', '-t', w, 'Enter']); } catch (e) {} }, 300);
|
|
445
445
|
console.log(` ⌨️ 입력 → ${w}: ${String(cmd.text || '').slice(0, 50)}`);
|
|
446
|
+
setTimeout(sendScreen, 650); setTimeout(sendScreen, 1200); // 입력 직후 즉시 화면 푸시(diff-gated) — 타이핑→결과 1초 안
|
|
446
447
|
} else if (cmd.action === 'key') {
|
|
447
448
|
// 플로팅 컨트롤 — 특수키 그대로 전달 (Escape, C-c, Up 등)
|
|
448
449
|
const w = (cmd.name && windowExists(session, cmd.name)) ? (session + ':' + cmd.name) : pane;
|
|
449
450
|
execFileSync('tmux', ['send-keys', '-t', w, String(cmd.key || '')]);
|
|
450
451
|
console.log(` ⌨️ 키 → ${w}: ${cmd.key}`);
|
|
452
|
+
setTimeout(sendScreen, 300); setTimeout(sendScreen, 750);
|
|
451
453
|
} else if (cmd.action === 'resize') {
|
|
452
454
|
// 📐 창에맞춤 토글: fit=강제 reflow(사람 붙어있어도) / restore=window-size latest로 원복(내 터미널 따라가기)
|
|
453
455
|
const w = (cmd.name && windowExists(session, cmd.name)) ? (session + ':' + cmd.name) : pane;
|
|
@@ -583,7 +585,7 @@ async function run(conf) {
|
|
|
583
585
|
let ws = null, hbIv = null, scrIv = null;
|
|
584
586
|
function connectWS() {
|
|
585
587
|
try { ws = new WebSocket(wsUrl); } catch (e) { console.error(' WebSocket 생성 실패:', e.message); setTimeout(connectWS, 5000); return; }
|
|
586
|
-
ws.addEventListener('open', () => { console.log(' 🔌 클라우드 연결됨 (WebSocket).'); lastScr = ''; sendHb(); sendScreen(); clearInterval(hbIv); clearInterval(scrIv); hbIv = setInterval(sendHb, Math.max(every, 15000)); scrIv = setInterval(() => { sendScreen(); sendTxDelta(); },
|
|
588
|
+
ws.addEventListener('open', () => { console.log(' 🔌 클라우드 연결됨 (WebSocket).'); lastScr = ''; sendHb(); sendScreen(); clearInterval(hbIv); clearInterval(scrIv); hbIv = setInterval(sendHb, Math.max(every, 15000)); scrIv = setInterval(() => { sendScreen(); sendTxDelta(); }, 1000); });
|
|
587
589
|
ws.addEventListener('message', (e) => { let m; try { m = JSON.parse(typeof e.data === 'string' ? e.data : e.data.toString()); } catch { return; } if (m.type === 'job') onJob(m); else if (m.type === 'ctl') runControl(m.cmd); });
|
|
588
590
|
ws.addEventListener('close', () => { clearInterval(hbIv); clearInterval(scrIv); console.log(' 🔌 연결 끊김 — 5초 후 재연결'); setTimeout(connectWS, 5000); });
|
|
589
591
|
ws.addEventListener('error', () => { try { ws.close(); } catch (e) {} });
|