Readonly because the chat area hands over the window store's own pin array by reference — a stable reference between real changes is what keeps this input from re-firing every change detection cycle. The panel renders it; it never mutates it.
IDs currently being removed (for fade-out animation)
Strip markdown to plain prose for card preview
True during the panel's first open, while its rows are being fetched.
Pins are no longer loaded during conversation open — the open path reads only a count — so the panel can now render before its contents exist.