Repository navigation
chore(upstream): transição para v2 no upstream e port de correções estáveis da v1 (interleaved reasoning Copilot #54207) #267
Copy link
Copy link
Open
Labels
ready-for-agentScoped and ready for an agent to pick upScoped and ready for an agent to pick uptech-debtRefactors, cleanup, architectural debtRefactors, cleanup, architectural debt
Description
1. Contexto e Transição Arquitetural do Upstream (v1 -> v2)
- Repositório Upstream:
anomalyco/opencode - Evento Estrutural: O branch
dev(eproduction) do upstream foi promovido para o OpenCode v2 (versão2.0.29, commit3c61484f58). A base estável legada da v1 agora é mantida separadamente no branchupstream/v1(release estávelv1.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\opencodeeD:\dev\ori\opencodetotalmente sincronizados com o upstreamdev.
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.tspackages/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.
- No Copilot com modelos de raciocínio interleaved (como Claude Opus 5.5 / Sonnet), cada tool call gera um novo
📝 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.
- Adiciona extensões C++20 (
🚀 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.
- A arquitetura do upstream mudou de monorepo clássico v1 para um modelo orientado a
4. Plano de Ação Recomendado
- Portar a correção de
reasoning_opaquedo Copilot (#54207) parapackages/core. - Portar as extensões C++20 (
#53852) parapackages/tui/src/util/filetype.ts. - Executar typecheck e testes de regressão (
bun test packages/core/test/github-copilot).
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
ready-for-agentScoped and ready for an agent to pick upScoped and ready for an agent to pick uptech-debtRefactors, cleanup, architectural debtRefactors, cleanup, architectural debt
Activity