9remote 2.1.6 → 2.1.7

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.
@@ -1028,6 +1028,9 @@ button {
1028
1028
  .top-0\.5{
1029
1029
  top: 0.125rem;
1030
1030
  }
1031
+ .top-1\.5{
1032
+ top: 0.375rem;
1033
+ }
1031
1034
  .top-1\/2{
1032
1035
  top: 50%;
1033
1036
  }
@@ -1637,6 +1640,9 @@ button {
1637
1640
  .border-t-2{
1638
1641
  border-top-width: 2px;
1639
1642
  }
1643
+ .border-dashed{
1644
+ border-style: dashed;
1645
+ }
1640
1646
  .border-border{
1641
1647
  border-color: var(--border);
1642
1648
  }
@@ -2311,7 +2317,7 @@ button {
2311
2317
  .dot-bounce {
2312
2318
  animation: dot-bounce 1s ease-in-out infinite;
2313
2319
  }
2314
- /* Terminal pane — fix xterm helpers overlay + focus glow (synced with web) */
2320
+ /* Terminal pane — fix xterm helpers overlay + focus glow (synced with web). */
2315
2321
  .terminal-wrapper { overflow: hidden !important; }
2316
2322
  .terminal-wrapper .xterm-viewport {
2317
2323
  overflow-y: auto !important;
@@ -2326,25 +2332,25 @@ button {
2326
2332
  border-radius: 3px;
2327
2333
  }
2328
2334
  .terminal-wrapper:hover .xterm-viewport::-webkit-scrollbar-thumb {
2329
- background: rgba(var(--brand-rgb), 0.4);
2335
+ background: rgba(128, 128, 128, 0.4);
2330
2336
  }
2331
2337
  .terminal-wrapper:hover .xterm-viewport::-webkit-scrollbar-thumb:hover {
2332
- background: rgba(var(--brand-rgb), 0.8);
2338
+ background: rgba(128, 128, 128, 0.8);
2333
2339
  }
2334
2340
  /* XTerm overlay scrollbar (JS-rendered div) — auto-hide: only .visible while scrolling/hovering. */
2335
2341
  .terminal-wrapper .xterm .xterm-scrollable-element > .scrollbar {
2336
- width: 7px !important;
2342
+ width: 5px !important;
2337
2343
  opacity: 0 !important;
2338
2344
  pointer-events: none !important;
2339
2345
  transition: opacity 0.18s ease !important;
2340
2346
  }
2341
2347
  .terminal-wrapper .xterm .xterm-scrollable-element > .scrollbar .slider {
2342
- width: 7px !important;
2343
- border-radius: 4px !important;
2344
- background: rgba(var(--brand-rgb), 0.5) !important;
2348
+ width: 5px !important;
2349
+ border-radius: 3px !important;
2350
+ background: rgba(128, 128, 128, 0.5) !important;
2345
2351
  }
2346
2352
  .terminal-wrapper .xterm .xterm-scrollable-element > .scrollbar .slider:hover {
2347
- background: rgba(var(--brand-rgb), 0.8) !important;
2353
+ background: rgba(128, 128, 128, 0.8) !important;
2348
2354
  }
2349
2355
  /* Show overlay scrollbar only while xterm marks it .visible (scrolling / hovering track). */
2350
2356
  .terminal-wrapper .xterm .xterm-scrollable-element > .scrollbar.visible {
@@ -2388,12 +2394,40 @@ button {
2388
2394
  0%, 100% { opacity: 1; }
2389
2395
  50% { opacity: 0.3; }
2390
2396
  }
2397
+ /* AI agent status dots — idle/working/blocked/done (see lib/statusVisual.js) */
2398
+ /* KEEP IN SYNC with web/app/globals.css (separate build) */
2399
+ /* Working = spinning ring (border-top + border-right visible, others transparent). */
2400
+ .term-dot.pulse-soft {
2401
+ background: transparent !important;
2402
+ width: 0.6rem !important;
2403
+ height: 0.6rem !important;
2404
+ border: 2px solid rgba(59,130,246,0.25);
2405
+ border-top-color: #3b82f6;
2406
+ border-right-color: #3b82f6;
2407
+ animation: statusSpin 0.7s linear infinite;
2408
+ }
2409
+ @keyframes statusSpin { to { transform: rotate(360deg); } }
2410
+ .term-dot.pulse-strong { animation: statusPulseStrong 0.9s ease-in-out infinite; }
2411
+ @keyframes statusPulseStrong {
2412
+ 0%, 100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(239,68,68,0.6); }
2413
+ 50% { transform: scale(1.3); box-shadow: 0 0 0 4px rgba(239,68,68,0); }
2414
+ }
2415
+ /* SessionList card status border — dashed + state color. */
2416
+ .status-border-working { border: 1px dashed #3b82f6 !important; }
2417
+ .status-border-blocked { border: 1px dashed #ef4444 !important; }
2418
+ .status-border-done { border: 1px dashed #f59e0b !important; }
2391
2419
  /* Overlay slide-in (web parity) */
2392
2420
  @keyframes slide-in-right { from { transform: translateX(100%); opacity: 0; } to { transform: translateX(0); opacity: 1; } }
2393
2421
  .slide-in-right { animation: slide-in-right 0.3s ease-out; }
2394
2422
  /* Terminal header hover (web parity) */
2395
2423
  .term-btn:hover { background: var(--surface-2); filter: brightness(0.95); }
2396
- .term-tab:not(.term-tab-active):hover { color: var(--text-main) !important; }
2424
+ .term-tab { border-radius: 8px; }
2425
+ .term-tab:not(.term-tab-active):hover { color: var(--text-main) !important; background: color-mix(in srgb, var(--surface-2) 60%, transparent); }
2426
+ .term-tab-active {
2427
+ color: var(--text-main) !important;
2428
+ font-weight: 600;
2429
+ background: color-mix(in srgb, var(--brand-500) 35%, transparent);
2430
+ }
2397
2431
  .term-group-item:hover { background: var(--surface-2); }
2398
2432
  /* Connection cards — borderless on dark, subtle border on light (session parity) */
2399
2433
  .conn-card { border: none; }
@@ -14,8 +14,8 @@
14
14
  const savedTheme = localStorage.getItem("9remote-theme") || "dark";
15
15
  document.documentElement.setAttribute("data-theme", savedTheme);
16
16
  </script>
17
- <script type="module" crossorigin src="/assets/index-BxhFJ5gG.js"></script>
18
- <link rel="stylesheet" crossorigin href="/assets/index-CedBHegS.css">
17
+ <script type="module" crossorigin src="/assets/index-6avVMwsi.js"></script>
18
+ <link rel="stylesheet" crossorigin href="/assets/index-ByjrCweb.css">
19
19
  </head>
20
20
  <body>
21
21
  <div id="root"></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "9remote",
3
- "version": "2.1.6",
3
+ "version": "2.1.7",
4
4
  "type": "module",
5
5
  "description": "Remote terminal access from anywhere",
6
6
  "main": "dist/server.cjs",