Files
IdeA/.ideai/tickets/102/carnet.md
Blomios efbd56a149 chore(tickets): sync carnets/issues #102/#141-#147 + agent glmopencode
Rebase de l'état ticket (réouverture #102, clôtures #141-146, ouverture
#147) et ajout du contexte agent glmopencode avant démarrage du cycle #147.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-04 23:57:30 +02:00

3.5 KiB

issueRef, version, updatedBy, updatedAt
issueRef version updatedBy updatedAt
#102 11
kind agent_id
agent a6c6ea12-bfc6-4bdc-8031-324102dfa34d
1785878554632

2026-08-04 — Réouverture

  • Repro utilisateur confirmée: en changeant de projet, si une cellule contient un terminal d'agent IA et que du contenu est arrivé pendant que le projet n'était pas affiché, le terminal revient partiellement/blanc/tronqué.
  • Symptôme visuel observé: le contenu complet réapparaît immédiatement après un resize de la cellule ou de la fenêtre.
  • Portée repro indiquée historiquement: switch de projet, switch de layout, ajout/suppression/redécoupage de cellules; le cas prioritaire confirmé aujourd'hui est le retour sur projet.
  • Hypothèse de travail à valider: problème de refresh/fit/reflow frontend du terminal lors de la ré-attache ou ré-activation de la vue, pas un manque de données côté agent.
  • Action en cours: recadrage Architect, décision de branche Git, implémentation dev ciblée, puis validation QA sur reproduction réelle.

2026-08-04 — Cadrage Architecture (analyse statique, avant implémentation)

  • Frontière validée: frontend pur, ciblée sur frontend/src/features/terminals/TerminalView.tsx.
  • Le backend/PTY n'est pas suspecté à ce stade: le tail de scrollback est bien restitué au reattach; le défaut semble être de rendu/reflow au retour sur la vue.
  • Point d'attention principal: term.write(scrollback) pourrait arriver avant le premier fit() réellement utile, ce qui laisserait xterm wrapper le contenu sur une géométrie transitoire et n'obtiendrait un repaint correct qu'au resize manuel ultérieur.
  • Les correctifs précédents ont déjà renforcé la boucle de fit; le trou probable est l'absence de test sur le rendu/repaint effectif et sur l'ordre reattach/write vs first useful fit.
  • Stratégie recommandée: corriger dans TerminalView l'ordre de réécriture du scrollback et/ou forcer un repaint plein-buffer après le premier fit utile, puis valider par test ciblé et repro réelle.

2026-08-04 — Implémentation DevFrontend

  • Correctif appliqué dans frontend/src/features/terminals/TerminalView.tsx.
  • Changement clé: en cas de reattach, le scrollback et les chunks live reçus pendant la fenêtre de réattache ne sont plus écrits immédiatement dans xterm; ils sont tamponnés jusqu'au premier fit utile, puis rejoués dans l'ordre scrollback puis live output.
  • Objectif: éviter un rendu initial du buffer sur une géométrie transitoire et supprimer la dépendance à un resize manuel ultérieur pour déclencher l'affichage correct.
  • Test ajouté/ajusté dans frontend/src/features/terminals/TerminalView.test.tsx pour verrouiller qu'aucun term.write ne précède le premier fit utile et que l'ordre de replay est conservé.

2026-08-04 — Verdict QA

  • Validation automatisée verte:
    • cd frontend && npx vitest run src/features/terminals/TerminalView.test.tsx -> 22 tests passés.
    • cd frontend && npx vitest run src/features/terminals/TerminalView.scrollback.test.tsx src/features/terminals/TerminalView.portal.test.tsx -> 5 tests passés.
    • cd frontend && npx vitest run src/features/terminals -> 39 tests passés.
    • cd frontend && npx vitest run -> 115 fichiers, 1083 tests passés.
  • Verdict QA: vert avec réserve de preuve manuelle.
  • Réserve restante: absence de repro visuelle réelle rejouée dans l'application avec un vrai xterm, une session vivante, puis un reattach après switch projet/layout. Le ticket reste donc ouvert tant que cette validation de terrain n'est pas obtenue.