Skip to content

fix(app): improve mobile chat scroll behavior, compactness, and tool summaries#37

Open
Liddo-kun wants to merge 6 commits into
DNGriffin:devfrom
Liddo-kun:pr/mobile-ui-polish
Open

fix(app): improve mobile chat scroll behavior, compactness, and tool summaries#37
Liddo-kun wants to merge 6 commits into
DNGriffin:devfrom
Liddo-kun:pr/mobile-ui-polish

Conversation

@Liddo-kun
Copy link
Copy Markdown

@Liddo-kun Liddo-kun commented May 13, 2026

Issue for this PR

Closes #9

Issue #9 is pretty broad, and some of the requests there are general UX goals rather than concrete tasks. This PR closes it by addressing the concrete mobile UX problems I could reproduce and fix here: keyboard behavior, compact screen usage, clearer tool-call feedback, and Android menu behavior.

Type of change

  • Bug fix
  • New feature
  • Refactor / code improvement
  • Documentation

What does this PR do?

Alright, hi there, this is my first PR, so go easy on me. That said, I put a lot of work into this. It really improves the app experience. I did it to fix a few issues:

  • Unreliable scroll behavior when opening/closing the keyboard. This was really annoying: the text would not scroll consistently when popping up the keyboard. Now it doesn't scroll at all when popping up the keyboard, unless you're already at the bottom, where it stays nicely pinned at the bottom.

  • You did nice work here making the UI more compact, but you didn't go far enough! Now it's way more compact, without losing anything. Still readable. A lot of tiny tweaks here to make this happen.

  • The tab bar "hiding" when the keyboard pops up was causing issues, at least on Android. For example, you couldn't scroll all the way to the top of the chat properly when the keyboard was up. The simplest fix was to just make it so the tab bar is always visible. I compensated for this by making it even more compact. Now the session title just lives in the tab itself, along with the little context dingy and the three-dot menu.

  • Fixed the three-dot menu option "delete session" not working at all on Android. The popup was suppressed completely.

  • Opencode's old visibility of compacted Bash tool calls was not very useful. It just said Shell and some AI-hallucinated description of what it thought it was doing. Now it says Bash(actual command) with a little green dot/red dot/yellow dot Claude Code style. Just as compact, way more informative.

  • Same for editing or writing files. Now it reflects the actual tool used, apply_patch(), and notes which file was written and how many lines. Claude Code style.

Additional changes:

  • Adds a shared compact ToolSummaryTrigger path for tool call rows instead of duplicating summary markup per tool.
  • Keeps existing expanded tool details behavior intact while making the collapsed state more scannable.
  • Updates Android manifest behavior to use resize mode for keyboard interactions.
  • Skips native-mobile content-visibility placeholders for timeline turns, avoiding offscreen intrinsic-height estimates that caused bad scroll positions after keyboard open/close. I tested this and saw almost no RAM difference or perf improvement from using content-visibility.
  • Rechecks bottom-scroll state when the scroll container resizes, so the session stays anchored more reliably when the keyboard changes viewport height.
  • Keeps the normal session title/action bar hidden on mobile except while inline rename is active.
  • Deduplicates title/action rendering so desktop and mobile paths share more of the same behavior.
  • Adds the mobile prompt footer context-token display in the compact prompt controls.

How did you verify your code works?

  • bun run --cwd packages/ui typecheck
  • bun run --cwd packages/app typecheck
  • bun run --cwd packages/android build
  • bun run --cwd packages/app build
  • Pre-push repo typecheck hook passed when pushing pr/mobile-ui-polish.

Screenshots / recordings

Click either image to open it full-size.

Before After
Before tablet screenshot After tablet screenshot

Checklist

  • I have tested my changes locally
  • I have not included unrelated changes in this PR

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Mobile UX improvements and tuning

1 participant