feat(setup): rafraîchir les fichiers projet figés — merge opencode.json + garde-fou OpenCode (EPIC 8)#16
Merged
Conversation
…on + garde-fou OpenCode (EPIC 8, T8.2/T8.3, AC-R041) Au setup, les fichiers projet (opencode.json, runtime) etaient conserves tels quels s'ils existaient -> les evolutions du template ne redescendaient jamais aux projets deja configures. Corrections sur les canaux qui redescendent : T8.2 (scaffold_opencode_json) : si ./opencode.json existe sans provider albert et que jq est present, merger provider.albert + model + small_model sans toucher les autres cles (MCP, permissions, autres providers), avec backup .bak. Le message de succes n'est affiche QUE si le merge jq a reellement abouti ; sur un JSON invalide (ex. commentaires), restauration du .bak + avertissement. Fallback si jq absent : avertissement (T7.7). T8.3 (ensure_vm_runtime) : garde-fou dans le bloc marque du runtime USER (~/.agent-vm/runtime.sh, reecrit a chaque setup donc redescend a l'existant). Au boot de la VM, si opencode ne connait pas --auto, `opencode upgrade`. Corrige l'ecran de help au lieu du TUI sur les vieilles VM (AC-R041). Detection capture-first (pas de pipe). vendor/vm/ non touche. Tests : TESTS.md S46 (merge opencode.json) + S47 (garde-fou OpenCode --auto).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problème de fond
Au
setup, les fichiers posés dans le projet (opencode.json,.agent-vm.runtime.sh,AGENTS.md) sont conservés s'ils existent → les évolutions du template ne redescendent jamais aux projets déjà configurés. Trois symptômes, une seule cause (cf. debug bêta-testeur Julien).Corrections (sur les canaux qui redescendent)
T8.2 —
opencode.json: réparer, pas seulement avertir (généralise T1.6/T7.7)Si
./opencode.jsonexiste sans provideralbertet quejqest présent : merge deprovider.albert+model+small_model, sans toucher MCP / permissions / autres providers, avec backup.bak. Fallback = avertissement (T7.7) sijqabsent.T8.3 — Garde-fou version OpenCode (absorbe AC-R041)
Injecté dans le bloc marqué du runtime USER
~/.agent-vm/runtime.sh(réécrit à chaquesetup→ redescend aux installs existantes). Au boot de la VM : siopencodene connaît pas--auto,opencode upgrade. Corrige l'écran de help au lieu du TUI sur les vieilles VM (cas Julien, OpenCode 1.2.9). Détection capture-first (pas de pipe).vendor/vm/non touché.Revue intégrée
Un défaut a été corrigé avant push : le message de succès
ok "Provider Albert ajouté"était inconditionnel → il s'affichait même quand le mergejqéchouait et que l'original (sans albert) était restauré. Désormais le message n'apparaît que si le merge a réellement abouti ; sinon avertissement + restauration.Validation
bash -nOK.jqtesté : JSON valide (Scaleway + MCP + permissions préservés, Albert ajouté) ; JSONC invalide → restauration, pas de faux succès.--autoprésent / absent / opencode absent validée.betabot2).Portée
lib/phases.sh(scaffold_opencode_json,ensure_vm_runtime) + doc (BACKLOG EPIC 8, FEEDBACK AC-R041, TESTS S46/S47).vendor/vm/intact.