- Shipped
- September 7, 2026 at 8:15 PM UTC
- Author
- Kamo
- Commit
- 6e1610f
The board and the names come from two different places, and the names come second. The board is one request to SecurityService; the names are the shared member directory, which is a paged walk of the whole staff list. Between the two answers every row's profile is simply absent — and the fallback for an absent profile on these two surfaces is not a placeholder, it is the sentence "A former member". So the home widget and the achievements plate both announced the organisation's entire top ten as people who had left, then replaced them with their real names a moment later. Nothing about it failed. No request errored, nothing threw, and a screenshot taken a second later showed a perfectly correct board, which is why it survived. `useMemberProfiles` could not have been used correctly here: a missing entry and a directory that has not answered yet both read as `undefined`, so a caller whose fallback is a CLAIM about the person had no way to tell them apart. So the walk now reports whether it has finished, and `useMemberProfileLookup` hands that back beside the rows. Both boards hold their existing skeleton until it has. A FAILED walk settles too, so a directory that never answers leaves each surface exactly as it was rather than waiting forever. An empty id list resolves at once, so a board with nobody on it still goes straight to its empty state. `useMemberProfiles` keeps its signature and its nine other callers, all of which fall back to the raw id — true either way — and are untouched. The test holds the walk open and looks at the frame in between, which is the only way to see this; it also pins the claim itself for somebody who really has left, so a "fix" that deletes the fallback does not pass.