--- id: NL-SPEC-7945430A type: spec title: Clipboard popup --- # Clipboard popup ## Behavior - History is ordered with pinned items first, then newest capture. - Search matches title and body without changing that ordering. - Rows distinguish image, color, URL, path, and text content. - Image rows show bounded asynchronous thumbnails with an image-icon fallback. - Valid hex and RGB colors show a swatch; malformed colors remain text. - Each row shows a concise title plus lowercase kind and age metadata. - Copy, paste, pin, and delete are compact icon actions. - Actions may appear on hover but remain keyboard reachable. - Pinned rows have a non-color-only selected indication. - Private mode remains directly visible and prevents new captures. - History persists atomically and remains capped. ## Constraints - Unreadable, binary, and oversized captures are ignored. - Malformed persisted history recovers to empty valid history without crashing. - Thumbnail failure does not remove access to an item or its actions. - Capture remains limited to the existing text watch and temporary image-path flow. - Existing clipboard and launcher-facing IPC remains available and stable. - State responses contain functional state, not view narration. ## Acceptance - Pure checks cover readability, type detection, color parsing, image paths, ordering, filtering, age buckets, and row shaping. - Runtime self-test passes. - A live visual check confirms recency, thumbnails and fallback, swatches, type icons, private mode, and keyboard-reachable actions.