5.6 KiB
issueRef, version, updatedBy, updatedAt
| issueRef | version | updatedBy | updatedAt | ||||
|---|---|---|---|---|---|---|---|
| #269 | 6 |
|
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-backendpuis 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/IdeaSDKpropre sur les deux worktrees ; fixturesdk/IdeaSDK/examples/hello-pluginprésente. - Travail non commité DevBackend vérifié intact (13 fichiers modifiés +
mcp/plugins.rsnon 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 2hello-pluginrouges). QA peut reprendre l'exécution officielle. - Racine du blocage cargo en env agent :
RUSTUP_HOMEisolé sans default → utilisercargo +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 :
805b1b4surfeature/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 :
ad2c6b4merge(plugins)--no-ffversdevelop(réf. #269/#271/#272, QA verte #273). Aucune divergence pré-merge (base8d2be75= HEAD develop) → arbre develop == arbre branche, résultats QA transposables tels quels. - Frontend : #272 clos sans code → worktree
8f7da528…/worktreeretiré (--force, requis car submodule), branchefeature/269-frontendsupprimée,git worktree prunefait. Résidus session (AGENTS.md, patch #210-212) laissés dans le run dir. - Backend : worktree
fe887179…/worktreeconservé surfeature/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).