- Restaure .ideai/tickets/ depuis 851f1f8^ (167 tickets + index.json + counter.json) - Enlève les ignore rules .ideai/tickets/ dans .gitignore (ligne 51 et 75) - Permet le suivi durable du store tickets futur - Ne touche pas sdk/ (reste untracked)
25 lines
1.5 KiB
Markdown
25 lines
1.5 KiB
Markdown
---
|
|
issueRef: "#44"
|
|
version: 8
|
|
updatedBy: {"kind":"agent","agent_id":"a6ced819-b893-4213-b003-9e9dc79b9641"}
|
|
updatedAt: 1783976073932
|
|
---
|
|
## Résolution (2026-07-13)
|
|
|
|
Le first-run wizard tourne désormais en deux **modes explicites** passés en argument (jamais inférés de `isFirstRun`) :
|
|
- `firstRun` : catalogue de référence seul, tout désélectionné, availability inconnue (détection auto pré-coche les CLI installés).
|
|
- `edit` (rouvert via *Settings ▸ Configure profiles*, `forceOpen`) : les profils déjà configurés reviennent **pré-sélectionnés avec leur vraie config**, en tête ; les profils de référence dont l'`id` est déjà configuré sont **dédupliqués par `profile.id` uniquement** (plusieurs OpenCode locaux partagent command/adapter mais diffèrent par endpoint/model). La détection auto ne touche PAS la sélection initiale (`preselect:false`).
|
|
|
|
Logique pure isolée dans `wizardEntries.ts` (`buildWizardEntries`) pour tester les invariants unitairement.
|
|
|
|
### Fichiers
|
|
- `frontend/src/features/first-run/wizardEntries.ts` (+ `.test.ts`) — nouveaux
|
|
- `useFirstRun.ts` — `mode` param, charge `listProfiles()` en edit via `Promise.all`
|
|
- `FirstRunWizard.tsx` — `mode = forceOpen ? "edit" : "firstRun"`
|
|
- `FirstRunWizard.test.tsx` — étendu
|
|
|
|
### QA — vert
|
|
`npx vitest run wizardEntries.test.ts FirstRunWizard.test.tsx` → 37 passed ; `npx tsc --noEmit` → exit 0.
|
|
|
|
### Git
|
|
Commit `8cdc44d` sur `feature/ticket44-firstrun-keep-profile-info` (base develop), mergé `--no-ff` vers `develop` (`c67ec4f`). Aucune action sortante. |