MagicCode/COMMIT_MESSAGE.md
2026-10-12 00:41:17 +02:00

82 lines
2.8 KiB
Markdown

# Commit Message - Implémentation de la commande shell `!`
## 🎯 Feature: Ajout de la commande shell `!` dans ClaudeCode
### Description
Implémentation complète de la fonctionnalité permettant d'exécuter des commandes shell directement dans les prompts et les commandes markdown via la syntaxe `!`.
### Fonctionnalités ajoutées
- Exécution de commandes shell inline avec `!commande` ou `!`commande args``
- Support dans les prompts directs de l'utilisateur
- Support dans les fichiers `.claude/commands/**/*.md`
- Exécution parallèle de multiples commandes
- Gestion robuste des erreurs et timeouts
- Intégration avec les variables d'environnement de settings.json
### Changements techniques
#### Nouveaux fichiers
- `packages/ext-claudecode/src/shell-commands.ts` - Module principal
- `packages/ext-claudecode/src/shell-commands.test.ts` - Tests (11 tests)
- `packages/ext-claudecode/SHELL_COMMANDS.md` - Documentation utilisateur
- `.claude/commands/sysinfo.md` - Exemple de commande
#### Modifications
- `packages/core/src/types.ts` - SlashCommand.prompt() async
- `packages/cli/src/index.ts` - Intégration de l'expansion shell
- `packages/ext-claudecode/src/commands.ts` - Support async avec renderCommandAsync()
- `packages/ext-claudecode/src/mode.ts` - Passage des options cwd/env
- `packages/ext-claudecode/src/index.ts` - Exports des fonctions shell
- `packages/ext-claudecode/src/lot2.test.ts` - Test async
### Tests
- ✅ 11 nouveaux tests unitaires (100% passing)
- ✅ Tous les tests existants passent (84/84)
- ✅ TypeCheck OK sur tous les packages
- ✅ Build réussi
### Breaking Changes
**Mineur** : `SlashCommand.prompt()` retourne maintenant `string | Promise<string>`
- Impact minimal : rétrocompatible avec les commandes synchrones
- Migration : ajouter `await` pour les appels de `command.prompt()`
### Documentation
- Guide utilisateur complet dans SHELL_COMMANDS.md
- README.md mis à jour avec nouvelle section
- 7 fichiers de documentation technique créés
- Aide CLI mise à jour
### Exemples d'utilisation
```
# Prompt direct
Utilisateur actuel : !whoami
Fichiers du projet : !`ls -la`
# Commande personnalisée (.claude/commands/status.md)
État Git : !`git status --short`
Derniers commits : !`git log --oneline -5`
# Utilisation
/status
```
### Sécurité
- Timeout 30s par commande
- Buffer limité à 10 MB
- Gestion d'erreurs complète
- Variables d'environnement contrôlées
- Note : Exécution dans shell système (pas de sandbox complet)
### Références
- Issue: Implémentation de la commande `!` (lot 2+)
- Documentation: README_IMPLEMENTATION.md pour index complet
- Tests: TEST_SHELL_COMMANDS.md pour validation manuelle
---
**Type**: feature
**Scope**: ext-claudecode
**Status**: ✅ Prêt pour production
Co-authored-by: MagicCode AI Assistant