Браузерные предпросмотры и SideCars

Открытие браузера сессии

  1. В панели инструментов разговора выберите Открыть веб-предпросмотр.
  2. Введите URL предпросмотра http:// или https:// без учётных данных, затем нажмите Открыть предпросмотр. Используйте панель для переходов, обновления и навигации назад/вперёд.
  3. Закройте предпросмотр его кнопкой, чтобы вернуться в чат. Снова откройте в том же разговоре для продолжения.

Каждый предпросмотр принадлежит папке проекта и сессии. Переключение разговора, проекта, информации или чата скрывает явно открытый нативный гостевой браузер без потери живого документа/истории. Скрытые гости не являются целями автоматизации. Закрытие проекта/окна или перезапуск интерфейса завершает живой документ.

Сохранённая история восстанавливается только при явном повторном открытии браузера этой сессии, не при запуске/выборе сессии. Она хранит URL и курсор, не неотправленные формы, DOM, тела POST или память JavaScript. История ограничена 32 URL на сессию и общим бюджетом раскладки; старые записи могут обрезаться. Восстановление URL может заново загрузить страницу; это не повтор транзакции.

Общие входы и границы автоматизации

Нативные предпросмотры разделяют cookies, входы и хранилище сайтов между проектами/сессиями в одном настольном движке и области профиля/конфигурации, отдельно от доверенного интерфейса CodeNomad. Выход с сайта в одном предпросмотре влияет на другие с тем же хранилищем. Документы, формы, session storage, истории навигации и привязки автоматизации остаются собственностью сессии. Iframe-предпросмотры — не полноценный общий профиль нативного браузера.

Клиент Реализация предпросмотра Автоматизация браузера агентом Мобильные шаблоны
Electron на поддерживаемых настольных платформах Нативный гость Chromium Поддерживается для видимого принадлежащего сессии предпросмотра Эмуляция идентичности Android/Chromium, касаний и плотности
Windows Tauri Нативный дочерний WebView2 Поддерживается для видимого принадлежащего сессии предпросмотра Эмуляция идентичности Android/Chromium, касаний и плотности
macOS/Linux Tauri Изолированный iframe Нативной автоматизации браузера нет Только размеры
Обычный браузер/удалённый вид Резервный iframe Нет локальной нативной цели предпросмотра Только размеры

Нативная автоматизация подготавливается при запуске настольного приложения и использует связанный с сессией инструмент codenomad.browser для открытия, навигации, снимка структуры, снимка экрана и действий на странице: нажатия, ввода, выбора, наведения, перетаскивания, прокрутки, нажатия клавиш и ожидания текста. Доступность инструмента не разрешает доступ к любому окну: выполнение проверяет серверную часть-владельца, нативные возможности, сессию и видимую цель. Действие, страница которого тем временем была скрыта, заменена или перешла на другой адрес, отклоняется, а не отправляется на другую страницу, и действие никогда не повторяется автоматически. Контент страниц остаётся недоверенным. Iframe может не работать из-за запрета встраивания у цели; используйте внешний браузер, не ослабляйте защиту.

Выбор одного из шести шаблонов области просмотра

  1. Откройте меню области просмотра предпросмотра.
  2. Выберите шаблон ниже. Используйте портретные/альбомные записи напрямую; отдельного поворота нет.
  3. Ожидайте нативную перезагрузку при включении/смене мобильной эмуляции или возврате к шаблону только размеров.
Шаблон CSS-область просмотра
Адаптивная область Доступное место предпросмотра
Настольная область 1440 × 900
Планшетная область 768 × 1024
Планшет, альбомная 1024 × 768
Мобильная область 390 × 844
Телефон, альбомная 844 × 390

Нативные мобильные шаблоны задают идентичность Android/Chromium, ориентацию, касания и DPR 2.75 только собственному гостю. Возврат к адаптивному/настольному/планшетному очищает переопределения и перезагружает. Iframe только меняет размер. Это воспроизводимые ориентиры раскладки, не эмуляция Safari/Firefox, клавиатуры телефона, панелей браузера/системы или настроек текста мобильной ОС. Сохраните работу страницы перед сменой шаблона: перезагрузка может отбросить неотправленное состояние.

