fix(session): `flattenToolParts` has no size bound of its own for inlined tool output
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 48/100
- Tipo de issue
- Bug
- Clareza
- Razoavelmente clara
- Status de atividade
- Ativa
- Stack de tecnologia
- typescript
Direção de pesquisa
Read packages/opencode/src/provider/transform.ts and compaction.ts, starting with flattenToolParts and fitHead, and measure how rendered tool results compare with real compaction budgets. Add bounded rendering with an elision marker, then add tests covering multi-megabyte output and marker-lookalike text; done means flattened requests stay within the intended budget without treating output text as structure.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
ProviderTransform.flattenToolParts (packages/opencode/src/provider/transform.ts) rewrites tool-call/tool-result parts into text for toolless requests (compaction, title, summary). It relies on compaction.ts's fitHead having budgeted the unflattened messages; the flattened text is not re-checked against the context window. In practice the flattened text is about the same size, but nothing guarantees it, and a tool output that itself contains text shaped like [tool result: X] is fed to the summarizer as if it were structure.
Proposed: cap each rendered tool result (with an elision marker) and add a test with an adversarial multi-megabyte output and a marker-lookalike output.
Found during the v0.12.0 release review (support-engineer persona). Deferred because: needs measurement against real compaction budgets before choosing a cap.
🤖 Generated with Claude Code
- Linguagem predominante
- TypeScript
- Estrelas
- 812
- Forks
- 123
- Merge médio
- 1d 16h
- PRs com merge (30d)
- 85
Preparar o ambiente
Inicia o contêiner de desenvolvimento do projeto no navegador, com a sua própria conta do GitHub.
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de AltimateAI/altimate-code
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
AltimateAI/altimate-code#1573 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
AltimateAI/altimate-code#1572 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
AltimateAI/altimate-code#1454 ·
Mantenedores costumam responder em até 1 dia
-
test: MCP tests fail when the developer's ~/.claude.json has MCP servers (HOME is not sandboxed)Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
AltimateAI/altimate-code#1386 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
AltimateAI/altimate-code#1384 ·
Mantenedores costumam responder em até 1 dia
Todas as issues de AltimateAI/altimate-code
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
Nimblesite/SharpLsp#468 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
Mantenedores costumam responder em até 1 dia
-
Bundled uv is never updated and trusts the compromised eMudhra certificatesTalvez já em andamento @FabienDanieau assumiu hoje. Abertabug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
-
bg_wait's blocking mode (stopOnAttention: false) is under-documented and effectively undiscoverableAberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 66/100
nicobailon/pi-subagents#3019 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 66/100
db-ux-design-system/core-web#8613 ·
Mantenedores costumam responder em até 1 dia