From 49dfbfd5010c0f3afb73842f5e6a8c614c62967a Mon Sep 17 00:00:00 2001 From: Francisco Solla Date: Sun, 23 Aug 2026 14:31:02 -0300 Subject: [PATCH] =?UTF-8?q?plano=20OPS78:=20fix=20de=20variantes=20?= =?UTF-8?q?=E2=80=94=20campo=20'variants'=20obrigat=C3=B3rio=20no=20model?= =?UTF-8?q?=20config=20do=20opencode.json?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/plans/worktree-launch-default-llm-max-gateway.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/plans/worktree-launch-default-llm-max-gateway.md b/docs/plans/worktree-launch-default-llm-max-gateway.md index 11a50c83..7fe53bc9 100644 --- a/docs/plans/worktree-launch-default-llm-max-gateway.md +++ b/docs/plans/worktree-launch-default-llm-max-gateway.md @@ -1,7 +1,7 @@ # Default de launch do worktree opencode passa a usar o DeepSeek na variante max servido pelo gateway da Vercel Status: rascunho -Atualizado em: 2026-08-23 +Atualizado em: 2026-08-23 (fix de variantes) Issue: #784 Priority: P2 Impeccable: A — N/A sem UI @@ -32,8 +32,9 @@ Dados: N/A — item de tooling/launch, sem superfície de dados. ## Direção no codebase (hipótese) - **Áreas prováveis:** `scripts/lib/worktree.mjs:23` (constante do preset, emitida em `:143`); testes `tests/unit/worktree.unit.spec.ts:151-197` e `tests/unit/opencodeCommands.unit.spec.ts:37`; repo `opencode.json` (adicionar provider OpenAI-compatible do gateway e expor a variante max); textos de doc `.agents/shell/worktree.sh:10`, `scripts/worktree.mjs:27,778`, `.agents/skills/worktree-next-issue/SKILL.md:34`. +- **Fix de variantes (observação ao vivo):** as variantes `low`/`high`/`max` não aparecem no TUI do opencode para um provider Vercel AI Gateway porque o campo `variants` precisa estar declarado no **modelo** dentro do `opencode.json`. O repo hoje define `cheapest-inference/deepseek-v4-flash` sem `variants`; o global define `cheapestinference/deepseek-v4-flash` COM `variants`. Ao adicionar o provider do gateway em `opencode.json`, o model config DEVE incluir `variants` com as definições (low/high/max com `reasoningEffort`) — sem isso, o TUI nunca oferece a seleção. Formato: `provider..models..variants..{ reasoningEffort: "max", ... }`. - **Precedente a olhar:** OPS26 (criou o preset e o mecanismo "trocar modelo = editar a constante"), OPS31/OPS25 (extensões do launch). -- **Risco de acoplamento:** baixo — a constante é single source e os testes a seguram; qualquer mudança de string quebra testes, o que é a verificação do item. +- **Risco de acoplamento:** baixo — a constante é single source e os testes a seguram; qualquer mudança de string quebra testes, o que é a verificação do item. Fix de variantes é config-only em `opencode.json`. ## Dependências @@ -50,11 +51,12 @@ Dados: N/A — item de tooling/launch, sem superfície de dados. - **"Só completar a string nos comandos".** Se alguém apenas trocar o modelo nos frontmatters dos comandos, muda a execução de Issues (fora de escopo) e ignora o provider do gateway. **Corte neste item:** a mudança é no default de LAUNCH do worktree (preset + provider no repo), não no cardápio de execução. - **"Configurar o gateway no global".** Se alguém criar o provider no opencode.jsonc global, vira config de máquina do humano e contamina todas as sessões. **Corte neste item:** provider no repo `opencode.json`, apenas para expor o caminho que o preset usa. +- **"Adicionar o provider sem variantes".** Se alguém adicionar o provider Vercel AI Gateway no `opencode.json` mas esquecer o campo `variants` no model config, as variantes não aparecem no TUI e a max não pode ser selecionada. **Corte neste item:** ao adicionar o provider, o model config DEVE incluir `variants` com as definições low/high/max (cada uma com `reasoningEffort`). O fix é config-only em `opencode.json` — sem migration, sem code. ## Questões em aberto (produto) - **Os comandos de execução de Issues acompanham o novo default ou ficam como estão?** **Opções:** A) ficam como estão (execução = escolha estável, só o launch muda) | B) alinhar também. **Recomendação:** A — o item é o default de LAUNCH; o cardápio de execução é outro mecanismo e está fora de escopo. -- **Onde expor a variante max: no provider do repo ou como flag no preset?** **Opções:** A) default no provider | B) flag nova (`--variant max`) na emissão do launch. **Recomendação:** A — default explícito no provider, mantendo a emissão atual de `--model` intacta e o teste unitário como guarda. +- **Onde expor a variante max: no provider do repo ou como flag no preset?** **Opções:** A) default no provider (campo `variants` no model config) | B) flag nova (`--variant max`) na emissão do launch. **Recomendação:** A — default explícito no provider, mantendo a emissão atual de `--model` intacta e o teste unitário como guarda. Observação: o campo `variants` no model config é o que faz as variantes aparecerem no TUI (Ctrl+T) — sem ele, nenhuma variante é selecionável. ## Referências