Back to Docs
Architektur

PlanToCode Architektur

Wie die Desktop-Shell, Hintergrund-Workflows und gemeinsame Dienste organisiert sind.

7 Min. read

PlanToCode ist eine Tauri-Desktop-Anwendung mit einem React Frontend. Die UI rendert Implementierungspläne, Terminals und Konfigurationssteuerungen, während das Rust-Backend Befehle für Workflows, Token-Schätzung und persistente Terminal-Sessions bereitstellt. Diese Übersicht fasst zusammen, wie diese Teile zusammenpassen.

Frontend-Oberfläche

Die Desktop-UI ist mit React-Komponenten erstellt. Implementierungsplan-Inhalte werden durch einen Monaco-basierten Viewer angezeigt, der große Pläne virtualisiert, Sprachen erkennt und Kopieraktionen unterstützt, damit Reviewer Plantext ohne Performance-Probleme untersuchen können. Terminal-Sessions werden innerhalb einer gepufferten Ansicht gerendert, die sich an PTY-Ausgabe anhängt und Verbindungsstatus-Updates anzeigt.

Gemeinsame Provider handhaben Benachrichtigungen, Laufzeitkonfiguration und Planstatus. Das Implementierungspläne-Panel verwaltet Plan-Metadaten, Modal-Sichtbarkeit und fordert Token-Schätzungen oder Prompt-Inhalte bei Bedarf an.

Tauri-Befehle und Dienste

Die Rust-Seite der Anwendung stellt Befehle für Workflows, Terminal-Sessions und Modell-Tooling bereit. Die Workflow-Befehle starten Hintergrundjobs über den Workflow-Orchestrator, validieren Eingaben und senden Fortschrittsereignisse, während die File-Discovery-Pipeline läuft. Token-Schätzungsbefehle berechnen Prompt-Größen für das aktuell ausgewählte Modell.

Terminal-Befehle verwalten PTY-Prozesse, verfolgen Remote-Clients und verifizieren, ob unterstützte CLI-Binärdateien verfügbar sind, bevor eine Session gestartet wird. Gesundheitschecks kombinieren PTY-Status mit Datenbankeinträgen, um zu melden, ob eine Session noch aktiv ist.

Persistenz und Konfiguration

Terminal-Ausgabe und Session-Metadaten werden in SQLite über das Terminal-Sessions-Repository gespeichert. Jeder Datensatz enthält Identifikatoren, Zeitstempel, Arbeitsverzeichnisse, Umgebungsvariablen und das akkumulierte Protokoll, sodass Neustarts vorherige Ausgabe wiederherstellen können. Dasselbe Repository sendet Ereignisse, wenn sich der Session-Status ändert.

Modell-Standards befinden sich in der Anwendungskonfigurationstabelle. Jede Aufgabe definiert ein Standardmodell, eine Liste zugelassener Alternativen, Token-Budgets und optional Kopier-Button-Voreinstellungen. Die React-Schicht liest diese Einstellungen, um den Modellselektor und Guardrails zu füllen.

Sprachtranskriptions-Pipeline

Sprachtranskription ist als React-Hook implementiert, der Medienberechtigungen, Mikrofonauswahl und Streaming-Transkriptionsanfragen koordiniert. Der Hook integriert sich mit dem Plan-Terminal und Prompt-Editoren, fügt erkannten Text direkt in die aktive Komponente ein und zeigt Benachrichtigungen an, wenn die Transkription fehlschlägt.

PlanToCode Architekturübersicht