Desktop: avatars blink (blank → gray → photo) whenever a new message group renders

Đang mở Phù hợp với người mới
#8,193 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

@brucesantos đang làm issue này rồi.

Từ ngày 9/10/2026.

  • #8195 của @brucesantos — đang mở
  • #8200 của @brucesantos — đang mở

Đánh giá

Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
67/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
react, rust
Lĩnh vực
desktop

Hướng nghiên cứu

Bắt đầu bằng cách đọc desktop/src/shared/ui/avatar.tsx và lần theo cách UserAvatar render Avatar và AvatarImage của Radix; báo cáo xác định tải trì hoãn, giải mã bất đồng bộ và kiểm tra tải mỗi lần mount của Radix là các nguyên nhân có thể xảy ra, không phải các cách khắc phục đã được xác minh. Tái hiện hiện tượng nhấp nháy khi một nhóm tác giả mới xuất hiện, sau đó xác minh rằng avatar đã được lưu trong bộ nhớ đệm hiển thị ngay ở khung hình đầu tiên mà không có chuyển đổi từ trống sang xám.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

Describe the bug
Every time a new author block mounts in the timeline, the avatar blinks. This happens for sends and incoming messages alike, and even when the image is already cached. In a 120 fps recording, the avatar is blank for one frame, a gray circle for one frame, then the photo (about 20 ms in total). It reads as a flicker every time someone starts a new group.

Steps to reproduce

  1. Open a DM or channel with avatars set.
  2. Send a message that starts a new author group, or receive one from someone else.
  3. Record the screen at a high frame rate and step through the frames where the row appears.

Expected behavior
An avatar that is already cached paints on the row's first frame.

Version and platform

  • Buzz version: dev build from main (a8fe2b6)
  • OS: macOS 26

Logs / additional context
Likely cause, not yet verified with a fix: UserAvatar uses Radix Avatar, and AvatarImage (@radix-ui/react-avatar 1.1.12) only renders the <img> after its own per-mount new Image() reports loaded. The image therefore never paints on the first frame, even from cache. desktop/src/shared/ui/avatar.tsx also sets loading="lazy" and decoding="async" on the image, which can add a frame of gray bg-secondary before the decoded photo appears.

Duplicates: none found.

Ngôn ngữ chính
Rust
Star
36.7k
Fork
4.9k
Merge trung bình
1 ngày 8 giờ
Pull request đã merge (30 ngày)
509

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của block/buzz

Tất cả issue của block/buzz

Issue tương tự

Thêm issue về Rust

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.