Dokumentation
Lokale Entwicklung
Wählen Sie den API-Prozess, das Datenverzeichnis und den Client-Modus explizit aus.
Automatisch aus dem Englischen übersetzt. Englisches Original ansehen
Entwicklungsprozesse
In einer vollständigen Desktop-Entwicklungssitzung werden eine Rust-Shell, ein Bun-Sidecar und Vite ausgeführt. Die Shell stellt native Funktionen bereit und überwacht den Sidecar; Vite bietet Webview-Assets und Hot-Reload. bun run desktop:dev bereitet die Binär- und Migrationsressourcen vor, bevor diese Prozesse gestartet werden.
Für eine schnellere Bildschirmarbeit führen Sie den Desktop aus dev skript allein. App.tsx wählt die In-Memory-Preview-API nur außerhalb von Tauri und nur dann aus VITE_SIDECAR_URL fehlt. Vorschaufehler für nicht unterstützte API-Sammlungen werden voraussichtlich 501 zurückgeben. Verwenden Sie einen Live-Sidecar für Persistenz, Autorisierung, Streaming-KI und Serverdienste.
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 Der obige Token ist ein Beispiel für einen isolierten lokalen Entwicklungsprozess. Wählen Sie Ihren eigenen Wert. Halten Sie den Standard geöffnet: Wenn Sie ihn schließen, stoppt der Sidecar. Der Server druckt einen JSON ready ereignis mit seinem kurzlebigen Hafen danach /api/health antwortet; Protokolle gehen zu stderr.
VITE_SIDECAR_URL=http://127.0.0.1:43111 VITE_SIDECAR_TOKEN=local-development-token bun run --filter @cadcamfun/desktop dev Ersetzen Sie Port 43111 durch den Ready-Event-Port und verwenden Sie vor der Ausführung das diesem Sidecar bereitgestellte Token. Vite verwendet Port 1420 mit strenger Portauswahl, passend zur Tauri-Entwicklungs-URL. Der Sidecar ermöglicht Browser-CORS-Ursprünge auf HTTP Localhost/Loopback und den unterstützten Tauri-Ursprüngen; Für geschützte Strecken ist weiterhin eine entsprechende Genehmigung erforderlich.
Datenverzeichnisse und Migrationen
Der Sidecar öffnet sich <CADCAMFUN_DATA_DIR>/cadcamfun.db. Tauri wählt sein eigenes Anwendungsdatenverzeichnis und übergibt es an das Kind. Ein manueller Prozess verwendet das von Ihnen bereitgestellte Verzeichnis. Diese Datenbanken sind unabhängig, auch wenn ihr Dateiname identisch ist.
Das CLI-Migrationsskript liest DATABASE_URL und anderweitig verwendet ./data/cadcamfun.db relativ zu seinem Arbeitsverzeichnis. Wurzel db:migrate läuft hinein packages/db. Wählen Sie eine absolute Datei-URL für gezielte CLI-Vorgänge. Leiten Sie das Ziel nicht aus einem relativen Dateinamen ab, der in einem Protokoll angezeigt wird.
DATABASE_URL=file:/tmp/cadcamfun-cli/cadcamfun.db bun run db:migrate Schemaänderungen haben ihren Ursprung in packages/db/src/schema.ts. Laufen bun run db:generate, überprüfen Sie die generierte Migration und wenden Sie sie zunächst auf eine isolierte Datenbank an. Der Sidecar nutzt CADCAMFUN_MIGRATIONS_DIR wenn bereitgestellt; Paketierte Builds stellen das generierte Verzeichnis als Ressource bereit.
Die Datenbankschicht ermöglicht WAL und Fremdschlüssel. Wenn eine vorhandene Datei migriert werden muss, erstellt der Upgrade-Pfad darunter ein Backup daneben backups/ und behält die letzten fünf passenden automatischen Backups bei. Bei der ersten Erstellung, einem unveränderten Schema und In-Memory-Datenbanken wird kein Upgrade-Backup erstellt. Bewahren Sie Daten unabhängig vor manuellen Wiederherstellungsvorgängen auf.
Gezielte Kontrollen
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 Wählen Sie Prüfungen anhand der geänderten Grenze aus. Reine Geometrieänderungen erfordern Geometriezusicherungen; API-Vertragsänderungen erfordern Überprüfungen generierter Clients und betroffener Handler. Persistenzänderungen erfordern Repository- und Migrationstests; Änderungen an der Benutzeroberflächeninteraktion erfordern die entsprechende Komponente und den entsprechenden Laufzeitablauf. Die Wurzel test skript enthält packages, apps, und scripts.
Native Shell-Prüfungen werden ausgeführt von apps/desktop/src-tauri mit cargo clippy --all-targets -- -D warnings und cargo test. Stellen Sie zuerst den Ziel-Sidecar und die Migrationen bereit, da der Build-Kontext von Tauri diese Ressourcen enthält. Für Betriebssystemintegrationstests können ein nativer Desktop und ein Schlüsselbund erforderlich sein.
Laufzeitkonfiguration
apps/sidecar/src/config.ts besitzt die Sidecar-Konfigurationsebene. Erforderliche Eingaben sind CADCAMFUN_TOKEN und CADCAMFUN_DATA_DIR. CADCAMFUN_MIGRATIONS_DIR wählt Migrationsressourcen aus. Der Standard-KI-Host ist nikcli; CADCAMFUN_AI_HOST=direct wählt Direktanrufe aus und CADCAMFUN_AI_OFFLINE unterstützt Offline-/Testbetrieb.
Die optionale Konfiguration umfasst die Anwendungs-URL und Entwicklungs-Authentifizierungslinks, Stripe-Anmeldeinformationen und Preiskennungen, Administrator-/Cron-Einstellungen usw OTEL_EXPORTER_OTLP_ENDPOINT. Ohne entsprechende Anbieterkonfiguration ist die Abrechnung nicht möglich; Der Telemetrieexport ist ohne seinen Collector-Endpunkt deaktiviert. Stellen Sie nur die Eingaben bereit, die für Ihren Fluss erforderlich sind.
Browser-Endpunktvariablen sind Vite-Konfiguration, keine Sidecar-Konfiguration. Eine Companion-Paarung enthält ein anderes Token und eine andere HTTPS-Adresse. Ein eigenständiger Action-Bridge-Token hat seinen eigenen Umfang und seine eigene Lebensdauer. Ersetzen Sie diese Anmeldeinformationen nicht gegenseitig.
Verwenden Sie explizite Prozesskonfigurations- oder Anwendungseinstellungen. Der Beispiel-Sidecar-Befehl deaktiviert das Laden der Umgebungsdatei von Bun. Drucken Sie niemals tatsächliche Token, Modellschlüssel, Kopplungslinks oder Signaturmaterial in Protokollen oder Dokumentationsbeispielen aus.
Wirkung und Ressourcenbesitz
Das Repository heftet Effect an 4.0.0-rc.112. Nutzung von Diensten Context.Service, implementierungen werden über Ebenen bereitgestellt und Operationen geben typisierte Effekte zurück. Verwenden Sie das installierte effect/ai-docs/src dokumentation beim Ändern dieser API, einschließlich ihrer instabilen HTTP-Module.
Dekodieren Sie externe Eingaben an Grenzen. Ordnen Sie fremde Ausnahmen typisierten Fehlern zu, bewahren Sie stabile Fehlertags und überlassen Sie einer bereichsbezogenen Ebene den Besitz von Datenbankhandles, Workern, Streams und Serverressourcen. Der Shutdown-Flow des Sidecars verarbeitet ein übergeordnetes Shutdown-Ereignis, einen Standard-Schließvorgang und eine Laufzeitunterbrechung. Protokolle und Protokoll stdout haben unterschiedliche Ziele.
Kern-CAD/CAM-Berechnungen bleiben einfache Funktionen in rechenintensiven Pfaden. Das Umschließen der Validierung an der Grenze erfordert nicht, dass jede Geometrieoperation in einen Effekt eingefügt wird. Verwenden Sie die Kernkonventionen für Geometrieeinheiten und führen Sie Anzeige-/Exportkonvertierungen an der entsprechenden Kante durch. Beim Zeichnen von Winkeln wird das Bogenmaß verwendet. Einige Feature-Parameter und CAM-Rotationsachsenwerte verwenden explizit Grad.
Fehlerbehebung beim Start
- Vite-Hafen belegt: geben Sie den Port 1420 frei oder stoppen Sie den vorhandenen Entwicklungsserver. Der strikte Portmodus wählt nicht stillschweigend einen anderen Port aus.
- Boot versucht es immer wieder: überprüfen Sie die Sidecar-Bereitschafts-/Fehlerausgabe und den Migrationspfad. Die App löst den Endpunkt erneut auf, während das Verbindungsbudget bestehen bleibt.
- Der Server wird sofort beendet: überprüfen Sie die erforderliche Konfiguration und ob der Startvorgang stdin geschlossen hat.
- Fehlende Projekte: bestätigen Sie das Datenverzeichnis, den API-Endpunkt und ob die App den gefälschten Client verwendet.
- 401 Antworten: stellen Sie sicher, dass der Client das Token des aktuellen Prozesses und nicht eines vorherigen Starts verwendet.
- 501 in der Browservorschau: verwenden Sie einen echten Sidecar für diese API-Sammlung.
- Die Erstellung des nativen Kontexts schlägt fehl: stellen Sie die Sidecar-Binär- und Migrationsressourcen für das richtige Ziel bereit.
Dokumentation und Begleitentwicklung
bun run --cwd packages/web start betreibt Astro alleine. bun run --cwd packages/web dev startet Astro und die lokale Studio-API. Die Dokumentationsprüfung validiert den Routenindex; Der Build validiert die Astro-Kompilierung und das Vorrendern.
Für iOS, bun run --cwd apps/mobile start startet Metro für einen benutzerdefinierten Entwicklungskunden. bun run --cwd apps/mobile ios erstellt/führt die native App aus; build exportiert nur JavaScript. Natives Pinning erfordert das lokale Swift-Modul und kann nicht in Expo Go ausgeführt werden.
bun scripts/build.ts --help listet die Optionen der Release-Pipeline auf. --only=resources führt Migrationen ohne Neuaufbau erneut durch und --dry-run druckt den Plan, ohne etwas zu schreiben.
Referenz zur Prozesskonfiguration
| Variable | Default/requirement | Verwenden |
|---|---|---|
CADCAMFUN_TOKEN | Erforderlich | Inhabertoken, das von der Shell oder dem Entwicklungsstartprogramm bereitgestellt wird. |
CADCAMFUN_DATA_DIR | Erforderlich | Status der Sidecar-Datenbank und des Anwendungsdiensts. |
CADCAMFUN_MIGRATIONS_DIR | Optional | Ordner der generierten Migrationen. Die Datenbankschicht überspringt Migrationen, wenn kein Ordner angegeben wird. |
CADCAMFUN_AI_HOST | nikcli | nikcli eingebetteter Host oder direct KI-Anrufe. |
CADCAMFUN_AI_OFFLINE | FALSCH | Offline-/Test-KI-Betrieb; kein lokales Ersatzmodell. |
CADCAMFUN_AI_MINIMAX_BASE_URL | Unscharf | Optionale Überschreibung des eingebetteten MiniMax-Endpunkts. |
CADCAMFUN_APP_URL | Unscharf | Der in Authentifizierungslinks verwendete Anwendungsursprung. |
CADCAMFUN_DEBUG_LINKS | FALSCH | Entwicklungsauthentifizierungsantworten können Reset-/Magic-Links offenlegen. |
OTEL_EXPORTER_OTLP_ENDPOINT | Unscharf | Aktiviert den Telemetrieexport, wenn konfiguriert. |
VITE_SIDECAR_URL, VITE_SIDECAR_TOKEN | Unscharf | Browser-Webview-Verbindung; beide werden für einen echten Sidecar benötigt. |
DATABASE_URL | CLI-spezifischer Standard | Ziel des Datenbankmigrations-/Generierungstools, unabhängig von der Sidecar-Konfiguration. |
Boolesche Eingaben werden durch die Effektkonfiguration dekodiert, nicht durch willkürliche String-Wahrheit. Verwenden Sie explizite Wahr/Falsch-Werte. Unbekannte AI-Hostliterale können nicht dekodiert werden. Geben Sie die Konfiguration an, bevor Sie den Prozess erstellen. Durch das Ändern einer übergeordneten Terminalvariablen wird ein bereits ausgeführter Sidecar nicht aktualisiert.
Verwenden Sie Studio für eine explizite Datenbank
Die lokale Studio-API lauscht am Loopback-Port 4396. Seine Pfadpriorität ist CADCAMFUN_DB, dann DATABASE_URL mit einem file: präfix entfernt, dann Repository-Root data/cadcamfun.db. Dies unterscheidet sich vom Standard-CLI-Arbeitsverzeichnispfad des Datenbankpakets. Es öffnet nur eine vorhandene Datenbank und erstellt/migriert keine automatisch.
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 Der erste Befehl initialisiert die Datei. Das zweite startet Studio plus Astro gegen diesen Weg. Ein frisch migriertes Schema enthält keine Benutzer-/Passwort-Sitzung, nur weil sie existiert; Für die Studio-Anmeldung ist ein geeignetes Konto erforderlich. Seine authentifizierten Anfragen verwenden das Studio-Sitzungscookie und geben 401 ohne gültige Sitzung zurück.
Wenn die Datei fehlt, gibt die Studio-API 503 mit dem ausgewählten Pfad zurück. Wenn Astro ohne den begleitenden Studio-Prozess ausgeführt wird, wird er als Proxy ausgeführt /studio/api anfragen können Port 4396 nicht erreichen. Dokumentationsseiten selbst können mit entwickelt werden packages/web start ohne Studio zu starten.
Umsetzungsanker: packages/web/script/dev.ts, script/studio-server.ts, astro.config.mjs, packages/db/src/migrate.ts, und apps/sidecar/src/config.ts.
Eine wiederholbare Entwicklungsschleife
- Wählen Sie ein verfügbares Sidecar-Datenverzeichnis und einen expliziten Migrationsordner.
- Starten Sie den Sidecar in einem interaktiven Terminal und zeichnen Sie den Port ab seinem Bereitschaftsereignis auf.
- Starten Sie Vite in einem anderen Terminal mit der passenden URL/dem passenden Token oder öffnen Sie die native App mit ihrem überwachten Sidecar.
- Reproduzieren Sie eine Aktion und prüfen Sie deren Reaktion und den beibehaltenen Zustand.
- Bei Backend-Änderungen starten Sie den Sidecar neu, aktualisieren den Browser-Endpunkt, wenn sich sein Port geändert hat, und wiederholen Sie die Aktion.
- Stoppen Sie den Prozess mit seinem normalen Interrupt- oder übergeordneten Shutdown-Pfad, damit die Ressourcen abgeschlossen werden.
Der Sidecar entleert HTTP-Bereiche kurzzeitig, setzt WAL-Prüfpunkte und schließt SQLite beim Herunterfahren mit normalem Bereich. Das Beenden eines Prozesses ohne diesen Pfad kann die Arbeit während des Vorgangs unterbrechen. Eine Quellbearbeitung ersetzt nicht die kompilierte Binärdatei, die bereits von Tauri überwacht wird; Erstellen Sie den Sidecar neu, wenn Sie das kompilierte Verhalten testen.
Für die Validierung zur kompilierten Laufzeit: scripts/smoke-sidecar.ts kann eine ausgewählte Binärdatei mit einem isolierten Home-/Datenverzeichnis und Offline-KI ausführen. Es misst Bereitschaft/Gesundheit/Aktionsverhalten und übt einen Kernel-Job aus. Ohne --binary es kompiliert zunächst eine temporäre ausführbare Datei. Planen Sie daher die Erstellungskosten ein. Das Ergebnis ist unabhängig von Tests auf Quellenebene.
Welcher Prozess läuft wo?
| Befehl | Beginnt | Datenverzeichnis | Datenbank |
|---|---|---|---|
bun run desktop:dev | Kompiliertes Sidecar + Tauri-Entwicklungsfenster | Von Tauri ausgewähltes Anwendungsdatenverzeichnis | <dataDir>/cadcamfun.db |
Manueller Sidecar (bun apps/sidecar/src/main.ts) | Nur Sidecar, an einem kurzlebigen Loopback-Port | CADCAMFUN_DATA_DIR | <dataDir>/cadcamfun.db |
bun run db:migrate | Migrationsskript | — | DATABASE_URL oder packages/db/data/cadcamfun.db |
bun run --filter @cadcamfun/web studio | Lokales Studio | — | CADCAMFUN_DB, DATABASE_URL oder data/cadcamfun.db |
bun run --filter @cadcamfun/web dev | Docs-Site | — | — |
Vier verschiedene Datenbankstandards
Diese Einstiegspunkte haben keinen gemeinsamen Standardpfad. Legen Sie den Pfad explizit fest, wenn Sie zwei Tools benötigen, um dieselbe Datei anzuzeigen.
Innere Schleife nach Änderungstyp
| Du hast dich verändert | Laufen |
|---|---|
Kernel-Code in packages/core | bun test packages/core |
Ein Vertrag in packages/api | bun run generate, bun run generate:check, die Sidecar-Tests, dann die Dokumente generate:api-reference |
| Ein Sidecarabfertiger oder -dienst | bun test apps/sidecar |
| Das Schema | bun run db:generate, übernehmen Sie den neuen Migrationsordner, bun scripts/build.ts --only=resources |
Rust drin src-tauri | cargo clippy und cargo test in apps/desktop/src-tauri |
| Dokumentenseiten | bun run typecheck und bun run build in packages/web |