# Verifikation: phase-6-04-ide-exportanbindung Stand: 2026-09-07. Implementierung auf Basis von `25176947ba992520d6cf451f20097b6380fb9555`. Change 03 wurde zuvor synchronisiert, archiviert und mit diesem Commit auf `origin/main` bestätigt. Change 04 wurde am 2026-09-07 synchronisiert und archiviert; dieser Bericht wird gemeinsam mit der Implementierung committed. ## Ergebnis | Dimension | Ergebnis | |---|---| | Vollständigkeit | 11/11 Aufgaben, 7 Requirements und 11 Szenarien abgedeckt | | Korrektheit | Keine offenen Befunde nach Korrekturen und erneuten Prüfungen | | Kohärenz | Bestehende Dokumentidentitäten, gemeinsamer Projektcompiler/Linker und Exportdienst; nur Bytes und Auftragsdaten im Worker | | Zielabnahme | Echte native Ausführung auf macOS arm64 bestanden; vollständige Plattform-/Releaseabnahme bleibt gemäß PLAN in 05/06 | ## Requirement- und Szenarioabgleich | Requirement / Szenario | Umsetzung und Nachweis | |---|---| | Reale Erzeugung / ungespeichertes Include | `export.rs::Job::start` übersetzt den aktuellen `Project::sources`-Overlaystand ohne Speichern, übergibt TBC-/TBL-Bytes an den Worker. App-Test `real_library_export_uses_dirty_include_and_mouse_without_runtime_template` und echter CLI-/IDE-Abnahmetest `real_native_ide_exports_and_source_free_cli_library_consumer` prüfen geändertes Include, unveränderte Quelldateien, Dirty-Status und tatsächliches Ergebnis. | | Verfügbarkeit und Zielkonsistenz / fehlende Vorlage | Zielkombinationen stammen aus `tb_export::Target::ALL`. EXE-Validierung weist Windows arm64 und macOS amd64 ab; fehlende Vorlagen und fehlgeschlagene Finalisierung erscheinen im bedienbaren Dialog. App-Tests `executable_target_validation_and_missing_template_are_honest` und `finalization_failure_is_reported_and_preserves_existing_output`. | | Abbruch und eindeutige Veröffentlichung / Ergebnis nach Projektwechsel | `Job` liefert `PreparedPublication`; `App::tick_export` prüft Dialog, Generation, Projekt-/Include-/TBL-Stand und bisherigen Zielinhalt vor Veröffentlichung im UI-Thread. Drop verwirft Staging, setzt Abbruch und beendet den Worker; codesign wird bei Abbruch beendet. Kontrollierte verzögerte Resultate prüfen Resize während der Arbeit, Esc, Projektwechsel, neueren Auftrag, Bearbeitung und externe Zieländerung. Kein alter Auftrag veröffentlicht. | | Bedienung bis unabhängige Nutzung / IDE-Export benutzen | Tastatur- und Mauswege verwenden denselben Submit-Pfad. Echte native Abnahme erzeugt ein Forms-Projekt über den IDE-Hauptablauf, hält im Debugger, exportiert EXE und TBL, entfernt Library-Quellen, verwendet die TBL über den echten `tbc link`-Befehl und in einem zweiten IDE-Projekt. CLI-/IDE-Ergebnisse stimmen überein. Das native Programm startet anschließend mit leerem PATH und zeigt die ungespeicherte Include-Änderung einschließlich Dateieffekt. | | Bibliotheken im IDE-Projekt / nach Lauf ersetzen | TBL wird als validierte Binärabhängigkeit mit Dokumentidentität geführt, jedoch ohne Textansicht, Editieren, Text-/Dateispeicherung oder Startup-Auswahl. Loader überspringt TBL-Textoverlays; Start/Check/Debugger verwenden den gemeinsamen Linker. Dokumenttest prüft Add/Remove, Reihenfolge, relative MAK-Referenzen, Save As und erhaltene Librarydatei. `replaced_library_invalidates_pending_export_even_with_same_length` prüft Neuübersetzung und verworfenen Export trotz gleicher Dateigröße. | | Bibliotheken im IDE-Projekt / Library ohne native Vorlage | Make Library hat nur Artefaktbeschreibung, `.tbl`-Ausgabepfad und Überschreibentscheidung. Reale quellfreie Verwendung aus dem App-Test funktioniert ohne Runtime-Vorlage. | | Vollständige Exportdialoge / ohne Backend | Bestehender App-Oberflächentest und Phase-5-Hauptablauf setzen ausdrücklich `export_backend=false`; Verfügbarkeitsgrund, Angaben, Validierung und unveränderte Dateien werden weiter geprüft. | | Vollständige Exportdialoge / fehlerhafte Ausgabeangaben | Leere Pfade, fehlende Zielverzeichnisse, TBC als natives Artefakt, falsche Libraryendung und nicht freigegebene bestehende Ziele werden vor Arbeit abgewiesen. Bestehende App-/CLI-Oberflächentests bleiben erhalten und berücksichtigen die portable Library-Maske. | | Vollständige Exportdialoge / kontrollierte Ergebnisdarstellung | Die backendlosen Tests melden Laufend, Erfolg, Fehler und Abbruch mit demselben Auftrag zurück und prüfen Anzeige sowie unveränderte Projektstempel; sie behaupten keine Dateierzeugung. | | Vollständige Exportdialoge / verfügbares Backend | Zusätzliche reale Library- und native Abnahmen prüfen tatsächliche Dateien, Status und unabhängige Nutzung. Schließen nach erfolgreicher Veröffentlichung erhält den tatsächlichen Erfolg. | | Export-UI als Phasenleistung / ohne Scheinerfolg | Backendlose Phase-5-Abnahme bleibt explizit erhalten; zusätzlich wird die Phase-6-Erzeugung über dieselbe UI nachgewiesen. | Zusätzlicher Debuggernachweis: `debugger_reports_absent_library_source_and_can_step_back_to_caller` prüft den tatsächlichen Halt in quellfreiem Librarycode, die Meldung des fehlenden Quelltexts, Prozedurschritt/Fortsetzen und das richtige Ergebnis ohne erfundene Dokumente oder erzeugte Quelldateien. ## Behobene Befunde - Die erste Revisionsprüfung bezog auch externe Änderungen gespeicherter, bereits geöffneter Includes ein. Geöffnete Puffer bleiben jetzt maßgeblich; TBL und nicht geöffnete Dateieingaben werden über ihre tatsächlichen Bytes geprüft. Der bestehende Include-/Editor-Regressionsfall besteht. - Späte Ergebnisse dürfen keine Ausgabewirkung vor dem UI-Check haben: gemeinsame Veröffentlichung in Vorbereitung und Freigabe getrennt; zusätzlich wird der Zielinhalt bereits ab Auftragsbeginn geschützt. - Ein bereits erfolgreicher Export wurde beim Schließen als abgebrochen gespeichert. Der abgeschlossene Erfolgsstatus bleibt jetzt erhalten. - Worker- und Signierprozesslebensdauer sowie Staging-Bereinigung sind an den Auftrag gebunden, auch beim Beenden der IDE. - Bibliotheken sind aus Text-/Startup-Auswahl und Quellspeicherung ausgeschlossen; auch das implizite Ausführungsziel wird aus Quellmitgliedern gewählt. - Alte Exporthinweise in Bedienung/Tutorial und fehlende eingebettete Hilfeziele wurden korrigiert. Die Hilfe-Endprüfung verwendet den aufgelösten letzten Dokumenteintrag statt einer festen Seitennummer. ## Ausgeführte Prüfungen | Prüfung | Ergebnis | |---|---| | `cargo test --locked --workspace` | 633 bestanden, 0 fehlgeschlagen, 3 ausdrücklich ignoriert | | Echter nativer IDE-Abnahmetest mit `TB_IDE_RUNTIME_DIR` und `--ignored` | 1 bestanden auf macOS arm64; IDE→EXE→Prozessstart und IDE→TBL→CLI-/IDE-Verbraucher | | Zusätzlicher finaler IDE-Ausführungstest nach Quellzielkorrektur | 12 bestanden | | Finaler Help-Test nach Dokumentationsabgleich | 11 bestanden; zusätzlich Offline-Kindprozess bestanden | | `cargo clippy --locked --workspace --all-targets -- -D warnings` | Bestanden | | `cargo fmt --all -- --check`, `git diff --check` | Bestanden | | `openspec validate --all --strict` | 30 Elemente bestanden, 0 fehlgeschlagen | | Release-Build von IDE/CLI und nativer Runtime/Exportwerkzeug | Bestanden | | `native-abnahme.py --target aarch64-apple-darwin` | Echte native Programme, Forms, PTY, Exportabbruch, Signierung und Beschädigungsprüfungen bestanden | | `library-abnahme.py` | Identisches gemeinsames TBL-Artefakt, quellfreie TBC-/EXE-Verbraucher und RUN bestanden | | `cargo check --locked --target aarch64-unknown-linux-gnu -p tb-ide` | Bestanden; kein Linux-Ausführungsnachweis | Die regulär ignorierten Fälle sind Golden-Erzeugung, externer Fremdbestand und der neue native IDE-Test mit expliziter Runtime-Voraussetzung. Letzterer wurde separat tatsächlich ausgeführt. Ein früher Korpuslauf traf im unveränderten Zeitfall `timezonefallback.bas` eine Sekundengrenze; der vollständige abschließende Workspace-Lauf bestand ohne Anpassung dieses Tests oder seiner Sollwerte. Native IDE-Abnahme reproduzieren: geprüfte Host-Vorlage samt Metadaten unter `//tbrt[.exe]` bereitstellen (beispielsweise mit `tests/support/build-runtime.py`), `TB_IDE_RUNTIME_DIR=` setzen und `cargo test --locked -p tb-cli --bin tbc ide_acceptance::real_native_ide_exports_and_source_free_cli_library_consumer -- --ignored` ausführen. Ohne diese explizite Voraussetzung wird kein nativer Nachweis behauptet. Rohprotokolle dieser Sitzung: `/tmp/tb04-workspace-final.log`, `/tmp/tb04-native-final.log`, `/tmp/tb04-execution-final.log`, `/tmp/tb04-help.log`, `/tmp/tb04-clippy-final.log`, `/tmp/tb04-openspec.log`, `/tmp/tb04-native-regression.log`, `/tmp/tb04-library-regression.log`, `/tmp/tb04-linux-check.log`, `/tmp/tb04-release-final.log`. ## Übergabe Change 04 wurde nach erfolgreicher Verifikation synchronisiert und archiviert. Change 05 übernimmt die reale Terminalmatrix auf allen vier Zielsystemen, Change 06 den zentralen Cross-Paketbau und paketgebundene Ausführungsnachweise. Der lokale macOS-Nachweis und Linux-Cross-Check ersetzen diese noch ausstehenden Abnahmen nicht.