Android: open leaves the real keyboard active when the test IME helper disappears while the daemon is alive
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 74/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- android, typescript
Línea de trabajo
Empieza leyendo dist/src/ime-state.js, especialmente ensureHelperInstalled y su caché a nivel de módulo; sigue dónde se llama desde open y revisa las pruebas relacionadas. Reproduce el problema abriendo una aplicación Android, desinstalando el IME auxiliar de pruebas mientras el daemon sigue activo y volviendo a abrirla. El trabajo estará terminado cuando se vuelva a comprobar si falta el auxiliar y se reinstale, o cuando open emita una advertencia o falle en lugar de indicar que todo ha salido bien mientras el teclado real está activo.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Summary
On Android, the daemon remembers per device that the test IME helper (com.callstack.agentdevice.imehelper) is installed, and never re-checks it during its lifetime. If the helper disappears from the device while the daemon is still alive, the next open leaves the real keyboard active and reports success, with no warning.
Reproduction
agent-device 0.21.24, Android emulator API 32, single daemon started by the first command.
npx agent-device open com.android.settings --platform android
adb shell settings get secure default_input_method # com.callstack.agentdevice.imehelper/.TestInputMethodService
npx agent-device close
adb uninstall com.callstack.agentdevice.imehelper # Success
npx agent-device open com.android.settings --platform android # "Opened: com.android.settings", rc 0
adb shell settings get secure default_input_method # com.google.android.inputmethod.latin/com.android.inputmethod.latin.LatinIME
With a field focused after the second open:
keyboard status:Keyboard visible: yes,Input method: com.google.android.inputmethod.latinsnapshot --json:keyboard.kindisvisible
After daemon stop, the same open reinstalls the helper and selects it (TestInputMethodService, Keyboard visible: no, kind: absent).
Expected
open either reinstalls the helper when it is missing, or fails / warns that the test IME could not be selected.
Likely cause
dist/src/ime-state.js: ensureHelperInstalled is called with a module-level cache: new Set(). Once a device id is in the set, the installation is not checked again.
When it happens in practice
An AVD wiped (-wipe-data) or recreated under the same serial (emulator-5554), or the helper uninstalled, then reopened within the daemon's idle timeout (~5 min after the last close). A plain emulator restart with the helper still installed does not trigger it.
- Lenguaje dominante
- TypeScript
- Estrellas
- 5k
- Forks
- 334
- Merge medio
- 11 h 48 min
- PR fusionados (30 d)
- 605
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
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
callstack/agent-device#3353 ·
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: fill rejects the right text as `TEXT_ENTRY_MISMATCH` when the focused field moves while typing (since 0.21.25)Posiblemente ocupada @Lanchez la tomó hoy. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 42/100
callstack/agent-device#3595 ·
Los mantenedores suelen responder en 1 día
-
`fold` always fails on Xcode 27.1 RC: its pose check calls `devicectl device motion hinge-angle`, which this devicectl doesn't havePosiblemente ocupada @thymikee la tomó hoy. Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
callstack/agent-device#3581 ·
Los mantenedores suelen responder en 1 día
-
Type the rect-requiring resolution rows as ref-bearing instead of proving it by commentPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertoready-for-agent refactor
Dificultad 4/5 3-5 días Aptitud para principiantes 22/100
callstack/agent-device#3576 ·
Los mantenedores suelen responder en 1 día
Todos los issues de callstack/agent-device
Issues similares
-
Add: VIVE TVAbiertoapproved check:passed streams:add
Dificultad 1/5 Menos de una hora Aptitud para principiantes 72/100
iptv-org/iptv#55293 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
bug needs-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Fission-AI/OpenSpec#2084 ·
Los mantenedores suelen responder en 2 días
-
Contrib indemnité de départ à la retraite : faire le pont avec le simulateur sur la page génériqueAbiertoP1
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
SocialGouv/code-du-travail-numerique#7561 ·
Los mantenedores suelen responder en 1 día
-
beginner bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
hiero-ledger/hiero-sdk-js#4517 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
kubernetes-sigs/headlamp#7950 ·
Los mantenedores suelen responder en 3 días