Skip to content

Diagnose CI software-keyboard visibility timeouts #75

Open

Description

@R055LE

Observed

PR #74's CI run on 522baa9 failed in four existing TranscriptScreenTest methods:

  • rawTerminalKeyboardControlRestoresDismissedIme
  • smallCompletedTurnAndComposerRemainVisibleInConstrainedImeViewport
  • transcriptKeepsFirstTurnVisibleWhenImeInsetsArrive
  • transcriptKeepsLatestTurnVisibleWhenImeInsetsArrive

Failed run.

Retrieved with:

gh run view 36915845190 --repo R055LE/threadline --log-failed

Each failure was:

androidx.compose.ui.test.ComposeTimeoutException: Condition still not satisfied after 10000 ms

The source stacks point to the initial wait for WindowInsetsCompat.Type.ime() visibility at TranscriptScreenTest.kt:1016, :1537, and the shared helper at :1645. The failures happened before asserting transcript layout or restoring a deliberately dismissed keyboard.

The seven new recovery tests passed. JVM tests, lint, debug/release builds, and release shrinker checks also passed in this run.

Evidence and limits

  • The preceding PR revision's full CI run passed with the same UI and Android test sources. The final revision changed session-manager queue cleanup and a JVM regression only.
  • Two complete local Android suites passed, including one on 522baa9: 139 test cases, nine prerequisite/opt-in skips, zero failures.
  • All four failing methods then passed together on a restarted local API 35 emulator, once with show_ime_with_hard_keyboard=0 and again with it set to 1. The generated Pixel 6 AVD configuration, using CI's device/package arguments, has hw.keyboard=no. The hardware-keyboard policy hypothesis did not reproduce the failure.
  • CI has no retained Android reports or device-state capture (Retain CI test reports when verification fails #72). The failed log shows where the tests timed out, but not whether the device was locked, the activity had window focus, or the IME had a served input connection.

The same-commit rerun passed the full verification job, including the Android suite. The hosted failure was intermittent across these two attempts. Its cause remains unconfirmed; the green retry does not erase the failed attempt.

Requested boundary

  • Capture screen/keyguard state, window focus, IME state, and relevant device logs when an IME visibility wait fails.
  • Reproduce the missing initial keyboard on the CI emulator before choosing a product or harness change.
  • Preserve the real software-keyboard assertions. Do not replace them with a skipped check or an arbitrary longer timeout.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions