ui.type splits astral characters; add ui.paste
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 55/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- typescript
Línea de trabajo
Busca dónde ui.type y ui.press llaman a la entrada simulada de OpenTUI (mockInput.typeText) y haz que type itere sobre puntos de código en lugar de unidades de código UTF-16. Después localiza cómo se registran los subcomandos existentes --command.ui.* y añade ui.paste reflejándolos, delegando en mockInput.pasteBracketedText. Se considera terminado cuando escribir un emoji como "😀" llega al terminal como un solo carácter y un pegado emite un único evento de pegado entre corchetes.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Drive 2.1.3 (b805763). Two input gaps came up while driving the TUI's embedded terminal pane:
-
ui.typesplits astral characters. The frontend passes text to OpenTUI'smockInput.typeText, which doestext.split(""). Emoji and other non-BMP characters are sent as two lone UTF-16 surrogates.ui.press("😀")sends the whole character, so probes have to split strings withArray.fromand route characters above one code unit throughpress. Expected:typeiterates code points, or grapheme clusters. -
No paste. Every typed character is its own key event. In the terminal pane each one becomes its own WebSocket frame and daemon request, about 40 bytes per second end to end. A real paste arrives as one bracketed-paste event. OpenTUI's mock input already has
pasteBracketedText. Wish:ui.paste(text)and--command.ui.paste, so probes can exercise paste paths and large inputs without waiting minutes.
- Lenguaje dominante
- TypeScript
- Estrellas
- 38
- Forks
- 8
- Merge medio
- 4 h 42 min
- PR fusionados (30 d)
- 11
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 anomalyco/opencode-drive
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
anomalyco/opencode-drive#107 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
anomalyco/opencode-drive#102 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
anomalyco/opencode-drive#132 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 3/5 Medio día Aptitud para principiantes 58/100
anomalyco/opencode-drive#120 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
anomalyco/opencode-drive#119 · 1 comentario ·
Los mantenedores suelen responder en 1 día
Todos los issues de anomalyco/opencode-drive
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
area:desktop area:ui bug platform:macos
Dificultad 2/5 1-3 horas Aptitud para principiantes 67/100
anthropics/claude-code#106183 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
-
Dificultad 1/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día
-
reproduced
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
anomalyco/opencode#60558 · 1 comentario ·
Los mantenedores suelen responder en 1 día