D1 / D2 · User Profile — mine vs theirs

One private account, three viewers. What's missing matters more than what's present — compare the friends row across all three.

Notes — the friends row is the whole point. Read it across the three frames: visible to me · hidden from my friend · hidden from a stranger. The RLS policy on friendships lets you read only rows you are a party to, so a friend list is readable by exactly one person — its owner.

That isn't a missing feature. Two overlapping friend lists would let a determined stranger correlate aliases across events, which is the single attack the alias system exists to prevent. It closes structurally, and the cost is permanent: "mutual friends" and "people you may know" can never be built, because the data behind them is unreadable by design. Any growth mechanic that needs a social graph to suggest strangers is off the table for good — worth deciding you're happy with that now rather than at Phase 5.

Frame C is a public URL a stranger reached deliberately. There is no way to reach it by browsing: search returns public accounts only, so a private handle can't even be confirmed to exist.