Nach Phase 16 (Monitor-source_health.py auf Phase-2-Stand) sind alle
4 shared/-Dateien wieder identisch zwischen Monitor und Verwaltung.
Der Lock auf source_health.py war nur fuer den Zeitraum noetig, in dem
die Verwaltung die History-Logik schon hatte und der Monitor noch nicht.
scripts/sync_shared.py: hält src/shared/ in sync mit dem Monitor-Repo
- --check: Drift-Diagnose ohne Schreiben (Exit 1 bei auto-sync-Drift, 0 bei
nur LOCKED-Drift = informativ)
- --apply: schreibt Drift, ueberspringt LOCKED_FILES
- Mojibake-Schutz via ftfy (Monitor-Originale haben teilweise noch Doppel-
Encoded UTF-8, das fixed wird beim Sync)
- Imports-Patch: from agents. -> from shared.agents. (etc.) damit Module
innerhalb von src/shared/ ihre Geschwister korrekt finden
LOCKED_FILES (nicht auto-syncbar):
- src/shared/services/source_health.py (Phase-2-Fork: tenant_id-Filter weg,
History-Archivierung, Config-Konstanten - waere im Monitor unsinnig)
Hintergrund: Phase 1 hat src/shared/ als 1:1-Kopie aus dem Monitor angelegt.
Phase 2 hat source_health.py spezifisch fuer die Verwaltung erweitert.
Ein blinder Sync wuerde Phase-2-Aenderungen ueberschreiben - Lock-Mechanismus
verhindert das, meldet aber Drift zur Information.
CLAUDE.md: Sektion Shared-Module-Sync mit Workflow-Doku.