82 lines
2.8 KiB
Markdown
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
|