fix(dry-run): ne pas modifier les états persistants sans contrat explicite #19
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Constat
Le projet annonce un dry-run « sans écriture » : README, TODO et guide d'exploitation emploient cette formulation. Or le pipeline crée ses états de source normalement avant d'arriver aux sorties CalDAV/XMPP.
Deux écritures persistantes restent donc possibles pendant une simulation :
BlogRSSStateenregistre les GUID et validateurs HTTP lors defetch_blog_step();qr_tokenenregistre les credentials exportés après une connexion réussie.Le premier cas peut faire disparaître des articles d'une exécution réelle suivante ; le second modifie l'état d'authentification alors que l'opérateur pense exécuter une simple simulation. La règle actuelle d'AGENTS (« aucune écriture CalDAV/XMPP ») est plus étroite que la promesse générale de la CLI, ce qui laisse le comportement ambigu.
Proposition
Choisir puis documenter l'un des contrats suivants :
Pour le flux QR/token, préciser la stratégie lorsque l'authentification elle-même implique une rotation côté fournisseur : il peut être préférable de déclarer ce mode incompatible avec une simulation stricte plutôt que de créer un état local incohérent.
Critères d'acceptation
--dry-runest unique dans la CLI, TODO, guide d'exploitation et tests..blog_rss_state.json, ni.pronote_auth_state.json.Périmètre
Contrat dry-run, orchestration des états de sources et documentation ; le comportement CalDAV/XMPP existant reste à préserver.