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.Alle Artefakte werden in SQLite background_jobs und terminal_sessions-Tabellen für Audit und Sitzungs-Wiederherstellung persistiert.

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

Aufgabeneingabe-Erfassung

Aufgaben gelangen durch mehrere Eingabeoberflächen ins System: getippter Text in TaskDescriptionEditor, Sprach-Diktat über useVoiceTranscription-Hook oder Video-Analyse durch VideoAnalysisDialog.

Jeder Eingabetyp erzeugt Artefakte, die in SQLite gespeichert werden - task_description in sessions-Tabelle, Transkriptionsergebnisse in background_jobs und Video-Frames in zugehörigen Job-Metadaten.

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-Überprüfung

Pläne werden im Monaco-basierten VirtualizedCodeViewer zur Überprüfung geöffnet. Benutzer können Plan-Text direkt bearbeiten, Änderungen anfordern oder zur Ausführung genehmigen.

Alle Überprüfungsaktionen werden mit Zeitstempeln und Benutzerkontext protokolliert und bieten einen Audit-Trail der Plan-Evolution.

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.