Abnahme einer Veröffentlichung
Führen Sie jede Prüfung für den Commit und das Artefakt aus, die veröffentlicht werden. CI-Definitionen und
historische Ergebnisse sind kein Beleg dafür, dass eine neue Veröffentlichung bestanden hat. Dokumentieren Sie Commit,
Artefakt-SHA-256, Plattform, Befehl und Ergebnis in validation.md.
- [ ] Rust-Workspace-Tests, Formatierung und Clippy ohne Warnungen bestehen.
- [ ] Der Abruf deckt Chinesisch/mehrere Suchbegriffe, Chunk-Offsets, den Ausschluss privater Inhalte/Zugangsdaten, Kollisionen sechsstelliger IDs, Cache-Invalidierung, Sperrung/ Widerruf/Quelländerungen während laufender Vorgänge und Offenlegungsbeschränkungen auf das Gerät ab. Prüfen Sie lokale EmbeddingGemma-Inferenz und Hashes der Modelldateien, Proxy-/Wiederholungsverhalten und die Validierung von Quellenangaben in Antworten. Dokumentieren Sie, ob echte Modellendpunkte von Kunden getestet wurden.
- [ ] Flutter-Analyse, Formatierung und Widget-Tests bestehen.
- [ ] E-Mail- und App-Signierungsjobs bestehen mit synthetischen Identitäten: S/MIME- und OpenPGP- Verifizierung/Entschlüsselung, Verifizierung signierter APKs sowie eine echte signierte AAB, die von der Release-Pipeline geprüft wurde. Prüfen Sie die Bindung zwischen Vorschau und Freigabe, Bereinigung bei Fehlern und Zugangsdaten-Arbeitsverzeichnisse, auf die nur der Eigentümer zugreifen kann, auf jeder Desktop-Plattform.
- [ ] Validieren Sie unter macOS die iOS-Signierung mit einer temporären Apple-Identität, einem passenden Profil und Berechtigungen, einschließlich Framework-Reihenfolge, Keychain-Bereinigung und Geräteinstallation. Betrachten Sie Windows-Kompilierung nicht als Beleg für iOS-Signierung.
- [ ] Regressionstests für das Ersetzen und Kopieren von Wiki-Geheimnissen bestehen über Core, CLI/IPC, FFI und Flutter hinweg. Prüfen Sie atomisches Fehlerverhalten, erhaltene Bearbeitungszuordnungen, Auflösung aktueller Werte, MCP-Verweigerung und Sperr-/Hintergrundverhalten mit synthetischen Daten.
- [ ] Die tatsächliche Übergabe an die Zwischenablage wird auf jeder ausgelieferten Plattform geprüft, einschließlich Verfügbarkeit von Linux-Hilfsprogrammen und Übergabe an das mobile Betriebssystem. Tests mit simulierten Zwischenablagen allein erfüllen diese Prüfung nicht. Prüfen Sie Synchronisierung/Wiederherstellung von Geheimnisreferenzen mit aktualisierten Clients und dokumentieren Sie die Inkompatibilität älterer Clients in den Versionshinweisen.
- [ ] Der native Android-Smoke-Test besteht nach dem Neubau der FFI; anschließend erfolgen ein gewöhnlicher
APK-Neubau und die Prüfung mit
scripts/verify-apk-native.py. - [ ] iOS-Xcode-/Simulator-Prüfungen bestehen mit der nativen Bibliothek und dem AppAuth-Plugin.
- [ ] ARM64-Android-Hardware und ein physisches iOS-Gerät bestehen Prüfungen für Sperrung/Hintergrund, dauerhafte Speicherung im sicheren Speicher und Wiederherstellung.
- [ ] Echte native/Desktop-Registrierungen für OneDrive und Google Drive bestehen Einwilligungs-, Aktualisierungs-, Abmelde-, Zwei-Geräte-Konvergenz-, Offline-Wiederholungs- und Widerrufstests. Verwenden Sie temporäre Cloud-Konten und synthetische Datensätze. Dokumentieren Sie Client-/Plattform- kombinationen; übertragen Sie ein iOS-OAuth-Ergebnis nicht auf Android.
- [ ] Die Speicher-Benchmark-Ergebnisse erfüllen die vorgesehene unterstützte Bibliotheksgröße.
- [ ] Ergebnisse unabhängiger Kryptografie-/Anwendungssicherheitsprüfungen und Penetrationstests sind behoben oder vom Verantwortlichen für die Veröffentlichung ausdrücklich akzeptiert.
- [ ] Die Prüfung signierter Artefakte und eine unabhängige Sicherungs-/Wiederherstellungsübung bestehen.
Der Validate-Workflow baut native Android- und iOS-Clients und führt deren
Smoke-Tests aus. Build signed Android release ist ein manueller Workflow für die
Umgebung release. Konfigurieren Sie ANDROID_KEYSTORE_BASE64, ANDROID_KEY_ALIAS,
ANDROID_KEY_PASSWORD und ANDROID_STORE_PASSWORD als Umgebungsgeheimnisse. Er
schlägt fehl, wenn Zugangsdaten fehlen, prüft die APK-Signatur/Kette nativer Bibliotheken
und lädt APK und Prüfsumme als Workflow-Artefakt hoch. Er veröffentlicht in
keinem Store. Prüfen Sie vor seiner Ausführung das Validate-Ergebnis des Quell-Commits.
Committen Sie für Windows-Vorabveröffentlichungen den Quellcode und führen Sie
pwsh -File scripts/package-windows.ps1 auf einem Windows-x86_64-MSVC-Host aus.
Das Skript baut den Rust-Workspace neu und paketiert CLI, Tray, Relay, FFI-DLL/Importbibliothek,
C-Header, README-/Sicherheits-/Lizenzdateien im Stammverzeichnis und jede versionierte Datei unter docs/,
wobei die Verzeichnisstruktur erhalten bleibt. Das Archiv, BUILD-INFO.json (Quell-Commit
und Hashes je Datei), memories.example.toml und SHA256SUMS werden nach dist/vVERSION/ geschrieben.
Prüfen Sie Archivinhalt und Hashes, bevor Sie alle vier Dateien zur
passenden GitHub Release hochladen. Bestehende Ausgabeverzeichnisse werden niemals überschrieben.
Unter macOS baut bash scripts/package-macos.sh für die Host-Architektur und erstellt
eine unsignierte Memories.app, ein CLI-/Relay-/FFI-Paket, die vollständige Dokumentation und Schriftlizenzen.
Unter Linux baut bash scripts/build-linux.sh für das native GNU-Ziel x86_64/aarch64;
--debug wählt einen Entwicklungsbuild. Aus einem sauberen, committeten Checkout
erstellt bash scripts/package-linux.sh eine .tar.gz mit CLI/Relay/FFI, dem C-
Header, versionierter Dokumentation und Lizenzen unter dist/vVERSION-linux-ARCH/, zusammen mit
BUILD-INFO.json, memories.example.toml und SHA256SUMS. Prüfen Sie Hashes, Unix-
Ausführungsberechtigungen und Laufzeitabhängigkeiten auf der vorgesehenen glibc-/OpenSSL-
Distribution. Linux verwendet die WebUI und hat kein natives Tray-Paket.
Der manuelle Workflow Build desktop packages führt Linux-/Windows-/macOS-Prüfungen aus und lädt
diese Pakete als Workflow-Artefakte hoch; er veröffentlicht keine GitHub Release.
Prüfen Sie vor der Weitergabe von Desktop-Builds Tray-Start/Menüaktionen/Beenden und
WebUI-Darstellung auf dem ausgelieferten Betriebssystem sowie Token-/Origin-Zurückweisung, passiven Ablauf bei
Inaktivität, das Leeren von Details bei Sperrung/Offline-Zustand und tatsächliche Daemon-Statusänderungen.
Die iOS-Verteilung erfordert ein Apple-Team, Zertifikat/Profil und Provisionierungs-
einstellungen unter macOS. Dieses Repository enthält keine Zugangsdaten oder Entwicklerkonten zur Auslieferung.
Distributionsbuilds mit Cloud-Unterstützung benötigen außerdem die plattformspezifischen Client-IDs und
registrierten Callback-Schemas aus cloud-authorization.md; der allgemeine CI-Build
enthält keine OAuth-Client-Registrierung.