feat: show model in working indicator and fix streaming bottom jitter

- Working indicator shows provider icon and model name with the live
  status (e.g. 'Fable 5 is reading file'), localized via
  chat.statusRow.modelStatus
- Pin auto-follow to the exact fractional scroll maximum and re-pin on
  every passive follow instead of skipping within tolerance
- Round message text line-height to whole pixels so streamed content
  grows on the pixel grid; kills the 1px vertical jitter of
  bottom-anchored rows during streaming
This commit is contained in:
Bohdan Triapitsyn
2026-07-19 22:58:28 +03:00
parent 8e718ee58c
commit 4be6854ba5
15 changed files with 84 additions and 11 deletions
+10
View File
@@ -138,6 +138,16 @@ textarea[data-chat-input="true"]:focus-visible {
cursor: not-allowed;
}
/* Fractional line heights (1.625 × font-size) make streamed content grow by
sub-pixel amounts while scroll positions quantize to the device-pixel grid.
The residue accumulates and bottom-anchored rows (status indicator) creep
and snap by 1px per few lines during streaming. Rounding the line height to
whole pixels keeps content growth on the pixel grid. */
.message-content-text.leading-relaxed,
.message-content-text .leading-relaxed {
line-height: round(1.625em, 1px);
}
:root.light .message-content-text::selection,
:root.light .message-content-text ::selection {
background: color-mix(in srgb, var(--interactive-border-focus) 18%, transparent);