Files
ssh-web-launcher/upgrade_1.md
2025-12-24 22:52:46 +01:00

190 lines
5.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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`.