iOS: clear and fill on a field over 120 characters leave old text behind (`estimatedDeleteCount` caps at 120)
Los mantenedores suelen responder en 1 día
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 76/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- ios, typescript
Línea de trabajo
Start in RunnerTests+TextEntry.swift and read clearTextInput and estimatedDeleteCount; then inspect the repair call in RunnerTests+TextTyping.swift. Reproduce with a 501-character value and verify that clear leaves the field empty and fill replaces the old value. The issue suggests bounding repeated delete bursts and using the existing single-burst behavior when the value cannot be read.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
On iOS, fill <target> "" and fill <target> "<text>" delete at most 120 characters of the existing value. A longer value is only partly cleared, so a clear leaves text behind and a fill appends to the leftover instead of replacing it.
Reproduce
- A SwiftUI
TextEditor(or any text field) holding 501 characters. fill <field> "": 381 characters remain.- Put 501 characters back, then
fill <field> "<500 chars>": the field ends at 1261 characters and the fill fails text entry verification.
Seen on agent-device 0.21.28, iOS 26.5 simulator. The same code is on main (e35d8de8).
Cause
RunnerTests+TextEntry.swift:
private func estimatedDeleteCount(for element: XCUIElement) -> Int {
let valueText = normalizedElementText(element.value)
let base = valueText.isEmpty ? 24 : (valueText.count + 8)
return max(24, min(120, base))
}
clearTextInput sends that many delete keys once and never checks whether the field is empty afterwards. With 501 characters:
- clear: 501 - 120 = 381 left
- fill: 381 + 500 = 881, then the repair in
RunnerTests+TextTyping.swift(clearTextInput(app: app, repairTarget)beforetypeText(expectedText)) deletes another 120 and retypes 500: 881 - 120 + 500 = 1261
Suggested fix
In clearTextInput, re-read the value after each delete burst and keep going until it reads empty, with a bounded number of rounds so a field that never reports its value can't loop forever. Size each burst from the value just read (keep a per-burst cap if long typeText strings are slow). When the value can't be read (secure fields, bullet-only values), fall back to the current single burst, or to select-all then delete.
- Lenguaje dominante
- TypeScript
- Estrellas
- 5.1k
- Forks
- 339
- Merge medio
- 11 h 54 min
- PR fusionados (30 d)
- 745
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
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 callstack/agent-device
-
Limrun iOS fill reports success but drops non-ASCII textPosiblemente ocupada @mvanhorn la tomó hace 2 días. Abiertobug ready-for-agent
Dificultad 2/5 1-3 horas Aptitud para principiantes 87/100
callstack/agent-device#3819 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
callstack/agent-device#1869 ·
Los mantenedores suelen responder en 1 día
-
iOS: XCTest runner publishes window-relative frames and shifted taps for an iPad app that does not fill the screen (Windowed Apps / Stage Manager)Posiblemente ocupada @thymikee la tomó hoy. Abiertoneeds-triage
Dificultad 4/5 3-5 días Aptitud para principiantes 20/100
callstack/agent-device#3899 ·
Los mantenedores suelen responder en 1 día
-
iOS 27: `_UIFloatingBarContainerView` still marks content "covered" when the container matches its parent or sits a few points below the viewport topPosiblemente ocupada @jonstuebe la tomó hace 1 día. Abiertobug
Dificultad 4/5 1-2 días Aptitud para principiantes 68/100
callstack/agent-device#3883 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 24/100
callstack/agent-device#3871 ·
Los mantenedores suelen responder en 1 día
Todos los issues de callstack/agent-device
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Nimblesite/SharpLsp#468 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
Bundled uv is never updated and trusts the compromised eMudhra certificatesPosiblemente ocupada @FabienDanieau la tomó hoy. Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
-
bg_wait's blocking mode (stopOnAttention: false) is under-documented and effectively undiscoverableAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
nicobailon/pi-subagents#3019 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
db-ux-design-system/core-web#8613 ·
Los mantenedores suelen responder en 1 día