From f6a0fa8b6c1311cdee7a8e15898806c0349e7c1f Mon Sep 17 00:00:00 2001 From: Tarik Moussa Date: Wed, 3 Jun 2026 06:56:34 +0200 Subject: [PATCH] fix(gates): hygiene STATE-Check robust gegen Root-Commit auf main merge-base HEAD main == HEAD (Root-Commit / main an der Spitze) ergab einen leeren Branch-Diff -> STATE.md faelschlich als 'nicht aktualisiert' gewertet. Jetzt: Branch-Diff nur bei echter Divergenz, sonst letzten Commit pruefen. Co-Authored-By: Claude Opus 4.8 --- scripts/gate-session-hygiene.sh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/scripts/gate-session-hygiene.sh b/scripts/gate-session-hygiene.sh index 6e962a4..179b4ec 100755 --- a/scripts/gate-session-hygiene.sh +++ b/scripts/gate-session-hygiene.sh @@ -14,11 +14,14 @@ echo "[hygiene] pruefe Working Tree..." [ -z "$(git status --porcelain)" ] || note "Working Tree nicht sauber." echo "[hygiene] STATE.md im aktuellen Branch aktualisiert?" -base=$(git merge-base HEAD main 2>/dev/null || git rev-parse HEAD~1 2>/dev/null || true) -if [ -n "$base" ]; then +base=$(git merge-base HEAD main 2>/dev/null || true) +head=$(git rev-parse HEAD 2>/dev/null || true) +if [ -n "$base" ] && [ "$base" != "$head" ]; then + # echte Divergenz (Feature-Branch): Diff gegen Abzweigpunkt git diff --name-only "$base"...HEAD | grep -q '^STATE.md$' || \ note "STATE.md im aktuellen Branch nicht aktualisiert." else + # auf main/Integration oder Root-Commit: letzten Commit pruefen git log -1 --name-only --pretty= | grep -q '^STATE.md$' || \ note "STATE.md im letzten Commit nicht angefasst." fi