5.7 KiB
5.7 KiB
issueRef, version, updatedBy, updatedAt
| issueRef | version | updatedBy | updatedAt | ||||
|---|---|---|---|---|---|---|---|
| #222 | 4 |
|
1786974344024 |
Triage 2026-08-17
- Symptôme rapporté: le script de redémarrage d'IdeA lancé en SSH affiche un succès, mais IdeA ne redémarre pas visiblement.
- Reproduction locale statique:
- commande:
bash scripts/restart-idea-over-ssh.sh --dry-run /home/anthony/Documents/Projects/IdeA/IdeA_0.3.0_amd64.AppImage - sortie clé:
Detected running IdeA pid: 1etDetected graphical session pid: 1
- commande:
- Diagnostic initial Main:
- la détection
find_running_idea_pid()repose surpgrep -f 'IdeA|AppImage', ce qui peut matcher le shell/script appelant car sa ligne de commande contient le chemin de l'AppImage; - le dry-run montre effectivement une fausse détection sur
pid 1, incompatible avec un vrai process IdeA utilisateur; - conséquence probable: le script conclut sur un faux positif de détection au lieu de vérifier l'instance réelle.
- la détection
- Flux demandé:
- Architect: cadrer le correctif minimal et les garde-fous de détection;
- Git: décider la branche locale;
- DevBackend: corriger le script shell;
- QA: prouver la correction par commandes réelles.
Architect
- Cause racine retenue: détection trop floue et premier match accepté, via heuristiques
pgrep -f 'IdeA|AppImage'capables de matcher le script lui-même, un parent, ou un process générique. - Cadrage de fix: valider strictement le PID IdeA contre le chemin AppImage cible, séparer la détection de session graphique, interdire
pid 1,$$et les ancêtres, et échouer explicitement en cas d'ambiguïté.
Git
- Topologie recommandée: branche
fix/ticket-222-restart-idea-over-sshdepuisdevelop. - Réserve Git: le worktree courant est sale et la branche active
qa/functional-coverage-suiten'est pas une bonne base pour ce correctif.
DevBackend
- Correctif livré dans
scripts/restart-idea-over-ssh.shuniquement. - Changements clés:
- exclusion de
pid 1,$$et des ancêtres du script; - validation stricte d'un process IdeA par
/proc/<pid>/exeetcmdlineliés à l'AppImage cible; - détection de session graphique limitée à des process de session connus avec variables d'environnement graphiques et DBus cohérentes;
- échec explicite en cas de pluralité de candidats ou d'absence de session graphique exploitable.
- exclusion de
- Vérifications DevBackend:
bash -n /home/anthony/Documents/Projects/IdeA/scripts/restart-idea-over-ssh.shbash /home/anthony/Documents/Projects/IdeA/scripts/restart-idea-over-ssh.sh --dry-run /home/anthony/Documents/Projects/IdeA/IdeA_0.3.0_amd64.AppImage
- Résultat utile post-fix:
Detected running IdeA pid: 16error: no unambiguous graphical session found for user anthony
QA
- Verdict:
PARTIEL. - Prouvé:
- le script est syntaxiquement valide;
- le
--dry-runne retourne pluspid 1; - le script n'annonce plus un faux succès quand la session graphique n'est pas détectable, il échoue proprement.
- Non prouvé dans cet environnement:
- un redémarrage réel de bout en bout avec changement de PID sur une vraie session graphique utilisateur.
- Décision Main: ticket passé en statut
QA, pas clôturé, en attente d'une validation live sur machine/session graphique réelle.
Reprise 2026-08-17
- Demande utilisateur complémentaire: le but du script est précisément de pouvoir redémarrer IdeA à distance via SSH quand l'utilisateur n'est pas chez lui.
- Nouveau périmètre borné:
- conserver l'auto-détection quand elle marche;
- ajouter un mode explicite pour fournir/cibler la session graphique depuis SSH (variables d'environnement et/ou PID de session);
- documenter la ligne de commande attendue.
- Cycle relancé: Architect -> Git -> DevBackend -> QA.
Architect lot 2
- Contrat retenu pour SSH:
--session-pid <pid>--display <value>--wayland-display <value>--xdg-runtime-dir <path>--dbus-session-bus <addr>--xauthority <path>
- Priorité de résolution retenue: flags explicites, puis environnement shell, puis auto-détection.
Git lot 2
- Topologie recommandée: continuer
fix/ticket-222-restart-idea-over-sshsi la branche existe encore, sinon repartir dedevelop. - Réserve inchangée: le worktree courant est sale.
DevBackend lot 2
scripts/restart-idea-over-ssh.shsupporte maintenant le ciblage explicite de session graphique pour usage SSH.- Garde-fous clés:
- validation de la cohérence
XDG_RUNTIME_DIR/DBUS_SESSION_BUS_ADDRESS; - validation des chemins absolus;
- validation croisée avec
--session-pid; - auto-détection reléguée au dernier recours;
- pas de succès si aucun nouveau PID IdeA n'est vu après relance.
- validation de la cohérence
- Vérifications utiles:
- sans env/flags: échec explicite;
- avec env shell Wayland/DBus:
Session source: shell environment; - avec flags explicites:
- commande:
bash /home/anthony/Documents/Projects/IdeA/scripts/restart-idea-over-ssh.sh --dry-run --xdg-runtime-dir /run/user/1000 --dbus-session-bus unix:path=/run/user/1000/bus --wayland-display wayland-0 /home/anthony/Documents/Projects/IdeA/IdeA_0.3.0_amd64.AppImage - résultat:
Session source: explicit flags
- commande:
QA lot 2
- Verdict:
PARTIEL. - Prouvé:
- le mode
flags explicitesexiste bien et fonctionne en--dry-run; - le mode
environnement shellfonctionne en--dry-run; - sans cible exploitable, le script échoue proprement au lieu d'annoncer un faux succès.
- le mode
- Non prouvé:
- relance réelle de bout en bout depuis SSH sur une session graphique distante visible côté utilisateur.
- Décision Main: ticket repassé en
QA; prêt pour validation live utilisateur avec la commande SSH finale.