Requalification Architect du 2026-08-01: le crash INTERFACE INTERROMPUE au chargement d'un plugin (menu + item) remonte via ProjectsView -> usePluginMenus -> MenuBar jusqu'à RootErrorBoundary, quel que soit le plugin (ancien ou reconstruit via SDK). - usePluginMenus isole la résolution/conversion des contributions plugin : toute erreur retombe sur [] au lieu de propager. - ProjectsView sépare les menus natifs des menus enrichis par plugin et rend MenuBar derrière une error boundary locale (fallback menus natifs seuls). - hello-plugin (SDK) et les tests d'installation associés durcis en cohérence. Bookkeeping ticket #120 uniquement (issue.md, carnet.md) ; les fichiers counter.json/index.json et le dossier tickets/122/ restent hors commit car une collision de numérotation #122 existe entre cette base et feature/ticket120-hello-plugin-install-path-audit (deux tickets différents revendiquent #122) — à arbitrer avant de committer le bookkeeping global. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
32 lines
1.1 KiB
Markdown
32 lines
1.1 KiB
Markdown
# Hello Plugin
|
|
|
|
Installable IdeA plugin example rebuilt from the public SDK types.
|
|
|
|
It exercises the current plugin primitives end to end:
|
|
|
|
- top-level menu: `Hello Plugin`;
|
|
- menu entry: `hello-plugin`;
|
|
- command: `hello-plugin`, returning `hello-world`;
|
|
- layout contribution: `hello-plugin.hello-world`, rendered as `hello-world`.
|
|
|
|
```sh
|
|
npm run typecheck:examples
|
|
npm run package:hello-plugin
|
|
```
|
|
|
|
The installable archive is emitted at `examples/hello-plugin/build/hello-plugin-0.1.0.zip`.
|
|
It contains `idea-plugin.json` at the ZIP root and the compiled ESM entrypoint at
|
|
`dist/index.js`, matching the manifest `main` field.
|
|
|
|
## Diagnostics
|
|
|
|
During activation the plugin logs:
|
|
|
|
- whether the command and layout runtime registries are available;
|
|
- successful registration of the `hello-plugin` command;
|
|
- successful registration of the `hello-plugin.hello-world` layout;
|
|
- the first layout render, including project/node identifiers.
|
|
|
|
These messages are intentionally small and stable so installation, bundle import, activation and
|
|
layout rendering failures can be separated quickly in IdeA logs/devtools.
|