Batch thinking deltas like text deltas while streaming
Los mantenedores suelen responder en 1 día
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bien especificado
- Estado de actividad
- Estancado
- Stack tecnológico
- react, typescript
- Área
- desktop, performance, testing
Línea de trabajo
Start in desktop/src/stores/chatStore.ts: inspect the pendingDeltaBySession buffer and flush points, then trace the thinking event handling at lines 1309–1328. Check MessageList.tsx around buildRenderModel to understand the render impact. Add coverage for batching and ordering, then run desktop tests and typecheck; done means thinking is batched, ordered before following text, and the render improvement is measured. An open pull request already targets this issue.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Part of #153.
Problem
Text and tool-input deltas are buffered for 50ms before they update the store, but thinking deltas are not. Each thinking event updates the store at once (desktop/src/stores/chatStore.ts:1309-1328). That creates a new messages array, which:
- makes
MessageListrebuild its whole render model (buildRenderModel,MessageList.tsx:1513); - re-renders every tool group through a new
toolResultMap.
With fast thinking output this happens dozens of times per second.
What to do
Buffer thinking deltas the same way as text deltas: the 50ms buffer around pendingDeltaBySession (chatStore.ts:272-301, flushed at :1265), or one rAF.
Two ordering rules:
- Flush pending thinking before the first text delta, a tool call, or turn end, so the order of thinking and text stays correct.
- Flush on session switch and disconnect, the same way text is flushed today (
chatStore.ts:768,:927).
Done when
- A test shows that several thinking deltas inside one window produce one store update, and that thinking still appears before the text that follows it.
- The PR includes a before/after React Profiler capture, or a render count, for a reply with a long thinking block.
- Desktop tests and typecheck pass.
- Lenguaje dominante
- TypeScript
- Estrellas
- 490
- Forks
- 47
- Merge medio
- 8 h 51 min
- PR fusionados (30 d)
- 91
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de GoDiao/dreamcoder
-
[good first issue] UX polish — friendlier copy for error toasts and empty statesPosiblemente ocupada @iamcipherdev la tomó hace 22 días. Abiertoarea:i18n area:ux difficulty:1 good first issue mentor-available
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
GoDiao/dreamcoder#9 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
-
Add more provider presets (Groq / OpenRouter / SiliconFlow / etc.)Quizá libre de nuevo @01iamysf la tomó hace 29 días y no hay ningún pull request abierto. Abiertoarea:desktop area:provider difficulty:1 good first issue mentor-available
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
GoDiao/dreamcoder#6 · 6 comentarios ·
Los mantenedores suelen responder en 1 día
-
enhancement rfc
Dificultad 5/5 Más de una semana Aptitud para principiantes 28/100
GoDiao/dreamcoder#241 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Composer shows a disabled send button instead of Stop while the CLI is startingPosiblemente ocupada @22chiragmodh la tomó hace 1 día. Abiertobug good first issue
GoDiao/dreamcoder#240 · 2 comentarios · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
area:desktop enhancement rfc
Dificultad 5/5 Más de una semana Aptitud para principiantes 8/100
GoDiao/dreamcoder#234 ·
Los mantenedores suelen responder en 1 día
Todos los issues de GoDiao/dreamcoder
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
langchain-ai/langchainjs#12157 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
activescott/home-infra-k8s-flux#511 ·
Los mantenedores suelen responder en 1 día
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Dificultad 1/5 Menos de una hora Aptitud para principiantes 72/100
lingdojo/kana-dojo#33753 · 1 comentario · 5 reacciones ·
Los mantenedores suelen responder en 1 día
-
android:player
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día
-
follow-up needs-triage S3: minor
Dificultad 1/5 1-3 horas Aptitud para principiantes 85/100
manaflow-ai/cmux#38032 · 1 comentario ·
Los mantenedores suelen responder en 1 día