Браузерные предпросмотры и SideCars
Открытие браузера сессии
- В панели инструментов разговора выберите Открыть веб-предпросмотр.
- Введите URL предпросмотра
http://илиhttps://без учётных данных, затем нажмите Открыть предпросмотр. Используйте панель для переходов, обновления и навигации назад/вперёд. - Закройте предпросмотр его кнопкой, чтобы вернуться в чат. Снова откройте в том же разговоре для продолжения.
Каждый предпросмотр принадлежит папке проекта и сессии. Переключение разговора, проекта, информации или чата скрывает явно открытый нативный гостевой браузер без потери живого документа/истории. Скрытые гости не являются целями автоматизации. Закрытие проекта/окна или перезапуск интерфейса завершает живой документ.
Сохранённая история восстанавливается только при явном повторном открытии браузера этой сессии, не при запуске/выборе сессии. Она хранит 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 может не работать из-за запрета встраивания у цели; используйте внешний браузер, не ослабляйте защиту.
Выбор одного из шести шаблонов области просмотра
- Откройте меню области просмотра предпросмотра.
- Выберите шаблон ниже. Используйте портретные/альбомные записи напрямую; отдельного поворота нет.
- Ожидайте нативную перезагрузку при включении/смене мобильной эмуляции или возврате к шаблону только размеров.
| Шаблон | CSS-область просмотра |
|---|---|
| Адаптивная область | Доступное место предпросмотра |
| Настольная область | 1440 × 900 |
| Планшетная область | 768 × 1024 |
| Планшет, альбомная | 1024 × 768 |
| Мобильная область | 390 × 844 |
| Телефон, альбомная | 844 × 390 |
Нативные мобильные шаблоны задают идентичность Android/Chromium, ориентацию, касания и DPR 2.75 только собственному гостю. Возврат к адаптивному/настольному/планшетному очищает переопределения и перезагружает. Iframe только меняет размер. Это воспроизводимые ориентиры раскладки, не эмуляция Safari/Firefox, клавиатуры телефона, панелей браузера/системы или настроек текста мобильной ОС. Сохраните работу страницы перед сменой шаблона: перезагрузка может отбросить неотправленное состояние.
Регистрация SideCar
- Отдельно запустите веб-инструмент на хосте серверной части CodeNomad с прослушиванием
127.0.0.1:<port>. - Откройте Настройки → SideCars. Введите Имя и Порт; проверьте вычисленный Базовый путь (
/sidecars/<id>). - Задайте Протокол по исходной службе и выберите Режим префикса.
- Нажмите Добавить 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
- На серверном хосте запустите 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
- Зарегистрируйте Имя
VSCode, Порт8000, ПротоколHTTP, Режим префикса Сохранять префикс. - Убедитесь, что базовый путь —
/sidecars/vscode, затем откройте SideCar.
Этот пример оболочки монтирует домашний каталог в контейнер; используйте более узкое монтирование, если редактору достаточно его. --server-base-path службы должен точно совпадать с регистрацией. Остановите контейнер отдельно по завершении; удаление SideCar не удаляет его или файлы.
Пример терминала ttyd
- На серверном хосте запустите терминал оболочки с записью и привязкой к loopback:
ttyd --interface 127.0.0.1 --writable zsh
- Зарегистрируйте Имя
Terminal, Порт7681, ПротоколHTTP, Режим префикса Удалять префикс. - Откройте SideCar по показанному базовому пути
/sidecars/terminal.
Терминал работает с правами учётной записи, запустившей ttyd. Выберите другую оболочку, если zsh недоступна. Используйте реальный порт, если изменили стандартный ttyd, и останавливайте ttyd отдельно по завершении. Аутентифицируйте и защищайте доступ CodeNomad; терминал с записью — не песочница.