- Shipped
- July 22, 2026 at 7:01 PM UTC
- Author
- kamo
- Commit
- 4793977
The tool-window title bar renders its icon from the window STORE props — ToolDock passes `avatarSrc={w.toolId === 'chat' ? w.props.avatarSrc : undefined}` and forces `icon` to undefined for chat. ChatTool resolved the real avatar via fetchMemberAvatar but wrote it only to React state, and the only tool:patchProps it dispatched carried sessionGuid. It also handed the avatar to an embedded ChatBox, whose avatar header exists solely on the non-embedded path. So the fetched photo reached no renderer, w.props.avatarSrc stayed undefined, and with both icon and avatar empty the header rendered neither element — a blank gap. - ChatTool: patch the resolved avatar back onto window props, mirroring the existing sessionGuid patch. - ChatTool: resolve the counterpart member for chats opened from the recent-chats list, which carry only a sessionGuid and so had no id to fetch by. Resolve by memberId rather than SessionMember.avatarUrl, which MediaService hardcodes null **************** since avatars resolve frontend-side. - ToolWindowShell: fall back to initials, and on img error, instead of rendering nothing when a chat window has no avatar (group chats, missing photo, in-flight). - useHexHeadEngine: stop fetching by d.userId, which is the WINDOW id, not a member — /api/security/members/w12 always 404s. Fetch only with a real member id and otherwise use the avatar the window already resolved.