A pinned-messages strip for a conversation — one chip per pin, as many as genuinely fit measured against the real container, the rest collapsed into a +N more panel, unpin behind a confirmation that fires once, and real loading/empty/error states.
npx shadcn@latest add @zyeon/pinned-messagesZyeon UI limits how often it can be asked, and Pinned Messages hasn't had its turn. Its source will show here once it has.