Files
IdeA/.ideai/tickets/269/carnet.md

5.6 KiB

issueRef, version, updatedBy, updatedAt
issueRef version updatedBy updatedAt
#269 6
kind agent_id
agent a6c6ea12-bfc6-4bdc-8031-324102dfa34d
1788802262284

Topologie git locale (décision Git, 2026-09-07)

  • Base : develop @ 8d2be75 (inclut le merge cross-project #260/#267 — fondation MCP inter-projets du chantier — + chore gitignore backups AppImage .old-*).
  • Branches chantier (pattern #260) :
    • feature/269-backend → worktree .ideai/run/fe887179-933f-47d4-960f-c3b06827f86c/worktree (DevBackend, ticket #271).
    • feature/269-frontend → worktree .ideai/run/8f7da528-58df-4315-97e9-0562230ecc19/worktree (UX + DevFrontend, ticket #272). Si #272 reste agent-facing (doc only), branche supprimée sans merge.
  • QA (#273) : pas de branche dédiée ; tests exécutés sur feature/269-backend puis sur develop après merge.
  • Worktree principal : reste sur develop, contient l'état runtime .ideai/ vivant (tickets 269-273 non trackés, permissions). Ne pas stash, ne pas switcher.
  • Branches #260 (feature/260-backend/frontend/cross-project-agents) : fusionnées dans develop, conservées comme historique (convention repo). Worktrees nettoyés/retargetés.
  • Aucun push : develop reste en avance de 238+ commits sur origin ; rien ne sort sans validation utilisateur.
  • Fusion vers develop : uniquement par Git, après QA verte, en merge commit référençant #269/#271/#272.

Garde-fous devs

  • Travailler uniquement dans son worktree (checkout de sa branche déjà fait). Jamais de git add -A / git add . : scripts/ et l'état .ideai/ du worktree principal doivent rester hors commits de code.
  • Commits convention type(scope): ... — #27x. Pas de push, pas de merge, pas de rebase : à Git.

Submodule sdk/IdeaSDK dans les worktrees (fix QA #273, 2026-09-07)

git worktree add n'initialise pas les submodules, et d1c3c00 (gitlink develop) n'existe que localement (jamais poussé) → git submodule update --init échoue sur gitea. Préparation appliquée par Git sur les DEUX worktrees (backend + frontend), sans rien toucher d'autre :

WT=<worktree> ; MOD=$(git -C $WT rev-parse --git-path modules/sdk/IdeaSDK)
rm -rf "$MOD" $WT/sdk/IdeaSDK   # restes d'un clone échoué éventuels
git -C $WT \
  -c submodule.sdk/IdeaSDK.url=/home/anthony/Documents/Projects/IdeA/sdk/IdeaSDK \
  -c protocol.file.allow=always \
  submodule update --init --recursive sdk/IdeaSDK
  • Origine du submodule dans chaque worktree = chemin local du submodule principal (offline-safe). Config partagée du repo NON modifiée (reste gitea).
  • État vérifié : git submodule status --recursive → d1c3c00... sdk/IdeaSDK propre sur les deux worktrees ; fixture sdk/IdeaSDK/examples/hello-plugin présente.
  • Travail non commité DevBackend vérifié intact (13 fichiers modifiés + mcp/plugins.rs non suivi).
  • Test QA relancé par Git dans le worktree backend : cargo +stable test -p infrastructure --test plugin_install_load → 5 passed / 0 failed (dont les 2 hello-plugin rouges). QA peut reprendre l'exécution officielle.
  • Racine du blocage cargo en env agent : RUSTUP_HOME isolé sans default → utiliser cargo +stable (ou configurer le default).

Cadrage produit/architecture initial (2026-09-07)

Besoin livré par #269: permettre a un agent du projet A de demander a un projet/plugin B d'ajouter/modifier des tools, puis de recharger le plugin dans A sans relancer IdeA.

Verdict Architect: faisable. Le backend relit deja registry/manifest a la demande et le protocole idea-plugin://<pluginId>/current/<contentHash>/... evite le cache ESM si le hash change. Les blocages actuels sont le runtime plugin frontend charge une fois au mount et le catalogue MCP agent-facing statique.

Limite a annoncer/tester: IdeA peut garantir que le serveur, le registry et les prochains tools/list voient le nouvel etat. Elle ne peut pas forcer tous les CLIs/providers actifs a refaire leur introspection interne instantanement; selon provider, le tool peut etre visible au tour suivant ou apres reconnexion MCP interne, sans redemarrage IdeA.

Decision UX: pas de nouvelle surface humaine dediee en V1. Feedback dans la cellule/flux agent: reload en cours, succes, deja a jour, echec non bloquant avec anciens tools conserves.

Intégration locale (Git, 2026-09-07)

  • Commit branche : 805b1b4 sur feature/269-backend — 14 fichiers du chantier uniquement (add explicite, pas de .ideai, pas d'artefacts), 863 insertions / 32 suppressions, créé crates/infrastructure/src/orchestrator/mcp/plugins.rs.
  • Merge local : ad2c6b4 merge(plugins) --no-ff vers develop (réf. #269/#271/#272, QA verte #273). Aucune divergence pré-merge (base 8d2be75 = HEAD develop) → arbre develop == arbre branche, résultats QA transposables tels quels.
  • Frontend : #272 clos sans code → worktree 8f7da528…/worktree retiré (--force, requis car submodule), branche feature/269-frontend supprimée, git worktree prune fait. Résidus session (AGENTS.md, patch #210-212) laissés dans le run dir.
  • Backend : worktree fe887179…/worktree conservé sur feature/269-backend (historique + session DevBackend), submodule local propre.
  • Worktree principal : état runtime .ideai + scripts/ préservés à l'identique pendant le merge.
  • Statuts : #271 QA→closed par Git (v8). #269 parent laissé à Main (v4 au moment de l'intégration).
  • Rien poussé : develop avance localement uniquement.
  • Note : pas de rebuild AppImage dans ce cycle ; si validation live du hot reload est voulue, créer un ticket rebuild (comme #265 l'avait été pour #260).