# Verifizierung: phase-6-06-gitea-actions-und-releases Stand 07.09.2026. In Actions geprüfter Implementierungsstand: `dec067dfec0c97918f92f00d0b2729238f494c6a` (Lauf auf `ci/phase-6-06`). Change 05 wurde zuvor synchronisiert, auf Benutzeranweisung archiviert und mit `7965647` auf origin/main bestätigt. ## Ergebnis | Dimension | Stand | |---|---| | Vollständigkeit | 7/11 Aufgaben abgeschlossen; vier Aufgaben mit noch fehlenden Ziel-/Rechtenachweisen offen | | Korrektheit | Actions-Lauf 5 mit Pflichtabnahme und vier Paketjobs grün; Originalpakete auf Linux arm64 und macOS arm64 erfolgreich ausgeführt; Paket-/Release-Regressionen grün | | Kohärenz | Bestehende Exportvalidierung, Vorlagenpfade, TBL-/Native-/PTY-Prüfungen wiederverwendet; keine neue Produktabhängigkeit | Keine aktuell bekannte unbehobene lokale Codeabweichung. Der Change ist wegen der unten benannten fehlenden externen Nachweise **nicht vollständig verifiziert oder archivierungsbereit**. Der tatsächliche Actions-Build ist jetzt nachgewiesen; fehlende echte Zielabnahmen bleiben davon getrennt. ## Umsetzung und Szenarioabdeckung - `.gitea/workflows/build.yml`: Push/interner PR, vier Targets auf `linux-arm64`, gepinnte Images/Action-Commits, getrennte Grundabnahme und Paketartefakte. Fremde PRs laufen nicht auf dem persönlichen Runner. - `.gitea/scripts/build.py`, `bootstrap.sh`, `rust-toolchain.toml`: feste Toolchain, SDK-/CRT-Versionen und Inhaltsprüfung, statische Windows-CRT, glibc-Buildbaseline 2.28, macOS-Deployment 11.0. Das sind Buildvorgaben, keine nachgewiesenen minimalen OS-Versionen. - `distribution.py`: richtige `.7z`-/`.tar.gz`-Formate, vollständige Inhalte, 0755 für Unix-Executables, Dateiprüfsummen, Versions-/Target-/Revision- Manifest. Entpacken lehnt fremde Pfade, Links und unvollständige Archive ab. `tb-template --inspect` verwendet den vorhandenen nativen Formatparser. - `target-check`: Programme aus frisch entpackten Paketen starten; EXE-Export ohne expliziten Vorlagenpfad, native Parität, identische portable.tbl, quellfreie Verbraucher, leerer PATH ohne Compiler/Linker, Unix-PTY; Windows verlangt zusätzlich das explizite Konsolentestexecutable. Manuelle Emulatorfolgen bleiben getrennt und revisions-/paketgebunden. - `release.py`, `publish.py`, `publish.yml`: Tag-/Commitbindung, vollständige Pflichtassets, Entwurfsstatus, Zurücklesen mit Bytevergleich, keine Ersetzung existierender abweichender Assets oder veröffentlichter Releases. Fehlende, falsche oder unvollständige Ziel-/Terminal-/Grundnachweise verhindern den letzten `draft=false`-Aufruf. Nachweise stammen aus einem Origin-Commit. - `acceptance.py`: bestehende Fremdprogramm-/Inventar-/Workspace-/Clippy-/ Format-/Compile-/VM-Prüfung sowie explizite native IDE-Abnahme. Fehlende Konfiguration, ignorierte Pflichtläufe und Fehler werden nicht grün. - `docs/distribution.md`, `INSTALL.txt`: Aufrufe, Paketlayout, Rechte, Systemgrenzen, manuelle Nachweisform und Freigabefolge. ## Gefundene und behobene Befunde 1. Die neuen Paketprüfungen verwendeten zunächst `tbc --help`, obwohl die CLI diesen Aufruf nicht unterstützt. Prüfung/Installation verwenden jetzt echte Compiler-/Exportbefehle; keine zusätzliche CLI-Funktion nötig. 2. Ein flaches tbrt neben tb/tbc erfüllte die bestehenden automatischen Suchpfade nicht. Archive enthalten nun `runtimes//tbrt[.exe]` samt Metadaten. Der ausdrückliche Test ohne `--template` besteht. 3. Alte Abnahmeskripte setzten das Entwicklerwerkzeug tb-template voraus. Sie verwenden vorhandene Paketmetadaten; der bisherige Entwicklerpfad bleibt für nicht paketierte Builds verfügbar. 4. Die native IDE-Pflichtprobe erhielt zunächst den falschen Runtime-Basispfad. `acceptance.py` legt die Vorlage im geforderten Target-Unterverzeichnis ab; der vollständige Abnahmelauf besteht nach der Korrektur. 5. Der vorhandene cargo-xwin-Stand akzeptiert den VS-Kanal nur numerisch; CRT-Auswahl benutzt die Manifest-ID `14.44.17.14`, nicht die Dateiversion. Mit Kanal 17 und den tatsächlichen IDs bestehen Build und .7z-Prüfung. Zusätzlich verhindert der SDK-Inhaltspin eine stille Änderung unter unveränderten Versionsbezeichnungen. 6. Den Cross-Images fehlt Node für checkout und Artefakt-Actions. Beide Workflows installieren vor checkout Node 22.22.0 mit SHA-256-Prüfung. Checkout und Fehlerartefakt-Upload sind damit im echten Lauf erfolgreich. 7. Der Fremdprogrammtest verwendete zwei unterschiedliche temporäre Pfade. Linux zeigt den kurzen CURDIR$-Pfad im Titel, wodurch der vollständige Bildschirmvergleich fehlschlug. Beide Läufe verwenden jetzt denselben jeweils frisch entpackten Pfad; alle Vergleiche bleiben unverändert. Lokaler Test mit TMPDIR=/tmp und der echte Linux-Actions-Test bestehen. ## Nachweise - Vier Targets auf dem tatsächlichen Linux-aarch64-Gitea-Host gebaut; PE/amd64/Console, Mach-O/arm64 und beide ELF-Maschinen geprüft. - Echte entpackte Linux-arm64-Paketprüfung auf Linux 6.8.0-139/glibc 2.41. - Das auf Linux cross-kompilierte macOS-Paket auf macOS 26.6.2/arm64 gestartet: Standard-Vorlagenpfad, native Fälle, TBL, IDE-Shell/Abbruch/Wiederherstellung bestanden. Die Programme wurden dabei nicht lokal erneut gebaut. - Fünf automatisierte Paket-/Release-Regressionen: vollständiger Satz, fehlende/falsche Nachweise, Korruption, falsche Revision, schmutzige Quellen, Archiv-Traversierung, fehlender Upload, sichere Wiederholung, Schutz bereits veröffentlichter Releases. Keine öffentlichen Testreleases erzeugt. - Zusätzlich echte negative Artefaktproben: Mach-O als Linux deklariert und verändertes Executable innerhalb eines Archivs werden abgelehnt. - Lokaler vollständiger Pflichtlauf mit fixiertem Fremdbestand einschließlich Benchmarks und expliziter nativer IDE-Probe bestanden. Exporttests, Clippy, Format, YAML-Parsing und OpenSpec-Validierung bestanden. Die früheren lokal orchestrierten Testpakete tragen den uncommitteten Diffstand im Manifest. Die vier aktuellen Actions-Pakete dagegen tragen `dec067d` und `source_dirty=false`. Ihre Archive wurden aus dem Gitea- Artefaktspeicher geladen und gegen die hochgeladenen SHA-Dateien geprüft. `evidence/actions-run-5/` enthält Joblogs, Manifest-/Paketprüfsummen und die tatsächlichen entpackten macOS-/Linux-arm64-Prüfergebnisse. Linux arm64 läuft zusätzlich direkt auf dem Host mit glibc 2.39; macOS auf 26.6.2/arm64. Windows-PE und Linux-amd64-ELF sind formatgeprüft, aber auf ihren Zielen nicht ausgeführt. Die Cross-Linker melden eine ignorierte alte Linux-Linkeroptimierung bzw. fehlende Microsoft-CRT-PDBs (Windows). Alle Release-Builds sind erfolgreich; die Meldungen bleiben in den unveränderten Rohlogs sichtbar. ## Offene externe Befunde - **1.1:** Runner `gitea-arm64-01`, Label `linux-arm64`, Linux-aarch64-Host, fixierte Tools und SDKs sind durch den erfolgreichen Actions-Lauf belegt. Für Windows und Linux amd64 sind weiterhin konkrete echte Prüfsysteme zuzuordnen; vier native Buildrunner sind nicht erforderlich. - **3.4:** Der vollständige Actions-Lauf und die verfügbaren paketgebundenen Prüfergebnisse sind für 07 abgelegt. Die Übergabe aller vorgeschriebenen Zielnachweise bleibt bis zu den fehlenden Prüfungen aus 2.3 unvollständig. - **2.3:** Windows-Ausführung bleibt entsprechend Benutzerentscheidung offen; Linux amd64 und die vollständigen manuellen Emulatorfolgen sind ebenfalls nicht belegt. Cross-Build, lokale Mocktests und gemeinsame ANSI-Technik ersetzen diese Prüfungen nicht. - **3.1:** Der getrennte Releasezugang `TB_RELEASE_TOKEN` ist noch nicht eingerichtet/verifiziert. Es wurde kein persönlicher Git-Zugang als dauerhaftes Release-Secret übernommen. Die Referenzvariable für den vorhandenen fixierten Fremdbestand wurde am Repository eingerichtet. Die verbleibenden Ziel-/Rechtebefunde lassen sich nicht durch Abhaken von Aufgaben schließen. Die fehlenden Paket-/Zielnachweise ergänzen und kontrollierte Entwurfs-/Rechte- prüfung durchführen. Bis dahin keine Freigabe und keine Behauptung „0 Befunde“. ## Origin-Anbindung [Actions-Lauf 5](https://git.rfc1437.de/hugo/TerminalBasic/actions/runs/5) (API-ID 546) für `dec067dfec0c97918f92f00d0b2729238f494c6a` ist abgeschlossen mit `success`: Prüfjob 901 sowie Paketjobs 902–905 erfolgreich. Der Release-Schritt ist bei diesem Branch-Push erwartungsgemäß `skipped`. Damit sind Push-Anbindung, echte Pflichtabnahme, vier Zielarchive und Upload belegt. Der frühere fehlerhafte Lauf 3 zeigte den korrekten Fehlerstatus; Lauf 4 führte die fehlgeschlagene Pflichtabnahme samt Protokoll-Upload aus. Es wurde kein PR eröffnet und kein Release erzeugt; der PR-Pfad benötigt keine Release-Secrets. Eine tatsächliche Release-Rechteprüfung fehlt weiter. Der Implementierungsstand wird samt Bericht und Nachweisen per Fast-forward auf `main` übernommen. Weitere Arbeit und Pushes erfolgen direkt auf `main`; der nur für die CI-Erprobung angelegte Branch wird anschließend entfernt. Rohbelege werden bytegetreu aufbewahrt; `.gitattributes` nimmt ausschließlich Nachweisdateien von Quelltext-Whitespace-Regeln aus. Patch-Kontext und Tool-Ausgaben dürfen ihre ursprünglichen Leerzeichen behalten.