feat: migrate pypypew to modular native Rust runtime #25

Merged
Wuast94 merged 7 commits from feat/native-rust-runtime into main 2026-10-12 02:59:40 +02:00
Owner

Portiert pypypew mit allen sieben Apps und dem vollständigen HA-/REST-/Recorder-/MQTT-/WLED-Vertrag in eine modulare Rust-Runtime. Jede Aktion startet unabhängig, einschließlich gleichzeitiger Aufrufe desselben Handlers. Feste Licht-/Forgejo-Zyklen und Bridge-Recovery warten auch bei gehaltenen früheren Antworten nicht auf andere Aktionen. Kalenderrefresh und Alarmzyklus sind getrennt; ältere Antworten überschreiben keine neuere Bestätigung. Scoped Generationen besitzen Reload, Abbruch und Cleanup. Bridge-Restore geht dem ersten App-Setup voraus. Sollzustand und tatsächliche Bestätigung sowie unbekannte Historie bleiben getrennt.

Unklare Gotify-Zustellung bleibt dauerhaft unbekannt und wird auch nach Reload/Neustart niemals automatisch erneut gesendet. JSON-Formate, bestehende Änderungen, Releasehistorie, Port8099 und harbor.wuastbude.de/pypypew/pypypew bleiben erhalten. Die UI konsumiert veröffentlichte wuast-ui1.4.0.

Validierung:

  • Vollständiges just gate Exit0: 76 Rust-, 20 Frontend- und 153 Toolingtests; striktes Clippy, Advisories/Bans und Dependency-Nutzung.
  • Tatsächliche DOM-Abläufe bei 1440/768/375/320 Pixeln vollständig grün.
  • Tatsächliches Scratch-Image auf internem Docker-Netz grün: native Protokollpartner, Bridge/SSE, bestätigte Geräteaktionen, Recovery, Reload/Neustart und sauberer Shutdown.
  • Gesichertes Produktions-JSON, bytegleicher Eigentümerwechsel65532, Restore und Rückweg zum veröffentlichten0.5.21-Digest mit UID10001 grün; optionale Notifications beim Rückweg deaktiviert.

Native CI und Release prüfen den tatsächlichen Kandidatendigest und die unsignierte Harbor-SBOM vor finalen Tags. Der produktive Image-/Besitzerwechsel erfolgt anschließend ausschließlich im primary kube GitOps-Repository. old/working bleiben bis zum vollständig verifizierten Ersatz erhalten. Vollständiges Inventar und aktueller Nachweis: docs/migration/inventory.md, docs/migration/report.md.

Portiert pypypew mit allen sieben Apps und dem vollständigen HA-/REST-/Recorder-/MQTT-/WLED-Vertrag in eine modulare Rust-Runtime. Jede Aktion startet unabhängig, einschließlich gleichzeitiger Aufrufe desselben Handlers. Feste Licht-/Forgejo-Zyklen und Bridge-Recovery warten auch bei gehaltenen früheren Antworten nicht auf andere Aktionen. Kalenderrefresh und Alarmzyklus sind getrennt; ältere Antworten überschreiben keine neuere Bestätigung. Scoped Generationen besitzen Reload, Abbruch und Cleanup. Bridge-Restore geht dem ersten App-Setup voraus. Sollzustand und tatsächliche Bestätigung sowie unbekannte Historie bleiben getrennt. Unklare Gotify-Zustellung bleibt dauerhaft unbekannt und wird auch nach Reload/Neustart niemals automatisch erneut gesendet. JSON-Formate, bestehende Änderungen, Releasehistorie, Port8099 und harbor.wuastbude.de/pypypew/pypypew bleiben erhalten. Die UI konsumiert veröffentlichte wuast-ui1.4.0. Validierung: - Vollständiges just gate Exit0: 76 Rust-, 20 Frontend- und 153 Toolingtests; striktes Clippy, Advisories/Bans und Dependency-Nutzung. - Tatsächliche DOM-Abläufe bei 1440/768/375/320 Pixeln vollständig grün. - Tatsächliches Scratch-Image auf internem Docker-Netz grün: native Protokollpartner, Bridge/SSE, bestätigte Geräteaktionen, Recovery, Reload/Neustart und sauberer Shutdown. - Gesichertes Produktions-JSON, bytegleicher Eigentümerwechsel65532, Restore und Rückweg zum veröffentlichten0.5.21-Digest mit UID10001 grün; optionale Notifications beim Rückweg deaktiviert. Native CI und Release prüfen den tatsächlichen Kandidatendigest und die unsignierte Harbor-SBOM vor finalen Tags. Der produktive Image-/Besitzerwechsel erfolgt anschließend ausschließlich im primary kube GitOps-Repository. old/working bleiben bis zum vollständig verifizierten Ersatz erhalten. Vollständiges Inventar und aktueller Nachweis: docs/migration/inventory.md, docs/migration/report.md.
This reverts commit e7c6289ccc.
Preserve all automation and connector contracts with independent scoped actions, native reload and cleanup, durable unknown notification delivery, Recorder recovery, shared UI and guarded CPU/I/O ownership. Keep release identity and add isolated native runtime, restore and rollback acceptance before publishing final tags.
Merge origin/main normally. Incoming changes only update the retired Python Docker digests and uv lock; keep their commits and all tags while retaining the verified Rust replacement. The resulting source tree is identical to the gated native migration commit.
fix: accept native release and restored state on isolated peers
All checks were successful
CI / Quality (pull_request) Successful in 3m24s
CI / Build production (pull_request) Successful in 12m1s
4de8221fbb
fix: dispatch periodic automations and bridge recovery independently
All checks were successful
CI / Quality (pull_request) Successful in 2m13s
CI / Build production (pull_request) Successful in 7m36s
ae113a1f98
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Wuast94/pypypew!25
No description provided.