This commit is contained in:
2025-12-24 22:52:46 +01:00
parent 4e1c06874c
commit 5ee00cc8c1
151 changed files with 3548 additions and 1 deletions

189
upgrade_1.md Normal file
View File

@@ -0,0 +1,189 @@
# upgrade_1.md
## Extension GNOME Shell : Icône dans la barre + Popup configurable + YAML
Ce document définit les nouvelles directives pour faire évoluer lapplication actuelle vers une intégration complète dans GNOME Shell.
---
# 1. Objectif général
Lapplication doit désormais inclure **une extension GNOME Shell** qui :
1. Ajoute **une icône dans la barre supérieure** (Top Bar).
2. Ouvre, au clic sur cette icône, **une fenêtre popup dédiée** affichant un tableau interactif déquipements et de services.
3. Génère ce tableau **à partir dun fichier YAML**, permettant de modifier les équipements sans toucher au code.
4. Gère louverture dURL (SSH, HTTP, HTTPS…) associées à chaque service.
Ce fichier décrit également le **processus à suivre pour Claude Code** afin danalyser, proposer, puis implémenter les fonctionnalités.
---
# 2. Nouvelle architecture fonctionnelle
## 2.1 Extension GNOME Shell : icône dans la barre supérieure
Lextension doit :
- Ajouter une **icône** dans le panel, visible en permanence.
- Au clic, afficher un **popup** ou un **panneau flottant** contenant la liste des équipements.
- Le popup doit pouvoir être **fermé**, soit via un second clic sur licône, soit par toute action prévue par GNOME Shell.
### Contenu du popup
Le popup devra afficher :
- Une liste d**équipements** (PC, serveurs, VM…)
- Pour chaque équipement :
- Un label (nom)
- Une liste de **services** associés
- Pour chaque service :
- une icône
- un nom
- une URL à ouvrir
---
# 3. Fichier de configuration YAML
Créer le fichier :
```
config/equipements.yaml
```
Structure attendue :
```yaml
equipements:
- nom: "PC Bureau"
ip: "10.0.0.24"
services:
- nom: "SSH"
icon: "terminal"
url: "ssh://gilles@10.0.0.24"
- nom: "Interface Web"
icon: "web-browser"
url: "http://10.0.0.24:8080"
- nom: "Serveur Proxmox"
ip: "10.0.0.10"
services:
- nom: "SSH"
icon: "terminal"
url: "ssh://root@10.0.0.10"
- nom: "Proxmox UI"
icon: "server"
url: "https://10.0.0.10:8006"
```
Notes :
- Un équipement peut contenir plusieurs services.
- Chaque service doit afficher une icône.
- Tous les champs doivent être extensibles (ajouter plus dattributs dans le futur si besoin).
---
# 4. Contraintes techniques GNOME Shell
Il est important de tenir compte des restrictions :
- **WebKitGTK est interdite dans les extensions GNOME Shell**.
Impossible dintégrer du vrai HTML directement.
Donc le popup devra être :
- soit un **ensemble de widgets St.*** créés depuis le YAML,
- soit une **fenêtre externe GTK** (possible via un script ou app séparée).
Lanalyse devra tenir compte de ces contraintes.
---
# 5. Analyse obligatoire avant développement (Claude)
Claude doit impérativement produire une **analyse complète** avant toute modification du projet.
## 5.1 Ce que Claude doit analyser
Claude doit étudier plusieurs architectures possibles, notamment :
### **A : Popup GNOME Shell natif (widgets St)**
- Parsing YAML dans lextension.
- Construction dinterfaces entièrement via St.BoxLayout / St.Icon / St.Button.
### **B : Extension + application GTK externe (WebKit)**
- Lextension déclenche une application GTK qui affiche du vrai HTML.
### **C : Extension GNOME Shell + navigateur en mode app**
- Lextension ouvre une fenêtre Chromium/Webkit en mode application.
### **D : Serveur local + widgets GNOME Shell générés depuis un JSON/YAML**
- Génération HTML ou JSON via fichier local.
Pour chaque solution, Claude doit fournir :
- avantages,
- inconvénients,
- complexité,
- compatibilité,
- performances,
- ergonomie.
### Il doit produire :
- un **tableau comparatif**,
- une **recommandation ordonnée**.
**Aucun code ne doit être généré avant mon choix explicite.**
---
# 6. Protocole de travail imposé à Claude Code
### **`UPGRADE:1 ANALYSE`**
Claude réalise :
- analyse complète,
- comparaison des options,
- pas de code.
### **`UPGRADE:1 CHOIX <A/B/C/...>`**
Je choisis larchitecture souhaitée.
Claude :
- confirme limpact,
- annonce quels fichiers seront créés ou modifiés,
- pas encore de code.
### **`UPGRADE:1 APPLY`**
Claude applique :
- création et mise à jour des fichiers,
- ajout de lextension GNOME Shell,
- parser YAML,
- popup dynamique,
- URLs fonctionnelles.
### **`UPGRADE:1 DOC`**
Claude met à jour la documentation utilisateur.
---
# 7. Résultat attendu
À la fin de cette évolution :
- Une **icône** apparaît dans la barre GNOME.
- Un **popup dynamique** souvre avec la liste des équipements.
- Le contenu du popup provient du fichier **YAML**.
- Les clics déclenchent louverture des URLs.
- Lextension est propre, documentée, testable.
---
# 8. Résumé
Ce fichier sert de **référence officielle** pour diriger lanalyse et le développement par Claude Code :
- Analyse → Choix → Implémentation → Documentation.
- Aucun code avant `UPGRADE:1 APPLY`.