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

2.8 KiB

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