Zurück zur Dokumentation
Architektur

Laufzeit-Walkthrough

End-to-End-Laufzeit-Zeitlinie von der Aufgabeneingabe bis zur Plan-Ausgabe.

12 Min. Lesezeit

Dieser Walkthrough verfolgt eine einzelne Aufgabe von der ersten Erfassung über die Dateisuche, Plan-Generierung bis zur Terminal-Ausführung. Jede Phase entspricht spezifischen Job-Typen und erzeugt Artefakte, die in SQLite gespeichert werden.

Übergeordnete Laufzeitsequenz

  • 1.Benutzer gibt eine Aufgabenbeschreibung ein oder diktiert sie in der Desktop-UI über die TaskDescriptionEditor-Komponente.
  • 2.Optional: text_improvement-Job verfeinert die Roheingabe durch TextImprovementProcessor.
  • 3.Benutzer löst Dateisuche-Workflow über das Implementierungspläne-Panel start_file_finder_workflow-Befehl aus.
  • 4.WorkflowOrchestrator in desktop/src-tauri/src/jobs/workflow_orchestrator/ erstellt einen Workflow-Datensatz und plant Stufe 1.
  • 5.Stufe 1 (root_folder_selection): RootFolderSelectionProcessor sendet Verzeichnisbaum an LLM, speichert ausgewählte Stammverzeichnisse in IntermediateData.selectedRoots.
  • 6.Stufe 2 (regex_file_filter): RegexFileFilterProcessor generiert Muster, führt git ls-files aus, speichert Treffer in IntermediateData.locallyFilteredFiles.
  • 7.Stufe 3 (file_relevance_assessment): FileRelevanceAssessmentProcessor chunked Dateiinhalte, bewertet Relevanz, speichert in IntermediateData.aiFilteredFiles.
  • 8.Stufe 4 (extended_path_finder): ExtendedPathFinderProcessor erweitert Kontext mit Importen und Abhängigkeiten, speichert in IntermediateData.verifiedPaths.
  • 9.UI empfängt workflow-completed-Ereignis über event_emitter.rs, aktualisiert Dateiauswahl-Anzeige.
  • 10.Benutzer löst Plan-Generierung mit ausgewählten Dateien über generate_implementation_plan-Befehl aus.
  • 11.ImplementationPlanProcessor in desktop/src-tauri/src/jobs/processors/implementation_plan_processor.rs streamt XML-Plan-Inhalt an Monaco-Viewer über job:stream-progress-Ereignisse.
  • 12.Benutzer überprüft Plan in VirtualizedCodeViewer-Komponente, kann direkt bearbeiten oder Merge anfordern.
  • 13.Genehmigter Plan wird über Kopier-Button-Vorlagen an Terminal kopiert oder für externe Agenten exportiert.
  • 14.Terminal-Sitzung in terminal_commands.rs erfasst PTY-Ausgabe, erkennt Agenten-Aufmerksamkeitszustände.
  • 15.All artifacts persist in SQLite background_jobs and terminal_sessions tables for history and session recovery.

Laufzeit-Zeitlinie

Visuelle Zeitlinie mit Aufgabeneingabe, Workflow-Phasen und Plan-Ausgabe.

Laufzeit-Zeitlinien-Diagramm
Click to expand
Aufgabenausführung fließt durch sechs Phasen, wobei alle Artefakte in SQLite persistiert werden.

Job-Typ-Zuordnung

  • text_improvement → TextImprovementProcessor → verfeinerte Aufgabenbeschreibungen
  • root_folder_selection → RootFolderSelectionProcessor → ausgewählte Verzeichnisse
  • regex_file_filter → RegexFileFilterProcessor → musterübereinstimmende Dateien
  • file_relevance_assessment → FileRelevanceAssessmentProcessor → bewertete Dateien
  • extended_path_finder → ExtendedPathFinderProcessor → erweiterter Kontext
  • implementation_plan → ImplementationPlanProcessor → XML-Plan-Dokumente
  • implementation_plan_merge → ImplementationPlanMergeProcessor → zusammengeführte Pläne

Task input capture

Tasks enter the system through multiple input surfaces: typed text in TaskDescriptionEditor, voice dictation via useVoiceTranscription hook, or video analysis through VideoAnalysisDialog.

Each input type updates SQLite state: task_description in sessions and task_description_history, voice transcription inserts text into the session or terminal input, and video analysis responses are stored in background_jobs.

Eingabeverfeinerung

Der text_improvement-Job-Typ verfeinert Roheingabe durch TextImprovementProcessor, umhüllt Text mit XML und sendet an LLM für Grammatik-, Klarheits- und Strukturverbesserungen.

Verfeinerter Text wird in background_jobs.response gespeichert und kann sessions.task_description über den React-Provider aktualisieren.

Dateisuche-Workflow

FileFinderWorkflow führt vier sequenzielle Stufen aus: root_folder_selection grenzt Verzeichnisse ein, regex_file_filter wendet Muster an, file_relevance_assessment bewertet Inhalt und extended_path_finder erweitert mit Abhängigkeiten.

Jede Stufe speichert Ergebnisse in IntermediateData-Strukturen, die zwischen Prozessoren übergeben werden, wobei finale Dateiauswahlen in sessions.included_files persistiert werden.

Plan-Generierung

Der implementation_plan-Job-Typ verwendet ImplementationPlanProcessor, um XML-formatierte Pläne mit plan_step-Elementen zu generieren, die Dateipfade, Operationstypen und Code-Änderungen enthalten.

Plan-Inhalt wird über job:stream-progress Tauri-Ereignisse an die UI gestreamt und in der VirtualizedCodeViewer Monaco-Komponente mit Syntaxhervorhebung angezeigt.

Plan-Zusammenführung

Der implementation_plan_merge-Job kombiniert mehrere Pläne mit source_plans XML-Tags und vom Benutzer bereitgestellten Merge-Anweisungen, um Konflikte zu lösen und Änderungen zu konsolidieren.

Zusammengeführte Pläne bewahren die Nachverfolgbarkeit zu Quellplänen und enthalten merged_from-Metadaten im finalen background_jobs-Datensatz.

Plan review

Plans open in the Monaco-based VirtualizedCodeViewer for review. Users can edit plan text directly, request modifications, or approve for execution.

Plan edits are persisted in background_jobs.response; signoff state is recorded in background_jobs.metadata.userSignoff.

Ausführungsübergabe

Genehmigte Pläne werden über Kopier-Button-Vorlagen an das integrierte Terminal kopiert oder für externe Agenten wie Claude Code, Cursor oder Codex exportiert.

Terminal-Sitzungen in terminal_commands.rs erfassen PTY-Ausgabe, erkennen Agenten-Aufmerksamkeitszustände und protokollieren alle Ausführungsaktivitäten in der terminal_sessions-Tabelle.

Zustandspersistenz

Alle Job-Artefakte werden in der background_jobs-Tabelle mit session_id, task_type, status, prompt, response, Token-Anzahlen und Kostenverfolgung persistiert.

Beim App-Neustart rehydriert der Rust-Kern den Sitzungsstatus aus SQLite, markiert veraltete laufende Jobs als fehlgeschlagen und stellt Terminal-Ausgabeprotokolle wieder her.

Architektur erkunden

Verstehen Sie im Detail, wie die Komponenten zusammenpassen.