@AGENTS.md
GitWand est un client Git desktop natif avec un moteur de résolution automatique de conflits Git et des features AI intégrées.
Stack technique : Tauri 2, Vue 3, Rust, TypeScript, pnpm monorepo
Versions actuelles :
| Package | Nom npm | Version |
|---|---|---|
apps/desktop |
@gitwand/desktop |
2.9.0 |
packages/core |
@gitwand/core |
2.9.0 |
packages/cli |
@gitwand/cli |
2.9.0 |
packages/mcp |
@gitwand/mcp |
2.9.0 |
packages/vscode |
gitwand-vscode |
1.2.0 |
GitWand/
├── apps/
│ └── desktop/ # App Tauri 2 + Vue 3
├── packages/
│ ├── core/ # Moteur TS résolution conflits
│ ├── cli/ # CLI Node.js @gitwand/cli
│ ├── mcp/ # Serveur MCP @gitwand/mcp
│ └── vscode/ # Extension VS Code
├── website/ # Docs VitePress
├── scripts/
│ └── bump-version.sh # Script de versioning
├── .github/workflows/ # CI/CD
└── AGENTS.md # Règles AI transverses
packages/core— moteur portable (browser/Node/Tauri), logique de résolution PURE. Aucune dépendance Node.js native : doit rester compatible browser.apps/desktop— UI Vue 3 + backend Rust Tauri. Consomme@gitwand/corevia workspace.packages/clietpackages/mcp— wrappers minces autour de@gitwand/core, pas de logique de résolution propre.packages/vscode— extension VS Code avec son propre lifecycle (activation events, contributes), utilise@gitwand/core.
Règle critique : ne jamais introduire de module Node.js dans packages/core (fs, path, child_process, etc.).
# Prérequis : Node 20+, pnpm 9+, Rust stable
pnpm install
# Dev frontend uniquement (sans Rust/Tauri)
cd apps/desktop && pnpm dev:web
# Dev app complète (avec Rust/Tauri, recompile le backend)
cd apps/desktop && pnpm dev
# Build tous les workspaces
pnpm build
# Tests tous les workspaces
pnpm test| Commande | Usage |
|---|---|
./scripts/bump-version.sh X.Y.Z |
Versioning coordonné monorepo — ne jamais éditer les versions à la main |
pnpm -r run build |
Build tous les workspaces |
pnpm -r run test |
Tests tous les workspaces |
cd apps/desktop && pnpm test:parity |
Tests de parité Rust ↔ JS |
.github/workflows/ci.yml— tests matrix Node 18/20/22.github/workflows/release.yml— release desktop (macOS universal, Ubuntu, Windows).github/workflows/publish.yml— publication npm (@gitwand/core,@gitwand/cli,@gitwand/mcp).github/workflows/deploy-website.yml— déploiement docs VitePress
Chaque sous-répertoire possède son propre CLAUDE.md avec des règles spécifiques à son périmètre :
apps/desktop/CLAUDE.md— App Tauri complète (scripts, config Tauri, binaires)apps/desktop/src/CLAUDE.md— Frontend Vue 3 (composants, stores, routing)apps/desktop/src-tauri/CLAUDE.md— Backend Rust (commandes Tauri, binaires, Cargo.toml)packages/core/CLAUDE.md— Moteur de résolution (contrainte browser, algorithmes)packages/cli/CLAUDE.md— CLI (commandes yargs, exit codes, stdin/stdout)packages/mcp/CLAUDE.md— Serveur MCP (outils MCP, protocole, transport stdio)packages/vscode/CLAUDE.md— Extension VS Code (activation, contributes, VSIX)
- Lire
AGENTS.mden premier (importé via@AGENTS.mden tête de ce fichier) — il contient les règles de sécurité et conventions critiques transverses. - Ne jamais éditer les versions manuellement — utiliser
./scripts/bump-version.sh X.Y.Z. packages/core= zéro Node.js — vérifier avant tout ajout de dépendance.- Chaque sous-
CLAUDE.mdaffine les règles pour son périmètre ; le lire avant de modifier le sous-répertoire correspondant.