Repository navigation
feat(picker,#18203): geste 5 -- brancher le journal des tirages dans main() - #20092
Conversation
…main() Trois points de consigne (reparation, tapis, volee ponderee) via le helper best-effort _log_tirage_safe : un defaut de journal n'arrete jamais un tirage, et la consigne est inerte sous pytest sans TIRAGE_JOURNAL_PATH (meme commutateur que le cache et la sonde delivered). Module scripts/coordination/tirage_journal.py (merge #19945), API log_tirage verrouillee fichier interprocessus. Une invocation = une entree. Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
|
Smoke live end-to-end (post-push, tete
{"candidates": [10355, 14620, 17799, 16741], "draw_id": "dbf89ddea8ed", "extras": null, "lane": "myia-po-2024:CoursIA-2", "mode": "belt", "retained": 10355, "ts": "2026-10-09T13:27:53Z", "urn": "belt"}Trois contrats tenus sur donnees reelles :
Lecture brute : [lane myia-po-2024:CoursIA-2] |
|
No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml). Detector: |
Path-collision (organ #13359/#13615)Cette PR #20092 (
Le verdict terminal (#15578) signale qu'un cote de la paire est deja sur |
|
[ADJOINT PREFLIGHT] Re-stamp (repli secretariat, dispatch ai01-c2139-restamp-po2027c2) : le dossier precedent etait pose par la lane po-2026:CoursIA-3 (machine materiellement morte depuis le 10/10) ; re-stamp a la meme tete exacte |
Grain: MED/tooling -- lane myia-po-2024:CoursIA-2 -- prev: MED/guard #20089
Ce que fait cette PR
Geste 5 de #18203 : brancher le journal des tirages (module
scripts/coordination/tirage_journal.py, merge #19945) dansmain()dupicker. L'angle mort que le geste ferme : « Proposée puis écartée ne se
mesure pas » -- chaque tirage laisse désormais une trace JSONL append-only
(lane, candidats, grain retenu, mode), sous verrou fichier interprocessus.
Trois points de consigne, une invocation = une entree :
repair--beltbeltweightedHelper
_log_tirage_safe-- best-effort par construction :JAMAIS un tirage : une ligne stderr, le grain est rendu ;
TIRAGE_JOURNAL_PATH(meme commutateurd'environnement que le cache et la sonde delivered) : un test unitaire
n'ecrit pas dans le state dir machine ;
(journal de tirage : draw_id=... mode=...)),jamais sur stdout -- le contrat
--jsonreste du JSON pur.Preuve
scripts/tests/test_pick_idle_grain_journal.py) :les 3 chemins de
main()bout en bout (fixtures reseau hermetiques,doctrine fix(picker,#19907): 3e surface de livraison (PR MERGEE <90j citant #N) #19913), le best-effort (defaillance avalee + stderr), l'inertie
pytest, le module absent, et une invocation belt avec garde rouge = UNE
entree.
journal 9), plus les 14 de la suite du module
tirage_journal(Add(coordination,#18203): journal des tirages du picker (geste 5, module + tests) #19945,non touchee).
silencieusement illisible par
blocking_causes-- le garde rouge nedeclenche pas et le test sort sur le reseau reel (mesure : 42 s -> 0,4 s
une fois la forme imbriquee
commits.nodes[].commit.statusCheckRolluprestauree). Consigne dans la docstring de
_state_red.Coordination (chemins croises)
PRs ouvertes touchant
scripts/pick_idle_grain.pyau moment du claim :settle_belt_headen bulk GraphQL : regionsdisjointes (mes insertions sont dans
main(): blocs repair/belt/weighted) ;--board-write/--board-export: idem,main()argparse/sortie -- chevauchement possible, coordination via ce body ;
test_pick_idle_grain.py:non touche ici ; fichier de tests nouveau et separe pour eviter tout
rebase croise.
Perimetre
Deux sources : le picker (import, helper, trois appels) et le nouveau
fichier de tests. Aucun changement de comportement du tirage lui-meme ;
aucun carnet touche.
See #18203
🤖 Generated with Claude Code