Repository navigation
feat(tooling,#8889): passe de rattrapage LLM des archives RooSync sans résumé (--summarize) - #19049
Conversation
…s resume (--summarize) Etend l'organe #17261 : mode --summarize borne (limit/days, plus recentes d'abord), endpoint OpenAI-compatible (vLLM par defaut, teste sur Ollama qwen2.5:7b), bloc resume insere avant les messages verbatim, bascule llmGenerated/fallbackTruncation + provenance backfilledAt/backfillModel, arret au premier echec LLM (exit 2/1), --dry-run sans ecriture. 7 tests nouveaux (19/19 verts) ; passe live 6/6 sur stock reel GDrive : 496 -> 490. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml). Detector: |
|
[ADJOINT PREFLIGHT] Substance (ai-01:CoursIA-2, 2026-10-04) :
|
|
Cette PR depasse le seuil de couverture review (par defaut 300 additions) et n'a recu aucune review -- ni bot, ni humaine. Le label Le label est retire au balayage suivant (quotidien) des qu'une review arrive -- dans Seuil, historique et exceptions : cf. |
Grain: MED/tooling -- lane myia-po-2027:CoursIA -- prev: LIGHT/notebook-python #18986
Summary
Ferme le critère d'acceptation restant de #8889 : la passe de rattrapage LLM elle-même (critère 2 du body), sur l'organe de détection déjà mergé en #17261. Nouveau mode
--summarizedansscripts/roosync_archive_backfill.py(extension de l'organe existant plutôt que fichier neuf — règle « mettre à jour plutôt que créer ») :*-fallback.mdde la fenêtre (plus récentes d'abord,--limit/--days, défauts 10/30 jours conformes aux bornes du body), demande un résumé à un endpoint OpenAI-compatible (--base-url/--model, défaut = condenseur vLLM:5002 du body ; testé ici sur Ollamaqwen2.5:7b-instruct-q4_K_M) ;## Résumé (backfill) des N messages archivésavant le premier séparateur---du corps, avec ligne de provenance (backfilledAt,backfillModel) ;llmGenerated: false → trueetfallbackTruncation: true → false;--dry-run: candidates sans appel LLM ni écriture.Acceptance #8889, critère par critère
detect_fallback_archives)llmGenerated: true+ contenu intact, seul le bloc résumé ajoutétest_summarize_flips_flags_and_inserts_block.assert la région messages verbatim byte-identique avant/aprèstest_summarize_idempotent_second_pass_noop) + garde in-file sur le marqueur de blocappendTests
python -m pytest scripts/tests/test_roosync_archive_backfill.py -q→ 19 passed (12 existants intacts + 7 nouveaux : flags/bloc/verbatim, idempotence, exit 2 injoignable, arrêt mi-passe exit 1, fenêtre jours, dry-run sans LLM ni écriture, corps sans séparateur).Passe live (stock réel, GDrive partagé)
Mesure au 2026-10-04T02:29Z (GDrive partagé, fenêtre
--days 30) :--limit 6sur Ollama local : 6/6 OK — résumés de 1637 à 2139 caractères (Argumentum ×2, Maintenance, CoursIA-2 ×2, 2025-Epita-IS), frontmatter basculé + provenancebackfilledAt/backfillModelsur chaque fichier (exemple vérifié sur disque :workspace-Maintenance-2026-10-03T10-54-02-fallback.md).Le stock restant (490) se résorbe par relances de l'organe mergé (borne conseillée 10/passe) ; note opérationnelle : les archives d'octobre portent
fallbackError: qwen3.8-flash / glm-4.7 budget-exhausted— la pile condenseur a évolué depuis le body de l'issue ; les flags--base-url/--modelcouvrent tout endpoint OpenAI-compatible, le défaut reste celui documenté dans #8889.Verdict SOTA
SOTA-OK — vrai LLM local (Ollama
qwen2.5:7b-instruct-q4_K_M, 32k ctx) pour la passe live ; le défaut CLI reste le condenseur canonique du body (vLLM:5002, injoignable sur cette lane au moment de la passe — l'organe est endpoint-agnostique par design). Aucune sortie fabriquée : chaque résumé écrit vient d'une complétion réelle.Hors scope (inchangé)
Stabilisation vLLM (watchdogs dédiés), dashboard vivant, format d'archive existant.
Closes #8889
🤖 Generated with Claude Code