Laufzeit-Walkthrough
End-to-End-Laufzeit-Zeitlinie von der Aufgabeneingabe bis zur Plan-Ausgabe.
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.
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.