Документация
Местное развитие
Явно выберите процесс API, каталог данных и режим клиента.
Автоматически переведено с английского. Смотреть оригинал на английском
Процессы разработки
Полный сеанс разработки для настольных компьютеров запускает оболочку Rust, сайдкар Bun и Vite. Оболочка предоставляет встроенные функции и контролирует сайдкар; Vite предоставляет ресурсы веб-просмотра и горячую перезагрузку. bun run desktop:dev подготавливает двоичные ресурсы и ресурсы миграции перед запуском этих процессов.
Для более быстрой работы экрана запустите рабочий стол dev сценарий один. App.tsx выбирает API предварительного просмотра в памяти только за пределами Tauri и только тогда, когда VITE_SIDECAR_URL отсутствует. Ожидается, что при ошибках предварительной версии для неподдерживаемых коллекций API будет возвращено значение 501. Используйте живую сайдкар для сохранения, авторизации, потокового ИИ и серверных сервисов.
CADCAMFUN_TOKEN=local-development-token CADCAMFUN_DATA_DIR=/tmp/cadcamfun-development CADCAMFUN_MIGRATIONS_DIR="$PWD/packages/db/drizzle" bun --no-env-file apps/sidecar/src/main.ts Токен выше является примером изолированного локального процесса разработки. Выбирайте свою ценность. Держите stdin открытым: его закрытие останавливает сайдкар. Сервер печатает один JSON ready событие с его эфемерным портом после /api/health отвечает; логи идут в stderr.
VITE_SIDECAR_URL=http://127.0.0.1:43111 VITE_SIDECAR_TOKEN=local-development-token bun run --filter @cadcamfun/desktop dev Замените порт 43111 портом события готовности и перед запуском используйте токен, предоставленный этому дополнительному устройству. Vite использует порт 1420 со строгим выбором порта, соответствующим URL-адресу разработки Tauri. Дополнительный компонент позволяет использовать источники CORS браузера на локальном хосте HTTP/loopback и поддерживаемые источники Tauri; для защищенных маршрутов по-прежнему требуется соответствующая авторизация.
Каталоги данных и миграции
Сайдкар открывается <CADCAMFUN_DATA_DIR>/cadcamfun.db. Tauri выбирает собственный каталог данных приложения и передает его дочернему элементу. Ручной процесс использует предоставленный вами каталог. Эти базы данных независимы, даже если имена их файлов идентичны.
Сценарий миграции CLI читает DATABASE_URL и иначе использует ./data/cadcamfun.db относительно его рабочего каталога. Корень db:migrate бежит внутри packages/db. Выбирайте абсолютный URL-адрес файла для целенаправленных операций CLI; не делайте вывод о цели по относительному имени файла, указанному в журнале.
DATABASE_URL=file:/tmp/cadcamfun-cli/cadcamfun.db bun run db:migrate Изменения схемы происходят в packages/db/src/schema.ts. Бегать bun run db:generate, просмотрите созданную миграцию и сначала примените ее к изолированной базе данных. В сайдкаре используется CADCAMFUN_MIGRATIONS_DIR когда это предусмотрено; упакованные сборки размещают сгенерированный каталог в качестве ресурса.
Уровень базы данных включает WAL и внешние ключи. Когда существующий файл требует миграции, путь обновления создает рядом с ним резервную копию в разделе backups/ и сохраняет пять последних совпадающих автоматических резервных копий. При первом создании, неизмененной схеме и базах данных в памяти резервная копия обновления не создается. Сохраняйте данные самостоятельно перед операциями ручного восстановления.
Целевые проверки
bun run --filter @cadcamfun/core typecheck
bun test packages/core
bun run --filter @cadcamfun/desktop typecheck
bun test apps/desktop/src/viewport
bun run --cwd packages/web check
bun run --cwd packages/web build Выберите чеки по измененной границе. Чистые изменения геометрии требуют утверждений геометрии; Изменения контракта API требуют проверок сгенерированных клиентов и затронутых обработчиков; изменения устойчивости требуют тестов репозитория и миграции; Изменения взаимодействия пользовательского интерфейса требуют соответствующего компонента и потока среды выполнения. Корень test сценарий включает в себя packages, apps, и scripts.
Собственные проверки оболочки запускаются из apps/desktop/src-tauri с cargo clippy --all-targets -- -D warnings и cargo test. Сначала подготовьте целевую вспомогательную версию и миграцию, поскольку контекст сборки Таури включает в себя эти ресурсы. Для тестов интеграции операционной системы может потребоваться собственный рабочий стол и связка ключей.
Конфигурация времени выполнения
apps/sidecar/src/config.ts владеет уровнем конфигурации сайдкара. Обязательные входные данные: CADCAMFUN_TOKEN и CADCAMFUN_DATA_DIR. CADCAMFUN_MIGRATIONS_DIR выбирает ресурсы миграции. Хост AI по умолчанию: nikcli; CADCAMFUN_AI_HOST=direct выбирает прямые вызовы и CADCAMFUN_AI_OFFLINE поддерживает автономную/тестовую работу.
Дополнительная конфигурация включает URL-адрес приложения и ссылки для аутентификации разработки, учетные данные Stripe и идентификаторы цен, настройки администратора/хрона и OTEL_EXPORTER_OTLP_ENDPOINT. Биллинг недоступен без соответствующей конфигурации провайдера; экспорт телеметрии отключен без конечной точки сборщика. Предоставляйте только те входные данные, которые необходимы для вашего потока.
Переменные конечной точки браузера — это конфигурация Vite, а не конфигурация боковой панели. Сопутствующая пара содержит другой токен и адрес HTTPS. Автономный токен action-bridge имеет собственную область действия и срок действия. Не заменяйте эти учетные данные друг другом.
Используйте явную конфигурацию процесса или настройки приложения. Пример команды Sidecar отключает загрузку файла среды Bun. Никогда не печатайте реальные токены, ключи моделей, ссылки на пары или материалы для подписи в журналах или примерах документации.
Эффект и владение ресурсами
Репозиторий прикрепляет Effect к 4.0.0-rc.112. Использование услуг Context.Serviceреализации предоставляются через уровни, а операции возвращают типизированные эффекты. Используйте установленный effect/ai-docs/src документации при изменении этого API, включая его нестабильные HTTP-модули.
Декодируйте внешний ввод на границах. Сопоставьте внешние исключения с типизированными ошибками, сохраните стабильные теги ошибок и позвольте уровню с заданной областью владеть дескрипторами базы данных, рабочими процессами, потоками и ресурсами сервера. Поток завершения работы вспомогательного компонента обрабатывает событие завершения родительского процесса, закрытие стандартного ввода и прерывание выполнения; журналы и стандартный вывод протокола имеют разные места назначения.
Базовые вычисления CAD/CAM остаются простыми функциями в горячих вычислительных путях. Проверка переноса на границе не требует помещения каждой операции с геометрией внутри эффекта. Используйте соглашения о базовых единицах геометрии и выполняйте преобразования отображения/экспорта на соответствующем краю. Для рисования углов используются радианы; в некоторых параметрах функций и значениях поворотной оси CAM явно используются градусы.
Устранение неполадок при запуске
- Порт Вите занят: освободить порт 1420 или остановить существующий сервер разработки; строгий режим порта не выбирает другой порт автоматически.
- Загрузка продолжает повторять попытки: проверьте вывод готовности/ошибки сайдкара и путь миграции. Приложение повторно разрешает конечную точку, сохраняя при этом бюджет на подключение.
- Сервер немедленно завершает работу: проверьте необходимую конфигурацию и закрылся ли процесс запуска stdin.
- Отсутствуют проекты: подтвердите каталог данных, конечную точку API и использует ли приложение поддельный клиент.
- 401 ответов: убедитесь, что клиент использует токен текущего процесса, а не предыдущего запуска.
- 501 в предварительном просмотре в браузере: используйте настоящую сайдкар для этой коллекции API.
- Сбой сборки собственного контекста: подготовьте дополнительный двоичный файл и ресурсы миграции для правильной цели.
Разработка документации и сопутствующих материалов
bun run --cwd packages/web start управляет Astro в одиночку. bun run --cwd packages/web dev запускает Astro плюс локальный API Studio. Проверка документации подтверждает индекс маршрута; сборка проверяет компиляцию и предварительный рендеринг Astro.
Для iOS, bun run --cwd apps/mobile start запускает Metro для клиента разработки. bun run --cwd apps/mobile ios собирает/запускает собственное приложение; build экспортирует только JavaScript. Для встроенного закрепления требуется локальный модуль Swift, и его нельзя запустить в Expo Go.
bun scripts/build.ts --help перечисляет параметры конвейера выпуска. --only=resources повторяет миграцию без перестройки и --dry-run распечатывает план, ничего не записывая.
Справочник по конфигурации процесса
| Переменная | Default/requirement | Использовать |
|---|---|---|
CADCAMFUN_TOKEN | Необходимый | Токен-носитель, предоставляемый оболочкой или средством запуска разработки. |
CADCAMFUN_DATA_DIR | Необходимый | Состояние базы данных Sidecar и службы приложений. |
CADCAMFUN_MIGRATIONS_DIR | Необязательный | Папка сгенерированных миграций. Уровень базы данных пропускает миграцию, если папка не указана. |
CADCAMFUN_AI_HOST | nikcli | nikcli встроенный хост или direct ИИ звонит. |
CADCAMFUN_AI_OFFLINE | ЛОЖЬ | Автономная/тестовая работа ИИ; не местная модель-заменитель. |
CADCAMFUN_AI_MINIMAX_BASE_URL | Сброшено | Дополнительное переопределение конечной точки MiniMax встроенного хоста. |
CADCAMFUN_APP_URL | Сброшено | Происхождение приложения, используемое в ссылках аутентификации. |
CADCAMFUN_DEBUG_LINKS | ЛОЖЬ | Ответы на аутентификацию разработчиков могут предоставлять ссылки сброса/магии. |
OTEL_EXPORTER_OTLP_ENDPOINT | Сброшено | Включает экспорт телеметрии при настройке. |
VITE_SIDECAR_URL, VITE_SIDECAR_TOKEN | Сброшено | Подключение к веб-просмотру браузера; оба необходимы для настоящей сайдкара. |
DATABASE_URL | CLI-специфическое значение по умолчанию | Цель инструмента миграции/генерации базы данных, независимая от конфигурации вспомогательного модуля. |
Логические входные данные декодируются конфигурацией эффекта, а не истинностью произвольной строки. Используйте явные значения true/false. Неизвестные литералы хоста AI не декодируются. Поставьте конфигурацию перед созданием процесса; изменение родительской переменной терминала не обновляет уже работающую сайдкар.
Используйте Studio для явной базы данных
Локальный API Studio прослушивает порт обратной связи 4396. Его приоритет пути CADCAMFUN_DB, затем DATABASE_URL с file: префикс удален, затем корень репозитория data/cadcamfun.db. Это отличается от пути к рабочему каталогу CLI пакета базы данных по умолчанию. Он открывает только существующую базу данных и не создает/переносит ее автоматически.
DATABASE_URL=file:/tmp/cadcamfun-studio/cadcamfun.db bun run db:migrate
CADCAMFUN_DB=/tmp/cadcamfun-studio/cadcamfun.db bun run --cwd packages/web dev Первая команда инициализирует файл. Второй запускает Studio plus Astro по этому пути. Свежеперенесенная схема не содержит сеанс пользователя/пароля просто потому, что он существует; Для входа в Studio требуется подходящая учетная запись. Его аутентифицированные запросы используют файл cookie сеанса Studio и возвращают 401 без действительного сеанса.
Если файл отсутствует, Studio API возвращает 503 с выбранным путем. Когда Astro запускается без сопутствующего процесса Studio, проксируется /studio/api запросы не могут достичь порта 4396. Страницы документации сами по себе могут быть разработаны с помощью packages/web start без запуска Студии.
Якоря реализации: packages/web/script/dev.ts, script/studio-server.ts, astro.config.mjs, packages/db/src/migrate.ts, и apps/sidecar/src/config.ts.
Повторяемый цикл разработки
- Выберите одноразовый каталог дополнительных данных и папку явной миграции.
- Запустите сайдкар в интерактивном терминале и запишите порт из события готовности.
- Запустите Vite в другом терминале с соответствующим URL-адресом/токеном или откройте собственное приложение с его контролируемым дополнительным приложением.
- Воспроизведите одно действие и проверьте его реакцию и сохранившееся состояние.
- Для внесения изменений в серверную часть перезапустите сайдкар, обновите конечную точку браузера, если его порт изменился, и повторите действие.
- Остановите процесс с помощью обычного прерывания или родительского пути завершения, чтобы ресурсы завершились.
Сопутствующий компонент на короткое время истощает области HTTP, проверяет WAL и закрывает SQLite при обычном завершении работы с областью действия. Завершение процесса без этого пути может прервать работу в реальном времени. Редактирование исходного кода не заменяет скомпилированный двоичный файл, уже контролируемый Таури; пересоберите сайдкар при тестировании скомпилированного поведения.
Для проверки во время компиляции scripts/smoke-sidecar.ts может запустить выбранный двоичный файл с изолированным домашним каталогом/каталогом данных и автономным искусственным интеллектом. Он измеряет готовность/здоровье/действие и выполняет работу ядра. Без --binary сначала он компилирует временный исполняемый файл, поэтому планируйте стоимость сборки; его результат отличается от тестов на уровне исходного кода.
Какой процесс где выполняется
| Команда | Начинается | Каталог данных | База данных |
|---|---|---|---|
bun run desktop:dev | Скомпилированная сайдкар + окно разработки Tauri | Каталог данных приложения, выбранный Таури | <dataDir>/cadcamfun.db |
Ручная сайдкар (bun apps/sidecar/src/main.ts) | Только сайдкар, на эфемерном порту обратной связи | CADCAMFUN_DATA_DIR | <dataDir>/cadcamfun.db |
bun run db:migrate | Скрипт миграции | — | DATABASE_URL или packages/db/data/cadcamfun.db |
bun run --filter @cadcamfun/web studio | Местная студия | — | CADCAMFUN_DB, DATABASE_URL или data/cadcamfun.db |
bun run --filter @cadcamfun/web dev | Сайт документации | — | — |
Четыре различных значения базы данных по умолчанию
Эти точки входа не имеют общего пути по умолчанию. Явно задайте путь, если вам нужны два инструмента для просмотра одного и того же файла.
Внутренний цикл по типу изменения
| Ты изменился | Бегать |
|---|---|
Код ядра в packages/core | bun test packages/core |
Контракт в packages/api | bun run generate, bun run generate:check, тесты сайдкара, затем документация generate:api-reference |
| Обработчик или сервис сайдкара | bun test apps/sidecar |
| Схема | bun run db:generate, зафиксируйте новую папку миграции, bun scripts/build.ts --only=resources |
Rust внутри src-tauri | cargo clippy и cargo test в apps/desktop/src-tauri |
| Страницы документации | bun run typecheck и bun run build в packages/web |