Files

30 lines
4.3 KiB
Markdown

## Context
`ExportRequest` enthält heute ProjectStamp, Artefaktart, System, Architektur, Zielpfad und Überschreibentscheidung. Der Dialog speichert einen geprüften Auftrag, setzt dann aber `UNAVAILABLE`. `export_result` kontrolliert Auftrag und Revision, bevor es Status übernimmt. Tatsächliche Dateierzeugung und deren Nebenwirkungen sind noch nicht angebunden. VM-/Formwerte verwenden Rc und gehören dem besitzenden Thread.
## Goals / Non-Goals
**Goals:** Reale Erzeugung über die bestehende UI mit konsistentem Stand, sicherem Abbruch und nachprüfbarer Dateiwirkung.
**Non-Goals:** Neue Exportdialoge neben den bestehenden, zweiter Compiler, Verschieben lebender VM-/Rc-Werte in Worker, stilles Speichern der Quellen.
## Decisions
1. Den vorhandenen Projekt-Quelllader samt ungespeicherten Overlays und bereits etablierten Compiler verwenden. Auftrag und Snapshot erhalten eine eindeutige Generation neben dem Revisionsstempel. TBL-Dateien als unveränderliche Byte-Snapshots mit Inhaltsidentität aufnehmen und diese vor Veröffentlichung erneut gegen den aktuellen Stand prüfen. Übergabe an den gemeinsamen Dienst aus 02/03 über serialisierte Kompilat-/Modulproduktbytes und schlichte Ziel-/Auftragsdaten; keine Abhängigkeit des Diensts von der IDE.
2. Langlaufende Paket-/Toolschritte außerhalb des UI-Ereignisloops ausführen, Ergebnisse über einen kleinen vorhandenen beziehungsweise Standardkanal zurückführen. Der Worker erzeugt zunächst nur eine temporäre fertige Ausgabe. Die UI prüft Generation, Projektstempel, Dialog-/Abbruchzustand vor der finalen Veröffentlichung; erst danach Erfolg melden. Ein bloßer später Check in export_result genügt nicht, wenn der Worker das Ziel bereits überschrieben hätte.
3. Esc/Abbruch stoppt oder verwirft den Auftrag, bereinigt Staging und lässt das alte Ziel stehen. Kontrollierte Tools werden bei Abbruch beendet; unerwartet spät eintreffende Resultate dürfen keine Datei freigeben. Für bereits abgeschlossene Veröffentlichung zeigt die UI den wirklichen Abschluss, keinen rückwirkend erfundenen Abbruch.
4. Für Make EXE Zielauswahl vom gemeinsamen Katalog ableiten: Windows x86_64, macOS aarch64, Linux beide. Fehlende tbrt-Vorlagen/Finalisierung konkret melden. Make Library schlägt `.tbl` vor und zeigt seine Plattformunabhängigkeit; native Ziel-/Architekturfelder entfallen in diesem Modus und sind keine Verfügbarkeitsvoraussetzung. Der bisherige generische Phase-6-Sperrtext wird durch tatsächliche Verfügbarkeit ersetzt.
5. Bisherige Phase-5-Tests bleiben als absichtlich backendloser Testfall erhalten. Neue Fälle verwenden denselben realen Backendpfad wie CLI; kontrollierte Rückmeldungen testen zusätzlich Fehler-/Abbruch-/Veraltungsrennen. Beide existierenden Specrequirements werden vollständig einschließlich aller alten Szenarien übernommen und auf fehlende Backendverfügbarkeit konditioniert.
6. Add File/Remove File und MAK-Speicherung um Bibliotheksmitglieder erweitern; TBL als Binärabhängigkeit mit Herkunft anzeigen, weder als Text editieren noch als Startdatei anbieten. Save-As erhält die relative Referenz; Remove löscht keine Library. Start/Check/Debugger verwenden denselben Dienst wie `tbc link`, damit der IDE-Lauf dem Export entspricht. Im Debugger vorhandene Quellorte bewahren; fehlt Bibliotheksquelltext, dies anzeigen und vorhandene Fortsetzen-/Prozedurschrittwege anbieten, ohne einen erfundenen editierbaren Quellstand zu öffnen. Bibliotheksänderungen invalidieren Übersetzungs-/Linkcaches.
## Risks / Trade-offs
- Alte Ergebnisse überschreiben neues Ziel → Veröffentlichung erst nach Generation-/Revisionstest im kontrollierenden Thread.
- Editorinhalt und Export divergieren → eingefrorener Overlay-Snapshot; gespeicherte Dateibytes und Dirty-Markierungen in Tests vergleichen.
- Hintergrundwerkzeug bleibt nach Esc aktiv → Prozess-/Staging-Lebensdauer an Auftrag binden und späte Rückmeldung negativ testen.
## Migration Plan
Vorhandene Dialoge und Tastenzuordnungen erhalten. Backendlose Starts bleiben nachvollziehbar bedienbar. Neue native Tests aus 02/03 sowie bestehende App-Abnahmetests parallel erhalten; Die additive TBL-Mitgliedsart aus 03 muss beim Öffnen/Speichern verlustfrei erhalten bleiben. Die alten Anforderungen werden für EXE-Zielwahl und portable Library-Ausgabe präzisiert; reine BAS-/FRM-Projekte bleiben unverändert.