feat(plugins): SpearCode livré éteint — plugin optionnel activable par user #30
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/spearcode-optional"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
SpearCode devient un plugin optionnel (décision Kevin 20-07)
Peu d'utilisateurs en ont l'usage et la cible est PME-first : SpearCode est désormais livré éteint — masqué par défaut sur les nouvelles instances et pour les nouveaux comptes, activable en un clic dans Réglages → Plugins.
Les 3 pièces
code→enabled_by_default: false(backend + miroir front, version 2.15.0).main.py). Le flag devient un pur défaut d'UX per-user (overrideUserPluginSetting) et n'est plus un gate de chargement — sans ce changement, un plugin livré éteint ne montait jamais ses routes : le/togglerenvoyait 404 et l'activation aurait exigé un reboot. Aucun changement pour les 13 autres plugins (toustrue), et la sécu des routes reste portée par l'auth + RBACmodule:<plugin>.0016de préservation : seed un overrideenabled=truepour chaque utilisateur existant sans overridecode— l'instance de Kevin ne voit aucun changement. Idempotente, n'écrase jamais un choix explicite ; sur une instance fraîche (0 user au moment duupgrade head), rien n'est semé → le nouveau défaut s'applique.Tests
4 nouveaux (
test_plugin_optional.py) : flip du manifest + non-core_required(sinon toggle refusé), miroir back/front synchrone, loader qui parse le flag, et garde anti-régression sur le gate de boot. Suite complète locale : 894 passed, mêmes 9+2 échecs préexistants que main (Postgres-dépendants, verts en CI).🤖 Generated with Claude Code
https://claude.ai/code/session_01F5SST5qru4jYV2NoCwPBu6