Implement and archive Phase 5 debugger
This commit is contained in:
@@ -33,7 +33,7 @@ Besondere Risiken sind unverändert ausgeführte alte Kompilate nach einer Text
|
||||
| 03 | [Editor und inkrementelle Übersetzung](../2026-09-06-phase-5-03-editor-und-inkrementelle-uebersetzung/proposal.md) | 01, 02 | Vollständige Codebearbeitung, Diagnose und schneller aktueller Compile |
|
||||
| 04 | [Ausführung und Output](../2026-09-06-phase-5-04-ausfuehrung-und-output/proposal.md) | 01, 02, 03 | Fortsetzbare VM-Sitzung, Reset, Ausgabe, Shell und Textdruck |
|
||||
| 05 | [Formular-Designer](../2026-09-06-phase-5-05-formular-designer/proposal.md) | 01, 02, 03 | Visuelles Gestalten und konsistenter Ereigniscode |
|
||||
| 06 | [Debugger und Direktfenster](../../phase-5-06-debugger-und-direktfenster/proposal.md) | 03, 04 | Quellgenaues Debuggen, Watches, Immediate, History und Fehlerhalte |
|
||||
| 06 | [Debugger und Direktfenster](../2026-09-06-phase-5-06-debugger-und-direktfenster/proposal.md) | 03, 04 | Quellgenaues Debuggen, Watches, Immediate, History und Fehlerhalte |
|
||||
| 07 | [Hilfesystem](../../phase-5-07-hilfesystem/proposal.md) | 02, 03 | Offline-Markdown-Hilfe und Kontextnavigation |
|
||||
| 08 | [Integration und Phasenabnahme](../../phase-5-08-integration-und-phasenabnahme/proposal.md) | 01–07 | Durchgängiger Arbeitsablauf, Befehlsabdeckung und nachgewiesener PLAN-Status |
|
||||
|
||||
|
||||
@@ -23,6 +23,6 @@ Keine bestehenden Anforderungen werden ersetzt; die neue IDE-Fähigkeit ergänzt
|
||||
|
||||
tb-vm/interp.rs, Debug-Quellorte und Frontend/Codegen für Ausdrücke und Direktfenster; tb-ide-Debugfenster. Keine zweite Auswertungsmaschine, kein Zeitreise-Debugger.
|
||||
|
||||
**Abhängigkeiten:** [phase-5-03-editor-und-inkrementelle-uebersetzung](../archive/2026-09-06-phase-5-03-editor-und-inkrementelle-uebersetzung/proposal.md), [phase-5-04-ausfuehrung-und-output](../archive/2026-09-06-phase-5-04-ausfuehrung-und-output/proposal.md).
|
||||
**Abhängigkeiten:** [phase-5-03-editor-und-inkrementelle-uebersetzung](../2026-09-06-phase-5-03-editor-und-inkrementelle-uebersetzung/proposal.md), [phase-5-04-ausfuehrung-und-output](../2026-09-06-phase-5-04-ausfuehrung-und-output/proposal.md).
|
||||
|
||||
**Gesamtplanung:** [Phase-5-Übersicht](../archive/2026-09-06-phase-5-01-projekt-und-dokumentmodell/phase-5-uebersicht.md). Die Nummern geben eine gültige Umsetzungsreihenfolge an; OpenSpec erzwingt Change-Abhängigkeiten nicht automatisch.
|
||||
**Gesamtplanung:** [Phase-5-Übersicht](../2026-09-06-phase-5-01-projekt-und-dokumentmodell/phase-5-uebersicht.md). Die Nummern geben eine gültige Umsetzungsreihenfolge an; OpenSpec erzwingt Change-Abhängigkeiten nicht automatisch.
|
||||
@@ -1,27 +1,27 @@
|
||||
## 1. Quellgenaue Halte und Schritte
|
||||
|
||||
- [ ] 1.1 Eine dateigenaue Breakpoint-Bindung ergänzen und bestehende Modul-/Zeilen-API erhalten; Tests mit zwei Includes derselben physischen Zeile im selben Modul halten nur im gewählten Include.
|
||||
- [ ] 1.2 Editierbare Breakpoint-Marken mit Neubindung an Kompilatrevisionen integrieren; Tests für Einfügen/Löschen und nicht ausführbare Zeilen belegen richtige Verschiebung oder sichtbare Deaktivierung.
|
||||
- [ ] 1.3 Continue-/Single-Step-Verhalten und F9/Clear All im IDE-Dispatcher anbinden; Tests belegen Ausführung einer angehaltenen Anweisung genau einmal und erneuten Halt bei späterem Schleifendurchlauf.
|
||||
- [ ] 1.4 Step Over mit Frameidentität sowie Run to Cursor mit temporärem Halt implementieren; Tests prüfen Rekursion, GOSUB, Eventhandler, vorrangige Breakpoints und Aufräumen des Cursorziels.
|
||||
- [ ] 1.5 Calls-Fenster und Next Statement mit getrenntem Inspektions-/Ausführungsrahmen anbinden; ein Rekursionstest navigiert in ältere Frames, ohne den aktiven PC zu verändern.
|
||||
- [x] 1.1 Eine dateigenaue Breakpoint-Bindung ergänzen und bestehende Modul-/Zeilen-API erhalten; Tests mit zwei Includes derselben physischen Zeile im selben Modul halten nur im gewählten Include.
|
||||
- [x] 1.2 Editierbare Breakpoint-Marken mit Neubindung an Kompilatrevisionen integrieren; Tests für Einfügen/Löschen und nicht ausführbare Zeilen belegen richtige Verschiebung oder sichtbare Deaktivierung.
|
||||
- [x] 1.3 Continue-/Single-Step-Verhalten und F9/Clear All im IDE-Dispatcher anbinden; Tests belegen Ausführung einer angehaltenen Anweisung genau einmal und erneuten Halt bei späterem Schleifendurchlauf.
|
||||
- [x] 1.4 Step Over mit Frameidentität sowie Run to Cursor mit temporärem Halt implementieren; Tests prüfen Rekursion, GOSUB, Eventhandler, vorrangige Breakpoints und Aufräumen des Cursorziels.
|
||||
- [x] 1.5 Calls-Fenster und Next Statement mit getrenntem Inspektions-/Ausführungsrahmen anbinden; ein Rekursionstest navigiert in ältere Frames, ohne den aktiven PC zu verändern.
|
||||
|
||||
## 2. Ausdrücke und Direktfenster
|
||||
|
||||
- [ ] 2.1 Bestehenden Frontend-/Codegen-Pfad für temporäre Debug-Ausdrücke mit Slotbindung im gewählten Frame zugänglich machen; Tests vergleichen Zahlenkonvertierung, Modulqualifizierung, Arrays und UDT-Felder mit normalem BASIC-Code.
|
||||
- [ ] 2.2 Add/Instant/Delete/Delete All Watch und das read-only Debug Window integrieren; Tests zeigen Fehler pro Eintrag und nachweislich unveränderten Zustand nach wiederholter Beobachtung.
|
||||
- [ ] 2.3 Reinheitsprüfung für automatische Ausdrücke und bedingte Watchpoints implementieren; Tests lehnen zustandsverändernde Aufrufe ab und halten nach einer falsch→wahr-Änderung an der nächsten Grenze.
|
||||
- [ ] 2.4 Immediate Window mit temporärem Debug-Eintritt für PRINT und Zuweisungen implementieren; Tests belegen sichtbare Werteänderung und erhaltenen ursprünglichen Fortsetzungspunkt.
|
||||
- [ ] 2.5 Prozeduraufrufe einschließlich BYREF, ERROR und Runtimefehler im Direktfenster integrieren; Tests prüfen Handler/RESUME, Unterbrechen, wartende Aufrufe sowie END/RUN-Übergänge ohne verlorenen oder doppelten Frame.
|
||||
- [x] 2.1 Bestehenden Frontend-/Codegen-Pfad für temporäre Debug-Ausdrücke mit Slotbindung im gewählten Frame zugänglich machen; Tests vergleichen Zahlenkonvertierung, Modulqualifizierung, Arrays und UDT-Felder mit normalem BASIC-Code.
|
||||
- [x] 2.2 Add/Instant/Delete/Delete All Watch und das read-only Debug Window integrieren; Tests zeigen Fehler pro Eintrag und nachweislich unveränderten Zustand nach wiederholter Beobachtung.
|
||||
- [x] 2.3 Reinheitsprüfung für automatische Ausdrücke und bedingte Watchpoints implementieren; Tests lehnen zustandsverändernde Aufrufe ab und halten nach einer falsch→wahr-Änderung an der nächsten Grenze.
|
||||
- [x] 2.4 Immediate Window mit temporärem Debug-Eintritt für PRINT und Zuweisungen implementieren; Tests belegen sichtbare Werteänderung und erhaltenen ursprünglichen Fortsetzungspunkt.
|
||||
- [x] 2.5 Prozeduraufrufe einschließlich BYREF, ERROR und Runtimefehler im Direktfenster integrieren; Tests prüfen Handler/RESUME, Unterbrechen, wartende Aufrufe sowie END/RUN-Übergänge ohne verlorenen oder doppelten Frame.
|
||||
|
||||
## 3. Historie, Fehler und Ausführungsziel
|
||||
|
||||
- [ ] 3.1 Trace, begrenzte History und Shift+F8/Shift+F10 mit eindeutiger historischer Markierung implementieren; Tests belegen Ringgrenze, Navigation und unveränderte aktuelle Variablen/Dateieffekte.
|
||||
- [ ] 3.2 Break on Errors zwischen Handlerwahl und erster Handleranweisung einführen; Differentialtests mit deaktivierter Option belegen identische ERR/ERL-, Unwinding- und RESUME-Folge nach Continue.
|
||||
- [ ] 3.3 Zulässige Ziele für Set Next Statement aus Statement-/Kontrollkontexten ableiten und vor Mutation prüfen; Tests erlauben gleichrangige Ziele und lehnen fremde Frames, Schleifen-/GOSUB-/Fehlerkontexte ohne Teiländerung ab.
|
||||
- [ ] 3.4 Debuggerzustand an Neustart und Quellrevisionen binden; Tests belegen neu gebundene Breakpoints, erhaltene Watchdefinitionen und verworfene Frames/History/Werte.
|
||||
- [x] 3.1 Trace, begrenzte History und Shift+F8/Shift+F10 mit eindeutiger historischer Markierung implementieren; Tests belegen Ringgrenze, Navigation und unveränderte aktuelle Variablen/Dateieffekte.
|
||||
- [x] 3.2 Break on Errors zwischen Handlerwahl und erster Handleranweisung einführen; Differentialtests mit deaktivierter Option belegen identische ERR/ERL-, Unwinding- und RESUME-Folge nach Continue.
|
||||
- [x] 3.3 Zulässige Ziele für Set Next Statement aus Statement-/Kontrollkontexten ableiten und vor Mutation prüfen; Tests erlauben gleichrangige Ziele und lehnen fremde Frames, Schleifen-/GOSUB-/Fehlerkontexte ohne Teiländerung ab.
|
||||
- [x] 3.4 Debuggerzustand an Neustart und Quellrevisionen binden; Tests belegen neu gebundene Breakpoints, erhaltene Watchdefinitionen und verworfene Frames/History/Werte.
|
||||
|
||||
## 4. Abnahme und Bedienung
|
||||
|
||||
- [ ] 4.1 Die vollständigen Debugger-Menüs und F7/F8/F9/F10/Shift+F9 über App-Ereignisse prüfen; dieselben Szenarien müssen auch mit Include- und Formularereigniscode korrekt anhalten.
|
||||
- [ ] 4.2 Debuggerverträge und die expliziten Grenzen für Watches, History und Set Next Statement dokumentieren; verification.md weist alle Szenarien sowie bestandene VM-/Fehlerhandler-/CLI-Regressionen und Format-/Clippy-Prüfung nach.
|
||||
- [x] 4.1 Die vollständigen Debugger-Menüs und F7/F8/F9/F10/Shift+F9 über App-Ereignisse prüfen; dieselben Szenarien müssen auch mit Include- und Formularereigniscode korrekt anhalten.
|
||||
- [x] 4.2 Debuggerverträge und die expliziten Grenzen für Watches, History und Set Next Statement dokumentieren; verification.md weist alle Szenarien sowie bestandene VM-/Fehlerhandler-/CLI-Regressionen und Format-/Clippy-Prüfung nach.
|
||||
@@ -0,0 +1,94 @@
|
||||
# Verification Report: phase-5-06-debugger-und-direktfenster
|
||||
|
||||
Stand: 2026-09-06. Proposal, Design, alle 16 Aufgaben und alle sieben
|
||||
Anforderungen mit elf Szenarien wurden gegen die Implementierung geprüft.
|
||||
|
||||
## Ergebnis
|
||||
|
||||
| Dimension | Ergebnis |
|
||||
| --- | --- |
|
||||
| Completeness | 16/16 Aufgaben, 7/7 Anforderungen |
|
||||
| Correctness | 11/11 Spec-Szenarien durch ausführbare Prüfungen abgedeckt |
|
||||
| Coherence | Gemeinsamer Compiler, dieselbe VM, vorhandene Dokument-/Sitzungspfade |
|
||||
| Offene Befunde | 0 CRITICAL, 0 WARNING, 0 SUGGESTION |
|
||||
|
||||
## Anforderungen und Szenarien
|
||||
|
||||
VM-Nachweise: `crates/tb-vm/tests/debugger.rs` (14 Integrationstests).
|
||||
IDE-Nachweise: `crates/tb-ide/tests/debugger.rs` (6 Integrationstests mit
|
||||
App-Kommandos, Tastatur/Maus, TestBackend und tatsächlicher Sitzung).
|
||||
|
||||
| Requirement / Scenario | Implementierung | Ausführbarer Nachweis |
|
||||
| --- | --- | --- |
|
||||
| Dateigenaue Breakpoints / Zwei Includes mit gleicher Zeile | `Vm::add_source_breakpoint`, `statement_locations`, `debug_boundary`; IDE-Marken mit Dokument-/Ursprungsmodul-ID | VM `include_identity_qualified_globals_udts_and_older_frames`; IDE `includes_and_deleted_marks_do_not_bind_to_foreign_statements`: nur zweites Include, richtiger Quellort und unveränderter Wert vor der Anweisung. |
|
||||
| Dateigenaue Breakpoints / Einfügen oberhalb einer Marke | `documents::remap_breakpoints`, gemeinsame Edit-/Undo-Transaktionen, `bind_debug_breakpoints` | IDE `dispatcher_marks_edits_rebind_and_readonly_watches` und `includes_and_deleted_marks_do_not_bind_to_foreign_statements`: Verschieben, Neubinden, Kommentarzeile, Löschen und Undo; inaktive Marken sind sichtbar. |
|
||||
| Schrittsteuerung und Calls / Rekursion und Prozedurschritt | `step_over` mit Frame-ID und GOSUB-Tiefe; `debug_frames`, `select_debug_frame`; F8/F10 | VM `step_over_recursive_frames_history_and_safe_jump`, `gosub_step_over_breakpoint_priority_and_temporary_target_cleanup`, `form_event_breakpoint_and_step_over_keep_the_event_frame`; IDE `calls_procedure_step_cursor_history_and_restart`, `calls_mouse_inspection_instant_key_delete_and_error_window`, `form_handler_keys_and_old_revision_cursor_guard`. |
|
||||
| Schrittsteuerung und Calls / Temporäres Laufziel | `run_to_cursor`, `cancel_motion`, IDE-Pause und Sitzungsende | VM `gosub_step_over_breakpoint_priority_and_temporary_target_cleanup`; IDE F7 in `calls_procedure_step_cursor_history_and_restart`. Dauerhafte Breakpoints bleiben erhalten; der unterbrochene Cursorlauf wird nicht später erneut wirksam. |
|
||||
| Watches und Watchpoints / Beobachtung im lokalen Kontext | `sema::lower_debug`, `DebugCompiler`, `evaluate_watch`; ursprüngliche Slots und Link-Mappings, getrennte Frameauswahl | VM `watches_immediate_byref_and_errors_preserve_continuation`, `include_identity_qualified_globals_udts_and_older_frames`, `watches_never_initialize_arrays_or_run_user_functions_and_keep_selected_context`: CINT, lokale Arrays, UDT-Felder, qualifizierte Globals, ältere rekursive Frames, keine Auto-DIM-/Funktions-/ERR-Nebenwirkungen. IDE Calls-Mausauswahl, Shift+F9, Watchfehler und Löschdialog. |
|
||||
| Watches und Watchpoints / Watchpoint wird wahr | `evaluate_condition`, `check_watchpoints`, gebundener erreichbarer Inspektionsframe; nur aktive Einträge werden ausgewertet | VM `watchpoint_history_ring_and_error_differential`; IDE `immediate_wait_run_transition_watchpoint_and_trace_are_session_owned`: Halt direkt hinter der Zuweisung, aktualisierter Wert. Nicht numerische oder fehlerhafte Bedingungen lösen keinen Halt aus. |
|
||||
| Direktfenster / Wert ändern und fortsetzen | `start_immediate`, temporärer Frame mit referenzierten Originalslots, gemeinsame VM-Ausführung und `finish_immediate` | VM `watches_immediate_byref_and_errors_preserve_continuation`: lokale Zuweisung, BYREF-Aufruf, PRINT, Original-PC und fortgesetzter geänderter Wert. IDE `dispatcher_marks_edits_rebind_and_readonly_watches` bedient den tatsächlichen Eingabepfad. |
|
||||
| Direktfenster / Fehler im Direktfenster | Bestehendes `handle_error`, abgegrenzter Debug-Eintritt, Handler-/RESUME-Rückkehr und Quellort `<Immediate>` | VM `immediate_handler_resume_and_break_on_errors`, `immediate_wait_interrupt_nested_error_end_and_run`, `immediate_handler_exit_and_cached_new_imports_are_safe`: ERROR, lokaler/geerbter Handler, RESUME NEXT, Handlerende, INPUT/Warten, Interrupt, END und RUN. IDE Direktfehleranzeige, Warte-/F5-Folge und echter RUN-Sitzungsreset. |
|
||||
| Trace und Ausführungshistorie / Historie betrachten | `record_debug_execution`, 1.024-Einträge-Ring, Trace-Quellnavigation, H-/I-/Ausführungsmarken | VM `watchpoint_history_ring_and_error_differential`, `same_line_calls_and_immediate_do_not_retrigger_a_line_breakpoint`; IDE `calls_procedure_step_cursor_history_and_restart`: zweimal zurück, vorwärts, unveränderter PC und unveränderte aktuelle Watchwerte, Reset. History führt nur Quellorte, keine rückspielbaren Zustände. |
|
||||
| Break on Errors / Behandelter Fehler | Halt nach Handlerwahl/Unwinding an dessen erster Statement-Grenze; gesicherte Ursache, ERR/ERL und RESUME-PC | VM `watchpoint_history_ring_and_error_differential` vergleicht den Lauf mit und ohne Halt; `immediate_handler_resume_and_break_on_errors` und `immediate_wait_interrupt_nested_error_end_and_run` prüfen geerbte/lokale Handler und Fortsetzungsrahmen. |
|
||||
| Sicheres Set Next Statement / Gültiger und ungültiger Sprung | Statement-Tabelle, strukturierte AST-Kontrollpfade und Bytecode-Schleifenbereiche; vollständige Prüfung vor PC-Änderung | VM `step_over_recursive_frames_history_and_safe_jump`, `set_next_rejects_loop_gosub_handler_and_pending_operations_atomically`, `set_next_rejects_else_and_case_entry_but_allows_peer_statements`: gleichrangiger Sprung wirksam; fremde Prozedur, Schleife, ELSE/CASE und GOSUB abgewiesen ohne Teiländerung. IDE `form_handler_keys_and_old_revision_cursor_guard` prüft den Revisionsschutz. |
|
||||
|
||||
## Coherence
|
||||
|
||||
- Ein Interpreter: Watches benutzen den regulären Lexer/Parser, Sema, Codegen
|
||||
und die vorhandenen VM-Instruktionen. Es gibt keine zweite Arithmetik oder
|
||||
Konvertierungsschicht. Reinheit wird vor Ausführung am erzeugten Bytecode
|
||||
geprüft; automatische Beobachtung startet weder Host-Polling noch Fehlerhandler.
|
||||
- Originale Modul-/Zeilen-Breakpoint-APIs bleiben erhalten. Neue Debuggerpfade
|
||||
sind opt-in; der CLI-Runtimepfad, das TBC-Format und seine Quelldaten bleiben
|
||||
unverändert. IDE-Compiler behalten vollständige Importkontexte für spätere
|
||||
Direktaufrufe auch nach inkrementeller Übersetzung.
|
||||
- Dokumentmarken verwenden dieselben Edits und Undo-Einheiten wie der Editor.
|
||||
Formularname und Dateiname dürfen verschieden sein. Cursorziele werden nur
|
||||
gegen die unveränderte pausierte Kompilatrevision akzeptiert.
|
||||
- Direktkommandos benutzen den bestehenden kooperativen Poll-/Warte-/RUN-Pfad.
|
||||
Handlerende entfernt keine Locals eines pausierten Frames. Syntaxfehler
|
||||
mutieren nichts; Laufzeitnebenwirkungen bleiben ausdrücklich wirksam.
|
||||
- Die Grenzen für reine Watches, History ohne Zeitreise sowie konservatives
|
||||
Set Next Statement sind in `docs/ide-bedienung.md` dokumentiert. Die
|
||||
gemeinsame Phase-5-Abnahme bleibt Change 08; native Erzeugung bleibt Phase 6.
|
||||
|
||||
## Behobene Verifikationsbefunde
|
||||
|
||||
- Zeilenbreakpoints merken ihren letzten Eintritt pro Frame. Ein zurückkehrender
|
||||
Aufruf oder Direktcode löst keinen zweiten Halt auf derselben Doppelpunktzeile
|
||||
aus; spätere Schleifendurchläufe halten weiterhin.
|
||||
- History nimmt eine Grenze erst beim tatsächlichen Ausführen auf. Die vor
|
||||
einem Direktkommando noch nicht ausgeführte Grenze bleibt danach erhalten.
|
||||
- Break on Errors markiert den ersten Handler-Einstieg, nicht einen veralteten
|
||||
Fehler-PC nach dem Unwinding. Ereigniszustellung verschiebt diesen Halt nicht.
|
||||
- Direktfehler benutzen eine gesicherte Kommando-Rückkehr; auch Handlerende
|
||||
ohne RESUME erhält die ursprünglichen Frame-Slots und den Fortsetzungspunkt.
|
||||
- ELSE-/CASE-Arme bekommen eigene Kontrollkontexte. Ein gleicher Frame allein
|
||||
reicht nicht zur Freigabe von Set Next Statement.
|
||||
- Include-Marken behalten ihr Ursprungsmodul; Formularmarken benutzen die
|
||||
Dokumentidentität statt der Annahme, Formularname und Dateiname seien gleich.
|
||||
- Automatische Watches führen kein Auto-DIM oder Benutzerfunktionen aus;
|
||||
Fehler verändern ERR nicht. Watchpoints berücksichtigen ihren ausgewählten
|
||||
erreichbaren Frame und zeigen Fehler pro Eintrag.
|
||||
- Gewöhnliches STOP/Pause erhält den bisherigen Output-Fokus. Spezifische
|
||||
Debuggerhalte navigieren zum Quelltext; die vorhandenen Ausgabetests bleiben
|
||||
unverändert. Die alte Platzhalter-Erwartung „folgt in 06“ wurde durch die
|
||||
Verfügbarkeit des implementierten Kommandos ersetzt.
|
||||
|
||||
## Abschlussprüfungen
|
||||
|
||||
- `cargo test --workspace`: 587 bestanden, 0 fehlgeschlagen, 2 bestehende
|
||||
Ignore-Fälle (Golden-Output-Generator und externe VBDOS-Referenzsuite).
|
||||
Enthalten sind alle VM-/Fehlerhandler-/CLI-/IDE-Regressionen sowie die
|
||||
20 neuen Debugger-Integrationstests.
|
||||
- `cargo clippy --workspace --all-targets -- -D warnings`: bestanden.
|
||||
- `cargo fmt --all -- --check`: bestanden.
|
||||
- `git diff --check`: bestanden.
|
||||
- `openspec validate --all --strict`: 23/23 gültig; bestehende INFO-Hinweise
|
||||
zur Länge von Requirement-Texten sind keine Validierungsfehler.
|
||||
|
||||
Keine angeforderte Prüfdimension wurde ausgelassen. Die Prüfungen sind
|
||||
reproduzierbar und headless; Maus-/Tasten- und Renderingpfade wurden über
|
||||
App-Ereignisse und TestBackend geprüft. Es bestehen keine offenen Befunde.
|
||||
Der Change ist vollständig umgesetzt und zur separaten Synchronisierung und
|
||||
Archivierung bereit.
|
||||
@@ -24,6 +24,6 @@ Keine bestehenden Anforderungen werden ersetzt; die neue IDE-Fähigkeit ergänzt
|
||||
|
||||
tb-ide-Integrationstests, vorhandene CLI-/VM-/Forms-Tests und Benchmarks, docs/ sowie PLAN.md. Featureimplementierung bleibt jeweils beim verantwortlichen Change; dieser Change schließt Integration und Nachweise.
|
||||
|
||||
**Abhängigkeiten:** [phase-5-01-projekt-und-dokumentmodell](../archive/2026-09-06-phase-5-01-projekt-und-dokumentmodell/proposal.md), [phase-5-02-ide-rahmen](../archive/2026-09-06-phase-5-02-ide-rahmen/proposal.md), [phase-5-03-editor-und-inkrementelle-uebersetzung](../archive/2026-09-06-phase-5-03-editor-und-inkrementelle-uebersetzung/proposal.md), [phase-5-04-ausfuehrung-und-output](../archive/2026-09-06-phase-5-04-ausfuehrung-und-output/proposal.md), [phase-5-05-formular-designer](../archive/2026-09-06-phase-5-05-formular-designer/proposal.md), [phase-5-06-debugger-und-direktfenster](../phase-5-06-debugger-und-direktfenster/proposal.md), [phase-5-07-hilfesystem](../phase-5-07-hilfesystem/proposal.md).
|
||||
**Abhängigkeiten:** [phase-5-01-projekt-und-dokumentmodell](../archive/2026-09-06-phase-5-01-projekt-und-dokumentmodell/proposal.md), [phase-5-02-ide-rahmen](../archive/2026-09-06-phase-5-02-ide-rahmen/proposal.md), [phase-5-03-editor-und-inkrementelle-uebersetzung](../archive/2026-09-06-phase-5-03-editor-und-inkrementelle-uebersetzung/proposal.md), [phase-5-04-ausfuehrung-und-output](../archive/2026-09-06-phase-5-04-ausfuehrung-und-output/proposal.md), [phase-5-05-formular-designer](../archive/2026-09-06-phase-5-05-formular-designer/proposal.md), [phase-5-06-debugger-und-direktfenster](../archive/2026-09-06-phase-5-06-debugger-und-direktfenster/proposal.md), [phase-5-07-hilfesystem](../phase-5-07-hilfesystem/proposal.md).
|
||||
|
||||
**Gesamtplanung:** [Phase-5-Übersicht](../archive/2026-09-06-phase-5-01-projekt-und-dokumentmodell/phase-5-uebersicht.md). Die Nummern geben eine gültige Umsetzungsreihenfolge an; OpenSpec erzwingt Change-Abhängigkeiten nicht automatisch.
|
||||
|
||||
Reference in New Issue
Block a user