Desktop: avatars blink (blank → gray → photo) whenever a new message group renders
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.
Đá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
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
- Open a DM or channel with avatars set.
- Send a message that starts a new author group, or receive one from someone else.
- 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
- Có Dockerfile hoặc tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- 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.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của block/buzz
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
block/buzz#8492 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Mobile: show Topic, then Purpose, when a channel has no DescriptionCó thể đã có người làm @chkdesign đã nhận 18 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
Maintainer thường phản hồi trong vòng 1 ngày
Issue tương tự
-
[cosmic-applet-battery] Division by zero displays NaN% when UPower reports max_brightness = 0Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
pop-os/cosmic-applets#1619 ·
Maintainer thường phản hồi trong vòng 3 ngày
-
binding:python bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
coollabsio/orbit#72 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
swc_common: Mark::least_ancestor never returns when the answer is the root mark (ANT-2026-JYDQGGRT)Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
swc-project/swc-ai-issues#137 ·
-
Synth suite fails unless run from the repo root: signal_flow's default machine path is cwd-relativeĐang mởbug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 80/100
Nimblesite/osprey#370 ·
Maintainer thường phản hồi trong vòng 1 ngày