You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Composer input is covered by the system navigation bar on gesture/3-button nav devices #6
On Android devices with gesture navigation (full-screen gestures) or 3-button navigation, the prompt composer at the bottom of a session is partially covered by the virtual navigation bar. The text field and the send button are hard to see and tap.
This happens because the app calls enableEdgeToEdge() (content extends behind the system bars) while the composer's bottom container only applies imePadding() — which handles the software keyboard but not the system navigation bar insets.
Steps to reproduce
Install the Android client (v1.0.1) and connect it to a Codeg server.
Open or start a session.
With the keyboard closed, look at the composer pinned at the bottom of the screen.
On a device with gesture navigation (e.g. Xiaomi MIUI/HyperOS with full-screen gestures — especially with the gesture hint bar enabled), the lower part of the composer is hidden behind the gesture bar. The send button and part of the text field become hard to reach.
Expected behavior
The composer (text field + send button) should sit fully above the system navigation bar with no overlap, regardless of the navigation mode.
Actual behavior
The bottom of the composer is covered by the virtual navigation bar when the keyboard is closed. When the keyboard opens, imePadding() kicks in and the overlap disappears — confirming the issue is specifically the missing navigation-bar insets handling.
Environment
Device: Xiaomi (MIUI/HyperOS, gesture navigation with visible gesture hint bar)
Android: 12+ (app minSdk 31, targets API 36)
App version: v1.0.1
More affected devices: any device with on-screen navigation (Samsung, Pixel gesture mode, etc.)
Root cause (from source)
MainActivity.kt: calls enableEdgeToEdge() — UI extends behind system bars by design.
SessionDetailScreen.kt bottomBar: Column(Modifier.imePadding()) — no navigationBarsPadding(), so the composer ignores navigation-bar insets.
AgentDetailScreen.kt: Column(Modifier.fillMaxSize().imePadding()) — same issue in the agent editor (the bottom save/action area).
Proposed fix
Add navigationBarsPadding() after imePadding() on both bottom-anchored containers. See PR #5.
Activity