feat(hermes-auto-improve): passe quotidienne complète à 22h (tous les docs)

- Ajout systemd timer hermes-auto-improve-daily.timer (22h00, Persistent=true)
- Service oneshot : --all puis --daily-pr (TimeoutSec=7200 pour 28 fichiers)
- auto-improve.py : flag --all qui bypass MAX_FILES et traite tout admin/
- trigger-server.py : timeout 600s → 7200s pour les runs --all via HTTP

La rotation par batch (MAX_FILES=5) reste active pour les triggers n8n
à la demande. Le workflow n8n 30-min doit être désactivé manuellement.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Alkatrazz 2026-06-10 13:38:40 +02:00
parent 3780c90804
commit 7d02efd9fa
6 changed files with 60 additions and 7 deletions

View file

@ -213,6 +213,7 @@ def main():
parser = argparse.ArgumentParser()
parser.add_argument("--daily-pr", action="store_true", help="Créer PR GitHub + résumé journalier")
parser.add_argument("--dry-run", action="store_true", help="Analyser sans écrire ni push")
parser.add_argument("--all", action="store_true", help="Analyser tous les fichiers en une passe (ignore MAX_FILES)")
parser.add_argument("--subdir", default=None, help="Sous-dossier admin/ (ex: ia, k8s)")
args = parser.parse_args()
@ -254,13 +255,16 @@ def main():
if "hermes/builtin" not in str(f) # ne pas analyser ses propres rapports
]
# Rotation : reprend là où il s'est arrêté
todo = [f for f in all_md if str(f) not in state["processed"]]
if not todo:
if args.all:
batch = all_md
state["processed"] = []
todo = all_md
batch = todo[:MAX_FILES]
else:
# Rotation : reprend là où il s'est arrêté
todo = [f for f in all_md if str(f) not in state["processed"]]
if not todo:
state["processed"] = []
todo = all_md
batch = todo[:MAX_FILES]
results = []
# ── Analyse ───────────────────────────────────────────────────