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.
---
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.