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>
3.5 KiB
3.5 KiB
issueRef, version, updatedBy, updatedAt
| issueRef | version | updatedBy | updatedAt | ||||
|---|---|---|---|---|---|---|---|
| #102 | 11 |
|
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 premierfit()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/writevsfirst useful fit. - Stratégie recommandée: corriger dans
TerminalViewl'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 premierfitutile, puis rejoués dans l'ordrescrollbackpuislive 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.tsxpour verrouiller qu'aucunterm.writene précède le premierfitutile 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.