Skip to content

Improve chat typing responsiveness in long sessions - #210

Merged
hamzamerzic merged 1 commit into
mobius-os:mainfrom
hamzamerzic:fix/chat-composer-drawer-performance
Jul 24, 2026
Merged

Improve chat typing responsiveness in long sessions#210
hamzamerzic merged 1 commit into
mobius-os:mainfrom
hamzamerzic:fix/chat-composer-drawer-performance

Conversation

@hamzamerzic

Copy link
Copy Markdown
Collaborator

Summary

  • isolate live assistant source selection and rendering from composer-only updates
  • use native textarea content sizing when supported while keeping the existing fallback
  • progressively render drawer chat rows as the user scrolls

Why

Draft keystrokes currently rerun active-answer normalization and rendering, synchronously persist the same draft twice, force textarea layout measurement, and pay layout cost for every chat row mounted in the drawer. Long live responses and large histories can therefore make typing miss multiple frames.

The change gives these interactions separate ownership boundaries without changing chat or drawer behavior. The drawer remains one continuous history with no “recent” section or “show older” control.

In a long active chat, median input work fell from 42.8 ms to 13.3 ms and p95 from 110.8 ms to 20 ms. In a settled chat, median input work fell from 5.4 ms to 3.5 ms. Initial drawer descendants fell from about 2,883 to 604.

Validation

  • npm test (1,877 tests)
  • npm run build
  • browser benchmark on settled and long active chats
  • desktop and phone-width checks for composer growth and progressive drawer scrolling

Co-authored-by: Möbius Agent <mobius-agent@users.noreply.github.com>
@hamzamerzic hamzamerzic added area: ui User interface and interaction design bug Something isn't working labels Jul 24, 2026
@hamzamerzic
hamzamerzic merged commit 6d08b5e into mobius-os:main Jul 24, 2026
3 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: ui User interface and interaction design bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant