Ticket #92 rouvert, mises à jour de carnets/tâches de fond. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2.4 KiB
2.4 KiB
issueRef, version, updatedBy, updatedAt
| issueRef | version | updatedBy | updatedAt | ||
|---|---|---|---|---|---|
| #92 | 8 |
|
1784788822167 |
Résumé de livraison
Backend et frontend livrés sur feature/ticket92-opencode-provider-cloud, mergée dans develop (merge 12c7d10).
Backend (commit 23a3c27) :
- Domain :
OpenCodeProviderConfig { provider_id, model, api_key_ref: SecretRef }surAgentProfile.opencode_provider, invariantopencode_backend_is_consistent()(llamacpp local XOR provider cloud, jamais les deux). - Port
SecretStore+ adaptateurFsSecretStore(AES-256-GCM viaring, clé localesecret.keychmod 0600) — la clé API cloud n'est jamais en clair dansprofiles.json. - Catalogue de providers statique (
application/agent/provider_catalogue.rs) exposé via la commande Taurilist_opencode_providers. - Use case
SaveOpenCodeProviderProfile(scelle la clé API dans leSecretStore, mint/réutilise unSecretRef) exposé viasave_opencode_provider_profile. Pas de patch partiel : la clé littérale est obligatoire à chaque appel, y compris en édition. DeleteProfilepurge le secret associé si le profil supprimé porteopencode_provider.- Résolution de la clé au lancement dans les deux générateurs de
opencode.json(infrastructure/assistant/mod.rs,application/agent/lifecycle.rs) ; échec dur si secret absent. - QA vert :
cargo build --workspace+cargo test --workspace -- --test-threads=1(tests de couverture SaveOpenCodeProviderProfile/DeleteProfile ajoutés suite à un premier retour QA).
Frontend (commit c181b43) :
- First-run wizard : segmented control Local/Cloud exclusif dans le formulaire de profil OpenCode, sous-formulaire cloud (provider → modèle en cascade, clé API masquée jamais pré-remplie), validation inline, bannière d'erreur de sauvegarde.
- En édition d'un profil cloud existant : champ clé toujours vide, bouton de sauvegarde désactivé tant que la clé n'est pas ressaisie (contrainte backend, pas de patch partiel).
- QA vert :
npm run build+vitest run(952 tests, y compris un test ajouté pour le parcours d'édition suite à un retour QA).
Dette hors périmètre signalée par Architect, non traitée ici : duplication de deux fonctions opencode_config_json/opencode_provider_config_json entre infrastructure/assistant/mod.rs et application/agent/lifecycle.rs — à trancher (laquelle est la vraie) dans un ticket séparé si besoin.