Skip to content

chore(upstream): transição para v2 no upstream e port de correções estáveis da v1 (interleaved reasoning Copilot #54207) #267

Open

Description

@alltomatos

1. Contexto e Transição Arquitetural do Upstream (v1 -> v2)

  • Repositório Upstream: anomalyco/opencode
  • Evento Estrutural: O branch dev (e production) do upstream foi promovido para o OpenCode v2 (versão 2.0.29, commit 3c61484f58). A base estável legada da v1 agora é mantida separadamente no branch upstream/v1 (release estável v1.19.0).
  • Repositório do Fork: alltomatos/opencode (atualmente alinhado à linhagem estável v1, v1.21.x com customizações do Batuta, Breniac, Combos, MCP Mail e Media Studio).
  • Ambientes Locais: D:\dev\opencode-ori\opencode e D:\dev\ori\opencode totalmente sincronizados com o upstream dev.

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

Critério Classificação Diretriz para o Fork
A. Correções da linhagem v1 (Branch upstream/v1) Prioridade Alta Importar via cherry-pick/port cirúrgico para a base v1 atual do fork (estabilidade, suporte a provedores e ferramentas).
B. Suporte a Interleaved Thinking em Provedores Prioridade Alta Garantir tratamento correto de múltiplos blocos de reasoning e reasoning_opaque contínuos (essencial para Claude Opus/Sonnet via Copilot).
C. Transição para o OpenCode 2 (Branch upstream/dev) Requer Decisão Estratégica / Planejamento O v2 reescreve a camada de UI (packages/ui, SolidJS router 1.0, novo motor de estilos, novo packages/cli e packages/util). Não deve ser feito via merge cego; requer um roadmap dedicado de migração de arquitetura para o fork.

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

🧠 1. Suporte a Interleaved Thinking no GitHub Copilot (fix(core): #54207)

  • Commit no upstream/v1: b2a3926e87
  • Arquivos:
    • packages/core/src/github-copilot/chat/convert-to-openai-compatible-chat-messages.ts
    • packages/core/src/github-copilot/chat/openai-compatible-chat-language-model.ts
  • Impacto no Fork: Positivo Alto.
    • No Copilot com modelos de raciocínio interleaved (como Claude Opus 5.5 / Sonnet), cada tool call gera um novo reasoning_opaque.
    • A implementação anterior lançava InvalidResponseDataError ("Multiple reasoning_opaque values received").
    • A correção concatena os textos de raciocínio e mantém o token opaque mais recente, alinhando com o comportamento oficial do VS Code Copilot. Risco de regressão zero.

📝 2. Reconhecimento de Módulos C++ no TUI (fix(tui): #53852)

  • Commit no upstream/v1: 055d95bb7e
  • Arquivo: packages/tui/src/util/filetype.ts
  • Impacto no Fork: Positivo Baixo/Médio.
    • Adiciona extensões C++20 (.cppm, .ccm, .cxxm, .c++m, .ixx) para syntax highlighting correto.

🚀 3. Lançamento do OpenCode 2 no Upstream (2.0.29)

  • Impacto no Fork: Alto (Estratégico).
    • A arquitetura do upstream mudou de monorepo clássico v1 para um modelo orientado a packages/util, services/www, OpenTUI 0.5.17, Effect 4.0.1 e novos pacotes de UI.
    • Recomenda-se manter o fork em sua linhagem estável atual e planejar a migração de subagentes/Batuta em branch isolada posteriormente.

4. Plano de Ação Recomendado

  1. Portar a correção de reasoning_opaque do Copilot (#54207) para packages/core.
  2. Portar as extensões C++20 (#53852) para packages/tui/src/util/filetype.ts.
  3. Executar typecheck e testes de regressão (bun test packages/core/test/github-copilot).

Activity

  1. added
    tech-debtRefactors, cleanup, architectural debt
    ready-for-agentScoped and ready for an agent to pick up
    on Oct 15, 2026
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