diff --git a/package.json b/package.json index 7873749..891c1a0 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "scripts": { "start": "node server.js", "dev": "node --watch server.js", - "test": "node --test test/render/*.test.mjs && node test/overload-detector.test.js && node test/usage-limit.test.js && node test/auth-errors.test.js && node test/env-load-order.test.js && node test/multi-agent-result.test.js && node test/terminal-session.test.js && node test/terminal-schema.test.js && node test/bots.test.js && node test/bot-inbox.test.js && node test/bots-api.test.js && node test/running-sessions.test.js && node test/session-liveness.test.js && node test/terminal-bridge.integration.test.js && node test/tmux-composite.test.js && node test/engine-spawn-cmd.test.js && node test/telegram-format.test.js && node test/telegram-behaviour.test.js && node test/ask-user-question.test.js && node test/delegate-terminal.test.js && node test/update-flow.test.js && node test/kanban-schedule.test.js && node test/kanban-run-badges.test.js && node test/task-backlog.test.js && node test/i18n-completeness.test.js && node test/config-resolve.test.js && node test/chat-defaults.test.js && node test/chat-defaults-api.test.js && node test/run-continuation.test.js && node test/worktree-manager.test.js && node test/setup-gate.test.js && node test/path-guard.test.js && node test/subscribe-nocatchup.test.js && node test/cli-import-remote.test.js && node test/remote-list-parse.test.js && node test/config-migrate.test.js && node test/engine-pane.test.js && node test/global-workspace.test.js && node test/ssh-secret.test.js && node test/agent-dag.test.js && node test/ssh-parser.test.js && node test/ssh-termination.test.js && node test/session-restart.test.js && node test/remote-env.test.js && node test/remote-files.test.js && node test/remote-files-api.test.js && node test/auth-token.test.js && node test/cmd-model.test.js && node test/origin-guard.test.js && node test/interrupted-recovery.test.js && node test/queue-persistence.test.js && node test/interrupt-idle-config.test.js && node test/agents-md.test.js && node test/editor-links.test.js && node test/editor-open-api.test.js && node test/interrupt-delivery.test.js && node test/terminal-pane-guard.integration.test.js && node test/composer-terminal.test.js && node test/claude-cli-status.test.js && node test/asar-helpers.test.js && node test/task-workers.test.js && node test/git-clone.test.js", + "test": "node --test test/render/*.test.mjs && node test/overload-detector.test.js && node test/usage-limit.test.js && node test/auth-errors.test.js && node test/env-load-order.test.js && node test/multi-agent-result.test.js && node test/terminal-session.test.js && node test/terminal-schema.test.js && node test/bots.test.js && node test/bot-inbox.test.js && node test/bots-api.test.js && node test/running-sessions.test.js && node test/session-liveness.test.js && node test/terminal-bridge.integration.test.js && node test/tmux-composite.test.js && node test/engine-spawn-cmd.test.js && node test/telegram-format.test.js && node test/telegram-behaviour.test.js && node test/ask-user-question.test.js && node test/delegate-terminal.test.js && node test/update-flow.test.js && node test/kanban-schedule.test.js && node test/kanban-run-badges.test.js && node test/task-backlog.test.js && node test/i18n-completeness.test.js && node test/config-resolve.test.js && node test/chat-defaults.test.js && node test/chat-defaults-api.test.js && node test/run-continuation.test.js && node test/worktree-manager.test.js && node test/setup-gate.test.js && node test/path-guard.test.js && node test/subscribe-nocatchup.test.js && node test/cli-import-remote.test.js && node test/remote-list-parse.test.js && node test/config-migrate.test.js && node test/engine-pane.test.js && node test/global-workspace.test.js && node test/ssh-secret.test.js && node test/agent-dag.test.js && node test/ssh-parser.test.js && node test/ssh-termination.test.js && node test/session-restart.test.js && node test/remote-env.test.js && node test/remote-files.test.js && node test/remote-files-api.test.js && node test/auth-token.test.js && node test/cmd-model.test.js && node test/origin-guard.test.js && node test/interrupted-recovery.test.js && node test/queue-persistence.test.js && node test/interrupt-idle-config.test.js && node test/agents-md.test.js && node test/editor-links.test.js && node test/editor-open-api.test.js && node test/interrupt-delivery.test.js && node test/terminal-pane-guard.integration.test.js && node test/composer-terminal.test.js && node test/claude-cli-status.test.js && node test/asar-helpers.test.js && node test/task-workers.test.js && node test/git-clone.test.js && node test/responsive-ui.test.js", "postinstall": "node scripts/install-hooks.js", "release": "node scripts/release.js", "electron:dev": "electron .", diff --git a/public/index.html b/public/index.html index 19b17ae..b39e82c 100644 --- a/public/index.html +++ b/public/index.html @@ -2110,7 +2110,7 @@ .lang-sel option { background: var(--s2); } /* ─── Directory browser ─── */ -.dir-modal { width: 520px; } +.dir-modal { width: 520px; max-width: calc(100vw - 24px); } .dir-path-bar { padding: 8px 16px; border-bottom: 1px solid var(--border); background: var(--bg); display: flex; align-items: center; gap: 6px; } .dir-path-input { flex: 1; background: var(--s2); border: 1px solid var(--border); color: var(--accent2); padding: 6px 10px; border-radius: 6px; font-size: 12px; font-family: var(--font-mono); outline: none; min-width: 0; } .dir-path-input:focus { border-color: var(--accent); } @@ -2167,7 +2167,7 @@ .rh-item .cfg { opacity:0; background:none; border:none; color:var(--muted); cursor:pointer; font-size:13px; padding:3px 6px; border-radius:4px; transition:opacity .12s, color .12s; flex-shrink:0; } .rh-item:hover .cfg { opacity:.6; } .rh-item .cfg:hover { opacity:1 !important; color:var(--accent2); background:rgba(124,106,239,.1); } -.ssh-host-modal { width:480px; } +.ssh-host-modal { width: 480px; max-width: calc(100vw - 24px); } .ssh-host-form { padding:16px; display:flex; flex-direction:column; gap:12px; } .ssh-host-form label { font-size:12px; color:var(--muted); display:block; margin-bottom:4px; } .ssh-host-form input { width:100%; background:var(--s2); border:1px solid var(--border); color:var(--text); padding:6px 10px; border-radius:6px; font-size:12px; font-family:inherit; outline:none; box-sizing:border-box; transition:border .12s; } @@ -2657,8 +2657,24 @@ .chain-progress-card { max-width: calc(100vw - 40px); } .cd-btn-ok, .cd-btn-cancel { min-height: 44px; padding: 10px 20px; } .fpv-modal { width: 100vw !important; max-width: 100vw !important; height: 100vh !important; height: 100dvh !important; max-height: 100vh !important; max-height: 100dvh !important; border-radius: 0 !important; } - .modal { max-height: 92vh; max-height: 92dvh; } + .modal { + max-width: calc(100vw - 24px) !important; + min-width: 0 !important; + max-height: 92vh; + max-height: 92dvh; + box-sizing: border-box !important; + } .modal .modal-body textarea { min-height: 200px; } + #cfgModal .modal { + min-width: 0 !important; + width: calc(100vw - 16px) !important; + max-width: calc(100vw - 16px) !important; + resize: none !important; + } + .dir-modal, .ssh-host-modal, .cmd-modal { + max-width: calc(100vw - 24px) !important; + width: 100% !important; + } } @media (max-width: 480px) { .mob-chip { padding: 8px 14px; font-size: 13px; } @@ -15225,6 +15241,8 @@