# 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
`<runtime-root>/<target-triple>/tbrt[.exe]` bereitstellen (beispielsweise mit
`tests/support/build-runtime.py`), `TB_IDE_RUNTIME_DIR=<runtime-root>` 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.
