Skip to content

Performance : virtualiser le fil de conversation du chat #5

@D4kooo

Description

@D4kooo

Contexte

Le fil de conversation (src/app/(app)/chat/chat-shell.tsx) rend l'intégralité des messages à chaque mise à jour, sans virtualisation : sur une longue conversation, chaque token streamé re-rend toute la liste. Un premier palier a été posé (mémoïsation du rendu Markdown des messages historiques via React.memo + onOpenDoc stable), mais le fond reste à traiter.

Proposition

  • Virtualiser la liste (fenêtrage, p. ex. @tanstack/react-virtual) pour ne monter que les messages visibles.
  • Extraire un composant MessageRow mémoïsé, en gardant le message en cours de streaming réactif.
  • Préserver l'auto-scroll et le bouton « revenir en bas ».

Critères d'acceptation

  • Conversation de 200+ messages fluide pendant le streaming.
  • Aucune régression de l'auto-scroll ni du focus du composer.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: chatInterface conversationnellehelp wantedLe mainteneur cherche de l'aideperformancePerformance (rendu, requêtes, bundle)prio: mediumÀ planifier

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions