Files
IdeA/.ideai/tickets/222/carnet.md

5.7 KiB

issueRef, version, updatedBy, updatedAt
issueRef version updatedBy updatedAt
#222 4
kind agent_id
agent a6c6ea12-bfc6-4bdc-8031-324102dfa34d
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: 1 et Detected graphical session pid: 1
  • Diagnostic initial Main:
    • la détection find_running_idea_pid() repose sur pgrep -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.
  • 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-ssh depuis develop.
  • Réserve Git: le worktree courant est sale et la branche active qa/functional-coverage-suite n'est pas une bonne base pour ce correctif.

DevBackend

  • Correctif livré dans scripts/restart-idea-over-ssh.sh uniquement.
  • Changements clés:
    • exclusion de pid 1, $$ et des ancêtres du script;
    • validation stricte d'un process IdeA par /proc/<pid>/exe et cmdline lié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.
  • Vérifications DevBackend:
    • bash -n /home/anthony/Documents/Projects/IdeA/scripts/restart-idea-over-ssh.sh
    • bash /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: 16
    • error: no unambiguous graphical session found for user anthony

QA

  • Verdict: PARTIEL.
  • Prouvé:
    • le script est syntaxiquement valide;
    • le --dry-run ne retourne plus pid 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-ssh si la branche existe encore, sinon repartir de develop.
  • Réserve inchangée: le worktree courant est sale.

DevBackend lot 2

  • scripts/restart-idea-over-ssh.sh supporte 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.
  • 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

QA lot 2

  • Verdict: PARTIEL.
  • Prouvé:
    • le mode flags explicites existe bien et fonctionne en --dry-run;
    • le mode environnement shell fonctionne en --dry-run;
    • sans cible exploitable, le script échoue proprement au lieu d'annoncer un faux succès.
  • 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.