Перейти к содержимому
supastack
Обзор документации
ДесктопTauri

For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /ru/docs/desktop/first-feature.md (or send Accept: text/markdown).

Создайте первую функцию

Сквозной проход от одного нативного изменения оболочки до проверенного окна.

Задать вопрос об этом руководстве
Открыть в

Прохождение для начинающих

Предварительные требования: прочитайте два руководства для начинающих ниже, завершите локальную настройку Desktop и откройте этот репозиторий в корне в вашем редакторе. Оболочка читает SUPASTACK_APP_URL как настройку терминала при запуске — а не из сохранённого файла .env.

Вкратце: рабочее пространство — это отдельные пользователи, данные и настройки одной команды. Сервер является доверенным сервером; не допускайте попадания ключей провайдера в код браузера и телефона. Миграция — это изменение версии базы данных, при котором создаются или обновляются таблицы. Модель ИИ — это механизм, который отвечает; Каталог моделей — это список доступных идентификаторов моделей и цен на сервере. Поставщик — это внешняя служба, такая как служба искусственного интеллекта, электронной почты или службы выставления счетов. Право — это грант, который позволяет рабочей области использовать функцию. Вебхук — это сообщение, которое одна служба отправляет на URL другой службы.

1. Откройте .agents/skills/add-a-desktop-capability/SKILL.md — или попросите вашего агента кодирования следовать ему — и сделайте одно небольшое нативное изменение, например новый пункт меню Вид или другой ярлык вызова.

2. Запустите cargo check, запустите оболочку и проверьте изменение в открытом окне.

3. Повторите на каждой операционной системе, которую вы планируете поставлять — поведение трея, ярлыка и меню различается по платформам.

Для пользовательского кода назовите поведение, меню или ярлык, которое оно затрагивает, и что должно происходить в каждой ОС. Дайте эту задачу вашему агенту кодирования и попросите прочитать AGENTS.md, .ai/PROJECT_CONTEXT.md и .ai/-зеркала файлов, которые он затронет; перечислите файлы и проверки перед редактированием; и покажите вам diff. Используйте примерные значения; никогда не вставляйте настоящий секрет.

Сначала решите, нативное это или продукт

Всё, что пользователь испытывает как интерфейс продукта — экраны, данные, настройки — принадлежит веб-приложению и автоматически прибывает в окно. Только поведение уровня ОС принадлежит Rust: окна, трей, меню, глобальные горячие клавиши, запуск при входе и проверки обновлений.

apps/desktop/src-tauri/src/lib.rs
apps/desktop/src-tauri/tauri.conf.json
apps/desktop/src-tauri/capabilities/default.json

Держите песочницу webview узкой

Webview может вызывать только то, что перечисляет capabilities/default.json. Изменение, требующее нового плагина, добавляет крейт в Cargo.toml, регистрирует его в lib.rs и предоставляет минимальное разрешение в capabilities — никогда не шаблон.

Постоянное состояние оболочки — позиция окна, масштабирование, канал обновлений, предпочтения окна — живёт в каталоге данных приложения через поставляемые sidecar-файлы, а не в файлах, которыми вы управляете вручную.

Проверяйте на каждой целевой ОС

Запустите cargo test, затем настоящее окно в Windows, macOS и Linux: восстановление состояния окна, закрытие в трей, фокус единственного экземпляра и ярлык вызова с активным изменением. Успешная ОС не доказывает две другие.