AI Assistant UX: auto-scroll + transcription status cleanup #84
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Fixed in v0.7.5-dev
1. Auto-scroll to latest message
Problem: New messages appear below the fold — user must scroll manually.
Root cause:
getElementByIdandscrollTopdon't work inside Dioxus shadow DOM.Fix: Render a sentinel
divat the bottom of the message list, usescrollIntoView({behavior:'smooth',block:'end'})which works inside shadow DOM. 50ms delay lets Dioxus finish rendering.2. "Transcribing..." stuck after voice input
Problem: After successful voice transcription, the help text stays "Transcribing..." forever.
Root cause: Help text was only reset on error paths, not on success.
Fix: Reset to default text immediately after successful transcription + 3s fallback timeout catches any stuck state.
Files changed
intelligence/ai/src/views/message_list.rs— sentinel div + scrollIntoViewintelligence/ai/src/views/input_area.rs— reset help text on successRemaining (deferred to #78)
Signed-off-by: mik-tf
Deployed in v0.7.5-dev. Auto-scroll via web_sys onmounted, Transcribing text reset. Tests 20/20.
Signed-off-by: mik-tf
Status: Transcribing text fixed, auto-scroll still broken
Fixed
Still broken: auto-scroll
Three approaches tried:
document.getElementById— can't reach inside shadow DOMdocument::evalwithscrollIntoViewsentinel — eval runs in wrong JS scopeweb_sys::Element::set_scroll_topviaonmounted— timing issue: effect fires before DOM update completesNext fix: use
request_animation_framebeforeset_scroll_topto ensure DOM is painted. This is pure web_sys (web_sys::window().request_animation_frame()). Bundled into #78.Signed-off-by: mik-tf
Complete in v0.7.1-dev: double-rAF + setTimeout auto-scroll (tracks streaming content length), trackbar with pause/play/stop, play/stop media controls in toolbar.
Signed-off-by: mik-tf