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>
39 lines
3.5 KiB
Markdown
39 lines
3.5 KiB
Markdown
---
|
|
issueRef: "#102"
|
|
version: 11
|
|
updatedBy: {"kind":"agent","agent_id":"a6c6ea12-bfc6-4bdc-8031-324102dfa34d"}
|
|
updatedAt: 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.
|