Skip to content

chore(upstream): sincronizar correções do upstream (v1.18.33) — avaliação de impacto e critérios #250

Description

@alltomatos

1. Contexto e Objetivo

Foi realizada a revisão detalhada do repositório upstream oficial (anomalyco/opencode na branch dev, versão v1.18.33, commit 725e4ba4b8) em comparação com o nosso fork (alltomatos/opencode).

O objetivo desta issue é definir a avaliação de impacto, os critérios de adoção e o plano de importação das alterações upstream, preservando a integridade das customizações do nosso fork (tais como OmniRoute/Combos, Media Studio, AGY Auth/Token Auto-refresh, MCP Mail, agendador de rotinas e Desktop Platform Bridge).


2. Critérios de Adoção para o Fork

Critério Classificação Ação Recomendada
A. Correção de Segurança & Estabilidade de Runtime Prioridade Máxima Importar imediatamente. Risco baixo de quebra e ganho direto em robustez e proteção contra vazamento de credenciais.
B. Core & Resolução de Módulos Alta Prioridade Importar após validação de compatibilidade com os loaders de plugins e tools do fork.
C. Provedores LLM & MCP Média Prioridade (com cautela) Portar manualmente / Cherry-pick cirúrgico para evitar regressões nas regras customizadas do fork (como AGY token handling, combos e sanitização de esquemas JSON para Gemini).
D. Console / Infraestrutura Anomaly / Billing Não Aplicável / Descartado Ignorar alterações relacionadas a faturamento proprietário (packages/console, packages/stats, planos Go Plus da Anomaly e docs de marketing do site).

3. Avaliação de Impacto das Modificações

🔒 Segurança & Observabilidade

  • Redação de Credenciais em Debug (fix(opencode): #50956)
    • Arquivo: packages/opencode/src/cli/cmd/debug/redact.ts, packages/opencode/src/cli/cmd/debug/config.ts
    • Impacto no Fork: Positivo Alto. Impede que chaves de API e segredos sejam expostos em texto claro em saídas de log e comandos de diagnóstico. Risco de regressão zero.

🛠️ Core e Resolução de Sistema

  • Quebra de Dependência Cíclica no Filesystem (fix(core): #50439)
    • Arquivo: packages/core/src/filesystem/search.ts
    • Impacto no Fork: Positivo Alto. Elimina warnings e potenciais erros de inicialização durante o bundling de dependências do core.
  • Resolução de Entrypoint npm no Node (fix(core): #50413)
    • Arquivo: packages/core/src/npm.ts
    • Impacto no Fork: Positivo Médio. Melhora a resolução de plugins e dependências externas instaladas localmente.
  • Abridor de Browser Unificado (refactor(core): #51414)
    • Arquivo: packages/core/src/open.ts
    • Impacto no Fork: Positivo Médio. Padroniza chamadas de abertura de links entre CLI, TUI e MCP.

🤖 Provedores LLM, MCP e Ferramentas

  • Falhas de Inicialização de Browser MCP (fix(opencode): #51538)
    • Arquivo: packages/opencode/src/mcp/browser.ts
    • Impacto no Fork: Positivo Alto. Trata graciosamente o encerramento inesperado do processo do browser em vez de lançar exceções não tratadas no servidor.
  • Timeouts no Cloudflare AI Gateway (fix(opencode): #51549)
    • Arquivo: packages/opencode/src/provider/provider.ts
    • Impacto no Fork: Positivo Médio / Risco Médio. Garante que timeouts configurados sejam aplicados em requisições gateway. Requer atenção no merge com o roteamento de Combos do fork.
  • Ajuste na Lógica de Thinking do Gemini (fix(gemini): #50841)
    • Arquivo: packages/opencode/src/provider/transform.ts
    • Impacto no Fork: Positivo Médio / Risco Médio. Corrige comportamentos padrão do modo thinking. Requer validação junto às sanitizações de esquemas JSON que implementamos para o Gemini.
  • Modelos GPT-6 com Codex (feat(openai): #50704)
    • Arquivo: packages/opencode/src/plugin/openai/codex.ts
    • Impacto no Fork: Positivo Baixo. Permite uso de novos identificadores no plugin Codex.
  • Reporte de Uso de Tokens Together AI (fix(opencode): #50264)
    • Arquivo: packages/opencode/src/provider/provider.ts
    • Impacto no Fork: Positivo Baixo. Melhora a precisão métrica de streaming.

4. Matriz de Conflitos e Riscos com o Fork

Módulo Upstream Área no Fork que toca Risco de Conflito Mitigação
packages/opencode/src/provider/provider.ts Combos, AGY Provider, Background Refresh Médio Aplicar somente o trecho de timeout e TogetherAI via patch isolado; não sobrescrever o arquivo completo.
packages/opencode/src/provider/transform.ts Sanitização JSON Schema Gemini Médio Mesclar a lógica de thinking mantendo os sanitizers de enum/literal do Gemini já estáveis no fork.
packages/core/src/* Módulos de Core do fork Baixo Importação direta com execução dos testes unitários de core (npm.test.ts, open.test.ts).
packages/opencode/src/cli/cmd/debug/* CLI Debug do fork Baixo Adicionar redact.ts e referenciar no comando de debug.

5. Próximos Passos (Plano de Execução)

  1. Criar branch de trabalho (ex.: sync-upstream-v1-18-33).
  2. Portar modificações de segurança (redact.ts) e core (search.ts, npm.ts, open.ts).
  3. Portar correções de MCP browser e provedores (transform.ts, provider.ts).
  4. Executar suíte de validação:
    • bun typecheck em packages/core e packages/opencode
    • bun test em packages/core e packages/opencode
  5. Submeter PR para a branch dev do fork.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    ready-for-agentScoped and ready for an agent to pick uptech-debtRefactors, cleanup, architectural debt

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions