Commit graph

3 Commits

Autor SHA1 Nachricht Datum
claude-dev
52a18fd9ec Phase 8a+8b: Pre-Commit-Hook fuer shared/-Drift + Audit-UI resource_id-Filter
Phase 8a (Hook):
- scripts/git-hooks/pre-commit: prueft bei Commits mit src/shared/-Aenderungen
  den Drift-Stand via sync_shared.py --check und gibt eine Warnung aus
  (blockiert NICHT - User entscheidet selbst, ob er zurueck will).
- scripts/install-hooks.sh: kopiert Hooks aus scripts/git-hooks/ nach
  .git/hooks/ (idempotent, ueberspringt user-eigene Hooks).

Phase 8b (Audit-UI):
- dashboard.html: Resource-ID Eingabefeld neben den anderen Audit-Filtern.
- audit.js: Filter-Listen erweitern, params um resource_id ergaenzt
  (Backend hatte den Filter seit Phase 5 schon).
- Damit ist die Audit-Spur einer einzelnen Ressource auch im Audit-Log-Tab
  filterbar (vorher nur per Direkt-URL bzw. per Quellen-Audit-Modal).
2026-05-09 03:40:00 +00:00
claude-dev
6b1cc975c0 Phase 7: sync_shared.py - Mojibake-fail-safe + Doku
- has_mojibake_markers Heuristik: erkennt Doppel/Triple-Encoded UTF-8
  (typische Latin-1-Sicht-Sequenzen wie ä ö ¤ Æ).
- fix_mojibake raises RuntimeError wenn ftfy fehlt UND Mojibake erkannt
  ist - verhindert Mojibake-Reimport durch Sync.
- main() faengt RuntimeError und exit 2 mit klarer Fehlermeldung.
- CLAUDE.md: Voraussetzung ftfy + fail-safe-Erklaerung erganzt.
2026-05-09 03:28:22 +00:00
claude-dev
a5f2c1d59e Phase 7: scripts/sync_shared.py + Lock-Mechanismus
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.
2026-05-09 03:26:44 +00:00