#!/bin/zsh # ============================================ # KA pousseur — pousse vers spbgit les commits en attente des repos Ka du nœud. # Chaîne 100 % binaires Apple (launchd → zsh → /usr/bin/git → /usr/bin/ssh) : # contourne macOS 26 Local Network Privacy, qui bloque les `git push` lancés # par les missions Claude (descendants du runner python homebrew). # Repos surveillés : un chemin par ligne dans ~/.ka-pousseur-repos. # Push SIMPLE uniquement (jamais de force) : un non-fast-forward est loggé, # jamais résolu d'autorité. # ============================================ export PATH=/usr/bin:/bin:/usr/sbin:/sbin SPOOL=~/ka-guardian-spool LOG=$SPOOL/pousseur.log REPOS_FILE=~/.ka-pousseur-repos mkdir -p $SPOOL while true; do if [[ -f $REPOS_FILE ]]; then while IFS= read -r dir; do [[ -z $dir || $dir == \#* ]] && continue d=${dir/#\~/$HOME} [[ -d $d/.git ]] || continue ahead=$(/usr/bin/git -C "$d" rev-list --count origin/main..main 2>/dev/null) if [[ -n $ahead && $ahead -gt 0 ]]; then if /usr/bin/git -C "$d" push origin main >>$LOG 2>&1; then echo "$(date '+%F %T') poussé $ahead commit(s): $d" >>$LOG else echo "$(date '+%F %T') ÉCHEC push ($ahead en attente): $d" >>$LOG fi fi done <$REPOS_FILE fi sleep 300 done