Регистрация SideCar

  1. Отдельно запустите веб-инструмент на хосте серверной части CodeNomad с прослушиванием 127.0.0.1:<port>.
  2. Откройте Настройки → SideCars. Введите Имя и Порт; проверьте вычисленный Базовый путь (/sidecars/<id>).
  3. Задайте Протокол по исходной службе и выберите Режим префикса.
  4. Нажмите Добавить SideCar, затем Открыть SideCar на главной странице для открытия вкладки.
Выбор Точный эффект
HTTPS (по умолчанию в форме) CodeNomad подключается к исходной службе как https://127.0.0.1:<port>.
HTTP CodeNomad подключается к исходной службе как http://127.0.0.1:<port>. Это не меняет TLS публичного подключения CodeNomad.
Удалять префикс (по умолчанию) /sidecars/<id>/path передаётся исходной службе как /path.
Сохранять префикс /sidecars/<id>/path передаётся без изменения. Соответственно настройте собственный базовый путь службы.

Регистрация — конфигурация сервера, общая клиентам; не устанавливает и не запускает службу. Порт находится на серверном хосте, не ноутбуке или телефоне просмотра. Запущен указывает достижимость, не исправность приложения/аутентификации инструмента. Удаление регистрации не останавливает отдельно запущенный процесс. Закрытие вкладки тоже не останавливает его.

При недоступности проверьте процесс и порт на серверной части. Если HTML загружается, но ресурсы/WebSockets нет, проверьте базовый путь и режим префикса. Пересоздайте неверную регистрацию с нужными настройками; не открывайте исходную службу публично для обхода ошибки прокси. Приложения SideCar могут предоставлять терминал или файлы с правами серверной учётной записи; доверяйте их пользователям и конфигурации.

SideCar — доверенное расширение CodeNomad, а не изолированный предпросмотр: его страница работает в собственном источнике (origin) CodeNomad, поэтому её скрипты могут пользоваться CodeNomad с вашим выполненным входом. Регистрируйте только службы, коду которых доверяете. CodeNomad не передаёт службе собственные cookies входа, а cookies самой службы сохраняются. Удалённое управление не предоставляет прокси-трафик приложений SideCar; используйте подходящий прямой путь из разделов Удалённый доступ и Удалённое управление.

Пример OpenVSCode Server

  1. На серверном хосте запустите Docker со службой на loopback:
docker run -it --init -p 127.0.0.1:8000:3000 -v "${HOME}:${HOME}:cached" -e HOME=${HOME} gitpod/openvscode-server --server-base-path /sidecars/vscode
  1. Зарегистрируйте Имя VSCode, Порт 8000, Протокол HTTP, Режим префикса Сохранять префикс.
  2. Убедитесь, что базовый путь — /sidecars/vscode, затем откройте SideCar.

Этот пример оболочки монтирует домашний каталог в контейнер; используйте более узкое монтирование, если редактору достаточно его. --server-base-path службы должен точно совпадать с регистрацией. Остановите контейнер отдельно по завершении; удаление SideCar не удаляет его или файлы.

Пример терминала ttyd

  1. На серверном хосте запустите терминал оболочки с записью и привязкой к loopback:
ttyd --interface 127.0.0.1 --writable zsh
  1. Зарегистрируйте Имя Terminal, Порт 7681, Протокол HTTP, Режим префикса Удалять префикс.
  2. Откройте SideCar по показанному базовому пути /sidecars/terminal.

Терминал работает с правами учётной записи, запустившей ttyd. Выберите другую оболочку, если zsh недоступна. Используйте реальный порт, если изменили стандартный ttyd, и останавливайте ttyd отдельно по завершении. Аутентифицируйте и защищайте доступ CodeNomad; терминал с записью — не песочница.