coxpit 5.2.0 → 5.2.1
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/src/board.ts +11 -4
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "coxpit",
|
|
3
|
-
"version": "5.2.
|
|
3
|
+
"version": "5.2.1",
|
|
4
4
|
"description": "Self-hosted cockpit for running a fleet of AI coding agents across your own machines — parallel worktree runs, live board, compare & merge, web terminal, design capture.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
package/src/board.ts
CHANGED
|
@@ -39,6 +39,11 @@ export const BOARD_HTML = /* html */ `<!doctype html>
|
|
|
39
39
|
::-webkit-scrollbar-track{background:transparent}
|
|
40
40
|
button{font-family:var(--sans)}
|
|
41
41
|
:focus-visible{outline:2px solid rgba(78,201,176,.5);outline-offset:1px;border-radius:4px}
|
|
42
|
+
/* close-X buttons — base reset so no overlay ever renders a native white button.
|
|
43
|
+
Scoped rules (.modal-h .x / .rh .x, font-size:19px for text ×) keep higher specificity. */
|
|
44
|
+
button.x{background:none;border:none;color:var(--muted);cursor:pointer;padding:2px;
|
|
45
|
+
display:inline-flex;align-items:center;justify-content:center;border-radius:6px}
|
|
46
|
+
button.x:hover{color:var(--ink);background:var(--surface2)}
|
|
42
47
|
|
|
43
48
|
/* ── header ─────────────────────────────── */
|
|
44
49
|
header{display:flex;align-items:center;gap:14px;height:54px;padding:0 20px;
|
|
@@ -1372,13 +1377,14 @@ async function brwRegister(fullPath){
|
|
|
1372
1377
|
}
|
|
1373
1378
|
toast('register: '+(j.detail||j.error||res.status), 'error');
|
|
1374
1379
|
}
|
|
1375
|
-
|
|
1380
|
+
function openRepoBrowse(){
|
|
1376
1381
|
const m = machines.find(x=>x.slug===$('repoMachine').value);
|
|
1377
1382
|
if (m && m.address){ toast('remote machine — type the path manually for now', 'error'); return; }
|
|
1378
1383
|
$('brwNewForm').hidden = true; $('brwNewName').value = '';
|
|
1379
1384
|
$('brwOverlay').classList.add('open');
|
|
1380
1385
|
brwGo(brwCur || '');
|
|
1381
|
-
}
|
|
1386
|
+
}
|
|
1387
|
+
$('repoBrowse').addEventListener('click', openRepoBrowse);
|
|
1382
1388
|
$('brwList').addEventListener('click',(e)=>{
|
|
1383
1389
|
const reg = e.target.closest('button[data-reg]');
|
|
1384
1390
|
if (reg){ brwRegister(brwCur.replace(/\\/$/,'')+'/'+reg.dataset.reg); return; }
|
|
@@ -3681,8 +3687,9 @@ $('newBtn').addEventListener('click', ()=>openLaunch('task'));
|
|
|
3681
3687
|
$('fab').addEventListener('click', ()=>openLaunch('task')); // mobile pocket-board FAB → same sheet
|
|
3682
3688
|
$('sheetClose').addEventListener('click', closeLaunch);
|
|
3683
3689
|
$('newSheet').addEventListener('click', (e)=>{ if(e.target===$('newSheet')) closeLaunch(); });
|
|
3684
|
-
// Add repository —
|
|
3685
|
-
|
|
3690
|
+
// Add repository — repo 브라우저를 바로 연다(New 태스크 시트는 열지 않음: repoBrowse 핸들러가
|
|
3691
|
+
// #brwOverlay 를 직접 띄우고, machineSlug 는 hydrate 가 채운 #repoMachine 값을 씀).
|
|
3692
|
+
$('repoAdd').addEventListener('click', openRepoBrowse);
|
|
3686
3693
|
// machine switcher — 컴팩트 버튼 + 메뉴(기존 #repoMachine 이 선택 상태 보관)
|
|
3687
3694
|
function positionMachineMenu(){
|
|
3688
3695
|
const b = $('machineSwitch').getBoundingClientRect();
|