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>
This commit is contained in:
27
.ideai/tickets/54/carnet.md
Normal file
27
.ideai/tickets/54/carnet.md
Normal file
@ -0,0 +1,27 @@
|
||||
---
|
||||
issueRef: "#54"
|
||||
version: 5
|
||||
updatedBy: {"kind":"agent","agent_id":"a6ced819-b893-4213-b003-9e9dc79b9641"}
|
||||
updatedAt: 1783976286882
|
||||
---
|
||||
## Cadrage Architect (2026-07-13)
|
||||
|
||||
**Seam actuel du timeout** : `EnsureLocalModelServer` dans `crates/application/src/model_server.rs` — boucle de readiness HTTP `ReadinessPolicy` par défaut `20 × 250ms` (~5s), puis `Failed{code:"timeout"}` + kill du process (model_server.rs:336/359). Démarrage déclenché depuis `lifecycle.rs:1665` (`ensure_local_model_server_for_opencode`). Adapter concret `LocalManagedProcess` (`crates/infrastructure/src/model_server/mod.rs`) : spawn sans capture stdout/stderr ; `LlamaCppRuntime` construit `-hf <repo>` ou `--model <path>` (mod.rs:101). Le probe HTTP `/v1/models` ne distingue que prêt/pas-joignable — pas de source « téléchargement » fiable aujourd'hui.
|
||||
|
||||
**Frontend** : event `modelServerStatusChanged` existe déjà (`domain/index.ts`), replié par `serverId` dans `useAgents.ts:313`, affiché surtout dans AgentsPanel — pas en overlay cellule. Overlay à brancher dans `LeafView`/`LayoutGrid.tsx:883` (même niveau que les overlays plein-cellule existants), en corrélant `agentId → profileId → opencode.localModelServerId → statut serveur`.
|
||||
|
||||
**Contrat DTO (réutilise le stream existant, pas de nouveau)** — étendre `ModelServerLifecycleStatus` :
|
||||
```
|
||||
Downloading { downloaded_bytes: Option<u64>, total_bytes: Option<u64>, percent: Option<f32>, source: Option<String> }
|
||||
Ready { reused: bool }
|
||||
Failed { code, message }
|
||||
```
|
||||
Miroir TS : `{ state: "downloading"; downloadedBytes?; totalBytes?; percent?; source? } | ...`
|
||||
|
||||
### Découpage
|
||||
- **B1 (backend MVP)** : étendre le DTO status ; pour source HF auto-start, ne PAS traiter 5s de process vivant comme erreur → publier `Downloading`/`Preparing`, continuer à sonder tant que le process vit, échouer seulement si exit/probe terminal/port collision/deadline longue configurable.
|
||||
- **F1 (frontend MVP)** : étendre `ModelServerStatus` TS ; overlay plein-cellule dans LeafView pour cellules dont l'agent référence le serveur en `downloading/starting/probing` (« Téléchargement du modèle… » / « Chargement du serveur… »).
|
||||
- **B2 (stretch)** : progression fine réelle — court terme PTY + parse progress llama.cpp ; long terme port `ModelArtifactDownloader` (pré-DL HF avec callbacks, puis spawn `--model <path>`).
|
||||
- **F2 (stretch)** : barre/%, bytes, source.
|
||||
|
||||
**Ordre** : B1 → F1 → QA (MVP). Stretch B2/F2 séparable et décidé après.
|
||||
16
.ideai/tickets/54/issue.md
Normal file
16
.ideai/tickets/54/issue.md
Normal file
@ -0,0 +1,16 @@
|
||||
---
|
||||
id: "18641885-1b38-43c1-a81b-42f4c407690d"
|
||||
number: 54
|
||||
title: "[UI] Ajouter le handle du téléchargement des modeles lors du démarage llamacpp"
|
||||
status: "inProgress"
|
||||
priority: "medium"
|
||||
sprint: "5afd6780-0f76-40d7-a10f-32ee52469d74"
|
||||
links: []
|
||||
agentRefs: []
|
||||
createdBy: {"kind":"user"}
|
||||
updatedBy: {"kind":"agent","agent_id":"a6ced819-b893-4213-b003-9e9dc79b9641"}
|
||||
createdAt: 1783965036142
|
||||
updatedAt: 1783976286882
|
||||
version: 5
|
||||
---
|
||||
Lorsqu'un serveur llamacpp se démarre, dans le cas ou le modele se télécharge, il faudrait que le téléchargement soit affiché au lieu d'afficher un timeout, avec en idéal l'affichage de la préogression du téléchargement en supperposition de la (ou les cellules) qui cherche à afficher le modèle
|
||||
Reference in New Issue
Block a user