mirror of
https://github.com/fsolla/teqo.git
synced 2026-11-12 22:13:05 +00:00
refactor(OPS101): fixes do /simplify — guard de pin robusto, docblock e triage de débitos
This commit is contained in:
parent
e4550384b1
commit
84de2c1aeb
4 changed files with 17 additions and 5 deletions
|
|
@ -1 +1 @@
|
|||
**Worktree nasce no nome canônico do DeepSeek V4.1 Flash (`deepseek/deepseek-flash`) (2026-09-12):** o preset sem flag do fluxo `pnpm worktree next/plan/new/fix` ainda apontava para o nome legado `deepseek/deepseek-v4-flash`, e os comandos `/work-issue`, `/plan-issue`, `/bug-fix` e `/testing-audit` pinavam o mesmo nome no frontmatter — o pin sobrescrevia o modelo default da sessão e anulava as flags/override do launch. O fix (Issue #944) troca o fallback em `OPENCODE_PRESET_MODEL` (`scripts/lib/worktree.mjs`) para o nome canônico `deepseek/deepseek-flash` (DeepSeek-V4.1-Flash, lançado em 2026-09-10; o alias legado segue servido ao preço Flash, mas pode sumir sem aviso) e remove a linha `model:` dos 4 commands, que passam a herdar o modelo da sessão; o guard unit de frontmatter (`opencodeCommands.unit.spec.ts`) passa a exigir ausência de pin (reintrodução de qualquer pin falha o teste, com mensagem explicando a origem do modelo). O override `OPENCODE_WORKTREE_MODEL` e as 7 flags do `WORKTREE_MODEL_MAP` ficam intactos, incluindo os aliases de outros providers (`cheapestinference/…`, `alibaba-token-plan/…`) e os usos diretos do app (`ai-chat`, `campaignDemandTitle`) — fora do escopo. Verificação: unit full 2687 passed com e sem `OPENCODE_WORKTREE_MODEL` exportado (RED→GREEN nos dois guards), smoke da diretiva imprimindo `--model deepseek/deepseek-flash --auto --prompt "/work-issue --issue 944"` e override ainda vencendo, `pnpm gate:fast` verde; e2e curado local, CI do PR e prod a preencher (deploy manual).
|
||||
**Worktree nasce no nome canônico do DeepSeek V4.1 Flash (`deepseek/deepseek-flash`) (2026-09-12):** o preset sem flag do fluxo `pnpm worktree next/plan/new/fix` ainda apontava para o nome legado `deepseek/deepseek-v4-flash`, e os comandos `/work-issue`, `/plan-issue`, `/bug-fix` e `/testing-audit` pinavam o mesmo nome no frontmatter — o pin sobrescrevia o modelo default da sessão e anulava as flags/override do launch. O fix (Issue #944) troca o fallback em `OPENCODE_PRESET_MODEL` (`scripts/lib/worktree.mjs`) para o nome canônico `deepseek/deepseek-flash` (DeepSeek-V4.1-Flash, lançado em 2026-09-10; o alias legado segue servido ao preço Flash, mas pode sumir sem aviso) e remove a linha `model:` dos 4 commands, que passam a herdar o modelo da sessão; o guard unit de frontmatter (`opencodeCommands.unit.spec.ts`) passa a exigir ausência de pin (reintrodução de qualquer pin falha o teste, com mensagem explicando a origem do modelo). O override `OPENCODE_WORKTREE_MODEL` e as 7 flags do `WORKTREE_MODEL_MAP` ficam intactos, incluindo os aliases de outros providers (`cheapestinference/…`, `alibaba-token-plan/…`) e os usos diretos do app (`ai-chat`, `campaignDemandTitle`) — fora do escopo. Verificação: unit full 2687 passed com e sem `OPENCODE_WORKTREE_MODEL` exportado (RED→GREEN nos dois guards), smoke da diretiva imprimindo `--model deepseek/deepseek-flash --auto --prompt "/work-issue --issue 944"` e override ainda vencendo, `pnpm gate:fast` verde; e2e curado local 18/18 (1,9m — mesmo conjunto do required check do PR), CI do PR e prod a preencher (deploy manual).
|
||||
|
|
|
|||
|
|
@ -104,6 +104,17 @@ N/A — config-only de tooling; nenhum dado de negócio modelado (pergunta 3 de
|
|||
- NÃO varrer o repo inteiro por `deepseek-v4-flash` (atinge app e aliases).
|
||||
- NÃO usar `pnpm worktree next` como smoke (claimaria Issue real) — o smoke é a chamada direta da lib.
|
||||
|
||||
## Triage de débitos (simplify, 2026-09-12)
|
||||
|
||||
6 colhidos / 2 já resolvidos na sessão / 2 descartados / 2 deferidos com gatilho / 0 registrados (nenhum score ≥3).
|
||||
|
||||
- **Já resolvido (não reabrir):** gramática do docblock (`scripts/lib/worktree.mjs`, "passou a usar o nome canônico") e fragilidade da regex do guard (`opencodeCommands.unit.spec.ts:39` → `/^\s*["']?model["']?\s*:/m`).
|
||||
- **Descartado:** espelho `presetInEffect()` inerte com `OPENCODE_WORKTREE_MODEL` exportada (deliberado e documentado em `worktree.unit.spec.ts:41-45`; o CI exercita o literal) e docblock stale `.forgejo/worktree.env` (pré-existente, doc-only, parkeado como follow-up).
|
||||
- **Adiado com gatilho:**
|
||||
- Literais do preset em comentários vivos (`scripts/worktree.mjs:30`, `.agents/shell/worktree.sh:22`, `.agents/skills/worktree-next-issue/SKILL.md:34`) sem guard de sincronização — **gatilho:** próxima troca de preset deixar um dos textos divergente.
|
||||
- Guard de frontmatter cobre os 4 commands do array (`opencodeCommands.unit.spec.ts:13`), não os 6 arquivos de `.opencode/commands/` — **gatilho:** novo command de execução (ou pin em command fora do array).
|
||||
|
||||
|
||||
## Riscos e mitigação
|
||||
|
||||
- **Sessões manuais que invocam `/work-issue` fora do launch passam a herdar o modelo da sessão** (antes o pin forçava o legado) → é o comportamento desejado (o launch/flags/override mandam); registrar como mudança intencional no PR.
|
||||
|
|
|
|||
|
|
@ -31,9 +31,10 @@ export const WORKTREE_TERMINAL_ENV = 'TEQO_WORKTREE_TERMINAL'
|
|||
* `--cheap/--pro/--zen/--go/--alibaba/--glm/--free` o mapa `WORKTREE_MODEL_MAP`
|
||||
* escolhe o modelo por invocação; sem flag o preset permanece. OPS95: sem
|
||||
* `--variant` na diretiva (o TUI rejeita o flag) — variantes ficam na config
|
||||
* global da máquina, via Ctrl+T. OPS101: o fallback passou ao nome canônico
|
||||
* `deepseek/deepseek-flash` (DeepSeek V4.1 Flash, lançado em 2026-09-10; o
|
||||
* alias legado segue servido ao preço Flash, mas pode sumir sem aviso).
|
||||
* global da máquina, via Ctrl+T. OPS101: o fallback passou a usar o nome
|
||||
* canônico `deepseek/deepseek-flash` (DeepSeek V4.1 Flash, lançado em
|
||||
* 2026-09-10; o alias legado segue servido ao preço Flash, mas pode sumir
|
||||
* sem aviso).
|
||||
*/
|
||||
export const OPENCODE_PRESET_MODEL =
|
||||
process.env.OPENCODE_WORKTREE_MODEL || 'deepseek/deepseek-flash'
|
||||
|
|
|
|||
|
|
@ -36,6 +36,6 @@ describe('opencode commands couple to their skill by exact name', () => {
|
|||
expect(
|
||||
frontmatter![1],
|
||||
'frontmatter must NOT pin a model — the command inherits the session model (OPS101)',
|
||||
).not.toMatch(/^model:/m)
|
||||
).not.toMatch(/^\s*["']?model["']?\s*:/m)
|
||||
})
|
||||
})
|
||||
|
|
|
|||
Loading…
Reference in a new issue