config set : écriture + rejet des clés inconnues testés
alias : add/list/remove + cible inconnue refusée testés
déduplication testée
open : résolution de cible testée (pas de spawn en test)
suite complète : 157 tests verts
## 🎯 Objectif
Les quick wins de la phase 0, en une PR.
closes #9
closes #10
closes #11
closes #12
closes #13
closes #16
Note : #14 (doctor --json) et #15 (version --json) étaient déjà livrés dans le code existant — ils seront clôturés séparément.
## 📦 Contenu
- am logs <agent> --lines N --follow : tail UTF-8 sûr du log de l'agent
- am list --running · --sort name,version,status
- am config set <clé.pointée> <valeur> : écriture atomique + validation du schéma (booléens/entiers typés)
- am alias add/remove/list : alias persistés dans la config utilisateur, cible validée
- Déduplication des répétitions consécutives lors de la migration de history.txt
- am open <agent> : ouvre le répertoire d'installation (explorer/open/xdg-open)
- REPL : parseur manuel, complétion Tab et aide pour toutes ces commandes
## ✅ Critères d'acceptation
- [x] logs : chemin résolu + lecture testés ; erreur claire sans log
- [x] list : tris + filtre --running testés
- [x] config set : écriture + rejet des clés inconnues testés
- [x] alias : add/list/remove + cible inconnue refusée testés
- [x] déduplication testée
- [x] open : résolution de cible testée (pas de spawn en test)
- [x] suite complète : 157 tests verts
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
🎯 Objectif
Les quick wins de la phase 0, en une PR.
closes #9
closes #10
closes #11
closes #12
closes #13
closes #16
Note : #14 (doctor --json) et #15 (version --json) étaient déjà livrés dans le code existant — ils seront clôturés séparément.
📦 Contenu
✅ Critères d'acceptation