Skip to content

Feat: outils MCP workspace Eclipse, bm-eclipse-doctor 2.1, skills et docs - #6

Open
psouquet wants to merge 2 commits into
mainfrom
feature/eclipse-workspace-sync
Open

Feat: outils MCP workspace Eclipse, bm-eclipse-doctor 2.1, skills et docs#6
psouquet wants to merge 2 commits into
mainfrom
feature/eclipse-workspace-sync

Conversation

@psouquet

@psouquet psouquet commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Ajoute ce qu'il faut pour pouvoir :

  • Synchroniser les projet d'éclipse dans le workspace (ajouter supprimer pour aligner avec le rep local)
  • Organiser les working set, créé/supprime et déplace les projet dans des working set (avec popup de validation paramétrable):
    • 2 niveau : open/parent, open/ui
    • 3 niveau : open/parent/imap, open/ui/closures
    • hybride : open/parent/imap, open/ui + open/parent/~misc (2 niveau + open/parent à 3 niveau; < 5 projet groupé dans open/parent/~misc)
  • eclipse-doctor: meta-script qui appele plusieurs sous script et call mcp pour essayer de régler rapidement les pbs courant d'éclipse (projet a ouvrir, à refresh, /generated, etc). J'ai fait quelques itérations dessus, ca a l'air de pas trop mal marcher, il peut etre invoqué en demandant de produire un rapport que vous pouvez me transmettre pour améliorer.

Tools MCP (net.bluemind.devtools) : sync_projects, list_projects, workspace_info, sync_working_sets, apply_workspace_batch (open/import/refresh/clean/delete en un seul IWorkspace.run + un seul build), remove_projects (coquilles non suivies par git, tout ou rien, exception documentee a deleteContent=false), doctor_snapshot (agrege workspace_info + get_problems + list_projects + get_bundle_state + unresolvedTypes), get_bundle_state, doctor_status, locate_type. Toute mutation passe par un gate de consentement (workspace.consent.*) et ne touche jamais le contenu disque hors l'exception remove_projects. Marqueurs JDT lus par problemId/problemKind/unresolvedName (IProblem/ARGUMENTS), jamais par le texte du message.

bm-eclipse-doctor : classe chaque projet en erreur par un fait du snapshot, pas par le symptome — metadataInvisible, ferme, absent du workspace, dossier source manquant, type introuvable (jdt-visible/disk-only/nowhere via TypeLocator), Import-Package resolu par l'index Export-Package, coquille non suivie par git. --apply boucle jusqu'au point fixe (4 passes max), un seul build par passe (Maven avant le batch, -am optionnel avec retry), memoire des no-effect, verdict progressed par identite de noms, garde clean sans modele PDE, open borne a 10 bundles transitifs (--open-wide), handoff publie sur le plan final, rattachement par nom, cohorte figee a l'entree de passe (revealed=/blind=/regressed). Codegen GWT et codegen orphelin detectes par emplacement + fraicheur, jamais par le nom du type.

Scripts .claude/scripts/eclipse (status, problems, projects, sync, call, classpath-check, rebuild-module) en wrappers unitaires sur ces tools.

Docs : CLAUDE_CODE_MCP.md §6 (reference des tools), SKILL.md eclipse-doctor / eclipse-sync, CLAUDE.md (un rebuild du plugin n'est pas un obstacle), README. docs/DEV-NOTES.md (contraintes de conception, invariants de surete, limites connues) volontairement pas versionne pour cette PR : gardees hors repo le temps de finir l'iteration, a rapatrier ou non apres retour des collegues.

Verifie : filet de tests a sec sur classify/report_outcomes/type_facts/ dependency_fact, verifications manuelles contre un Eclipse reel (batch-error, gain -am, seuil d'ouverture, index Export-Package, garde remove_projects), et smoke-test du plugin reinstalle (contrat de tools intact, aucune erreur).

@psouquet
psouquet requested a review from alexandreprl July 30, 2026 14:36
Comment thread net.bluemind.devtools/src/net/bluemind/devtools/testrunner/mcp/BmMcpTools.java Outdated
@psouquet
psouquet force-pushed the feature/eclipse-workspace-sync branch from bc4a359 to 6e79e60 Compare August 6, 2026 20:15
…ipse-doctor 2.1

Serveur MCP côté plugin (BmMcpTools) et scripts bm-eclipse-* côté repo pour
synchroniser le workspace Eclipse avec le disque, gérer l'ouverture/fermeture
de projets (par nom, groupement gwt/closure, ou focus sur un bundle) et
réparer mécaniquement les erreurs de compilation courantes (bundles fermés,
projets non importés, métadonnées PDE, codegen manquant, état périmé).

Vocabulaire canonique sync/orga/repair/prepare documenté dans les skills
eclipse-sync et eclipse-doctor, README et CLAUDE_CODE_MCP.md alignés,
ONBOARDING.md ajouté pour la prise en main.
@psouquet
psouquet force-pushed the feature/eclipse-workspace-sync branch from 71b53e2 to 035a7d2 Compare August 15, 2026 16:08
@psouquet
psouquet requested a review from tcataldo August 17, 2026 20:43
…à Require-Bundle) ; ajoute check_pom_sync

plan_focus protège désormais net.bluemind.tests.feature (universelle, tout lancement de test
MCP) et les eclipse-feature déclarées dans le pom.xml de chaque seed (ex.
net.bluemind.exchange.mapi.feature) - une feature PDE n'est pas un bundle, la clôture
Require-Bundle ne peut structurellement pas la voir. Incident du 01/09 : focus sur des projets
de test mapi ayant fermé les deux, faisant passer un effet de bord pour une vraie régression
(No connection factory found for dbtype PGSQL).

« ouvre X » nu redevient --open simple (pas --focus) par défaut dans eclipse-sync - même
incident, ouvrir sans qualifier n'a plus de raison de fermer le reste du workspace.

check_pom_sync (nouveau tool MCP) expose en lecture seule la même comparaison que le menu
BlueMind > Check POM Sync..., pour distinguer un test qui échoue à cause d'un désync JVM
args/target platform d'une vraie régression - ajouté au réflexe de diagnostic d'eclipse-doctor.
@alexandreprl
alexandreprl self-requested a review September 4, 2026 14:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants