Skip to content

Latest commit

 

History

History
98 lines (73 loc) · 3.99 KB

File metadata and controls

98 lines (73 loc) · 3.99 KB

@AGENTS.md

GitWand — Vue d'ensemble

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

Architecture monorepo

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

Séparation des responsabilités

  • 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/core via workspace.
  • packages/cli et packages/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.).

Setup développement

# 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

Scripts importants

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

CI/CD

  • .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

Documentation contextuelle

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)

Points d'attention globaux

  • Lire AGENTS.md en premier (importé via @AGENTS.md en 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.md affine les règles pour son périmètre ; le lire avant de modifier le sous-répertoire correspondant.