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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/src/board.ts +11 -4
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "coxpit",
3
- "version": "5.2.0",
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
- $('repoBrowse').addEventListener('click', ()=>{
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 — 시트를 열고 repo 피커(Browse/New-folder/Path 내장)를 노출
3685
- $('repoAdd').addEventListener('click', ()=>{ openLaunch('task'); $('repoActions').hidden = false; $('repoBrowse').click(); });
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();