Files
IdeA/.ideai/memory/ticket54-f1-model-download-overlay-frontend.md
Blomios ad1f2257e6 chore(ideai): état d'orchestration du sprint #54 (progression téléchargement)
Métadonnée runtime IdeA : tickets, sprints, mémoire et background-tasks
mis à jour au fil du sprint de progression fine du téléchargement (#54).
Séparé du code de feature (last-writer-wins, état non applicatif).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-14 10:37:23 +02:00

1.9 KiB

name, description, metadata
name description metadata
ticket54-f1-model-download-overlay-frontend Overlay plein-cellule de préparation du serveur modèle local + progression (barre/%/bytes/source), corrélation factorisée, priorité de voile.
type
reference

Ticket #54 livré et vert côté frontend (F1 = overlay, F2 = progression).

Contrat : ModelServerStatus.downloading { downloadedBytes|totalBytes|percent|source: number|string|null } (frontend/src/domain/index.ts), miroir exact de ModelServerStatusDto (crates/app-tauri/src/events.rs). Event modelServerStatusChanged passé tel quel — pas de mapping de désérialisation.

Factorisation dans frontend/src/features/agents/modelServerLaunch.ts : correlateModelServerStatus (chaîne agentId→profileId→opencode.localModelServerId→serverId), modelServerOverlayText (titre+gating de voile), useModelServerLaunchState(projectId) (source autonome pour LeafView), et F2 : formatBytes (SI base 1000 : o/Ko/Mo/Go) + describeModelServerDownload{percent(clamp 0..100 ou null=indéterminé), bytesLabel, source} (null hors downloading). AgentsPanel réutilise le helper.

Overlay dans LeafView/LayoutGrid.tsx (data-testid=model-server-overlay, zIndex CELL_Z.veil) : titre + barre role=progressbar (aria-valuenow seulement en déterminé, sinon barre indéterminée via keyframe model-server-indeterminate dans theme.css) + label "X % · A Mo / B Mo" + ligne source HF. starting/probing = titre seul, pas de barre. Priorité : voile modèle au-dessus des voiles write-portal + F3 (les deux gatés sur !modelServerOverlay). Voir ticket4-overlay-composition-leafview.

Tests : LayoutGrid.modelServerOverlay.test.tsx (F1+F2, dont multi-cellules & indéterminé) + unitaire pur modelServerLaunch.test.ts. Non-régression src/features/agents src/features/layout = 202 verts ; npx tsc --noEmit clean.