@agent-link/server 0.1.181 → 0.1.183

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-link/server",
3
- "version": "0.1.181",
3
+ "version": "0.1.183",
4
4
  "description": "AgentLink relay server",
5
5
  "license": "MIT",
6
6
  "repository": {
package/web/app.js CHANGED
@@ -410,6 +410,22 @@ const App = {
410
410
  let _resizeHandler = () => { isMobile.value = window.innerWidth <= 768; };
411
411
  window.addEventListener('resize', _resizeHandler);
412
412
 
413
+ // Fix Chrome mobile: when virtual keyboard dismisses, Chrome doesn't
414
+ // restore scroll position (Safari does this natively). Detect keyboard
415
+ // dismiss via visualViewport height increase and reset page scroll.
416
+ let _vvResizeHandler = null;
417
+ if (window.visualViewport) {
418
+ let _lastVVHeight = window.visualViewport.height;
419
+ _vvResizeHandler = () => {
420
+ const h = window.visualViewport.height;
421
+ if (h > _lastVVHeight && !document.activeElement?.matches?.('input, textarea')) {
422
+ window.scrollTo(0, 0);
423
+ }
424
+ _lastVVHeight = h;
425
+ };
426
+ window.visualViewport.addEventListener('resize', _vvResizeHandler);
427
+ }
428
+
413
429
  // Close workdir menu on outside click or Escape
414
430
  let _workdirMenuClickHandler = (e) => {
415
431
  if (!workdirMenuOpen.value) return;
@@ -685,6 +701,7 @@ const App = {
685
701
  onUnmounted(() => {
686
702
  closeWs(); streaming.cleanup(); cleanupScroll(); cleanupHighlight();
687
703
  window.removeEventListener('resize', _resizeHandler);
704
+ if (_vvResizeHandler && window.visualViewport) window.visualViewport.removeEventListener('resize', _vvResizeHandler);
688
705
  document.removeEventListener('click', _workdirMenuClickHandler);
689
706
  document.removeEventListener('click', _slashMenuClickOutside);
690
707
  document.removeEventListener('keydown', _workdirMenuKeyHandler);
package/web/css/base.css CHANGED
@@ -76,7 +76,7 @@ body {
76
76
  display: flex;
77
77
  align-items: center;
78
78
  justify-content: space-between;
79
- padding: 0.5rem 1rem;
79
+ padding: calc(0.5rem + env(safe-area-inset-top, 0px)) 1rem 0.5rem;
80
80
  background: var(--bg-secondary);
81
81
  border-bottom: 1px solid var(--border);
82
82
  flex-shrink: 0;
@@ -44,7 +44,7 @@
44
44
 
45
45
  /* Top bar */
46
46
  .top-bar {
47
- padding: 0 0.75rem;
47
+ padding: env(safe-area-inset-top, 0px) 0.75rem 0;
48
48
  }
49
49
 
50
50
  .agent-label {
@@ -130,7 +130,7 @@
130
130
 
131
131
  /* Input area */
132
132
  .input-area {
133
- padding: 0 0.75rem 0.75rem;
133
+ padding: 0 0.75rem calc(0.75rem + env(safe-area-inset-bottom, 0px));
134
134
  }
135
135
 
136
136
  .input-card {
@@ -279,11 +279,11 @@
279
279
  }
280
280
 
281
281
  .input-area {
282
- padding: 0 0.5rem 0.5rem;
282
+ padding: 0 0.5rem calc(0.5rem + env(safe-area-inset-bottom, 0px));
283
283
  }
284
284
 
285
285
  .top-bar {
286
- padding: 0 0.5rem;
286
+ padding: env(safe-area-inset-top, 0px) 0.5rem 0;
287
287
  }
288
288
 
289
289
  .folder-picker-dialog {