# Portabilität: UNIVERSAL
# Version: 1.0.0
# Zuletzt validiert: 2026-03-04

UPDATE HANDLER
==============

HANDLER-NAME
============
bach update - Versions- und Update-Verwaltung


BESCHREIBUNG
============
Verwaltet Updates, Versionierung und System-Integrität. Prüft auf verfügbare
Updates aus Git, spielt diese ein mit automatischen Backups und Datenmigra-
tionen, und verifiziert Systemintegritaet nach jedem Update. Unterstützt auch
Rollbacks zu Pre-Update-Backups.


OPERATIONEN
===========

CHECK
Auf Updates prüfen (Git-basiert). Vergleicht lokale Commits mit Upstream-Branch
und zeigt ausstehende Änderungen an. Funktioniert nur in Git-Repositories.

STATUS (oder ohne Parameter)
Zeigt aktuelle Version, Schema-Version, Update-Zeitstempel und Verifizierungs-
status an. Listet angewandte Migrationen und Git-Informationen auf.

APPLY [--dry-run]
Spielte Update ein mit 5-Phasen-Workflow: (1) Pre-Update-Backup erstellen,
(2) Git pull --rebase ausführen, (3) Migrationen ausführen, (4) System
verifizieren, (5) version.json aktualisieren. Mit --dry-run nur Vorschau.

ROLLBACK [--dry-run]
Rollt zur letzten Pre-Update-Sicherung zurück. Findet neuestes pre_update_*.zip
und stellt bach.db wieder her. Sichert aktuelle DB als .db.pre_rollback.

VERIFY
Prüft System-Integrität: Handler importierbar, version.json vorhanden, bach.db
lesbar, Migrationen konsistent, kritische Verzeichnisse (hub, core, data, skills)
vorhanden. Zeigt Fehlerdetails und aktualisiert last_verified.

MIGRATIONS [list|run]
list (default): Zeigt alle verfügbaren Migrationen mit Status (angewandt/ausstehend).
run: Führt ausstehende Migrationen aus (.py oder .sql), aktualisiert schema_version.


BEISPIELE
=========

bach update check
  Prüft auf verfügbare Updates aus Git-Upstream.

bach update status
  Zeigt Version 1.2.3, letzte Aktualisierung, Verifizierungsstatus, und
  angewandte Migrationen.

bach update apply --dry-run
  Zeigt 5-Phasen-Prozess ohne Änderungen.

bach update apply
  Spielte vollständigen Update ein mit Backup, Pull, Migrationen, Verifikation.

bach update verify
  Prüft alle 6 Punkte: Handler, version.json, bach.db, Migrationen, Verzeichnisse.

bach update rollback --dry-run
  Zeigt letztes Backup an (Dateiname, Größe, Datum) ohne Aktion.

bach update rollback
  Stellt bach.db aus letztem pre_update_*.zip wieder her.

bach update migrations
  Listet verfügbare und ausstehende Migrationen mit Zaehler.

bach update migrations run
  Führt alle ausstehenden Migrationen aus, aktualisiert Tracking.


DATEIEN
=======
data/version.json
  Zentrale Versionsdatei. Enthält: version, schema_version, updated_at,
  last_verified, verification_status, migrations_applied[].

data/bach.db
  SQLite-Datenbank. Wird vor jedem Update gesichert und bei Rollback
  wiederhergestellt.

_backups/
  Pre-Update-Backups als pre_update_X.Y.Z_YYYYMMdd_HHmm.zip. Enthalten
  bach.db, version.json, alle Config-JSONs aus data/.

data/migrations/
  Verzeichnis für Migration-Dateien (.py oder .sql). Version.json verfolgt
  migrations_applied[].

hub/, core/, data/, skills/
  Kritische Verzeichnisse. Verifikation prüft auf Existenz aller 4.


SIEHE AUCH
==========
core      - BACH-Kern-Handler
verify    - Details zur Verifikation
backup    - Sicherungsstrategien
git       - Git-Integration
