Repository navigation
Conversation
- Add a filter chip row under the bar's top chrome: All Types, Text, Rich Text, Link, Image, File, and Color. - Compose type filtering with the pinboard source and text search; quick-paste numbers follow the filtered list. - Reset the filter on every presentation; Escape clears selection, then search, then the filter, then closes the bar. - Add Command-Shift-F cycling and a "Cycle Type Filter" overflow-menu item. - Raise the bar's minimum height to 330 pt and derive the Settings slider range from BarResizeGeometry instead of hard-coded values. - Add ClipFilter unit tests; update README, CHANGELOG, and docs/llms.txt.
Codex Review Summary: ✅ CompletedThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1acd6048f0
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Changing the content-type filter clears the multi-selection and selects the first visible clip, but `clearMultiSelection()` had already stored the pre-filter selection as the range anchor. Shifting the anchor left range selection extending from the old clip, which could bulk-delete an unintended clip (PR momenbasel#115 review). Anchor on the newly selected clip instead.
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: df7ace4732
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Under an active content-type filter or search query, a newly captured clip was never selected, which is right while the user still has a visible selection. But when the narrowed list had no selection left - for example the last Image clip was deleted while filtering Image, then a new image was copied without reopening the bar - the strip showed cards with nothing selected, so Return and Command-C silently did nothing. Keep an existing visible selection, but let a capture that matches the active narrowing reclaim the selection when there is none (PR momenbasel#115 review).
|
@codex review |
|
Codex Review: Didn't find any major issues. Already looking forward to the next diff. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
@momenbasel could you take a look when you have a moment? Codex's automated review is clean on the latest commit ( This implements the quick content-type filter requested in #114: a chip row under the bar's top chrome ( Happy to rework the layout or keyboard behavior if you'd prefer a different approach. |
Closes #114
Summary
The Paste Bar could only be narrowed by pinboard source and free-text search — image clips have no searchable text, and typing "image"/"file" does not filter by kind. This adds a always-visible, one-click content-type filter row directly under the bar's top chrome.
Changes
ClipFilterhelper (Sources/Pesty/Store/ClipFilter.swift): pure filtering (type before search, trimmed/lowercased query), per-type counts, available types, and keyboard-cycle rules. Unit-tested; it never touches the store singleton.ClipboardStore: addstypeFilter: ClipType?,sourceItems,typeCounts,availableTypes;visibleItemsnow composessource → type → search. Changing the filter clears multi-select and selects the first visible clip;addCapturedno longer selects a clip the active filter hides; the filter resets inprepareForBarPresentation(); addscycleTypeFilter().ClipTypeFilterBar(Sources/Pesty/UI/ClipTypeFilterBar.swift): horizontal chip row under the top chrome withAll Types+ the sixClipTypecases. Selected chips use the bar's established white-pill style plus the type's accent for icon/border (not as a fill, for contrast); types absent from the current collection are disabled; the selected chip stays enabled so a stranded filter can be tapped off.BarView: inserts the chip row between the top chrome and the strip, updates the empty state to cover empty collection / filter-only / search-only / filter+search, and adds a "Clear Type Filter" recovery action. The overflow menu gains "Cycle Type Filter".AppController:⌘⇧Fcycles the filter; Escape now clears multi-select → search → filter → hide in both keyboard paths.BarResizeGeometryconstants instead of hard-coded300...720.ClipFilterTests; README feature bullet + shortcut table, CHANGELOG "Unreleased" section, anddocs/llms.txtupdated.Testing
swift build --build-tests— passes, no new warnings.swift test— 20 tests, 0 failures (13 new filter tests + 7 existing).Notes
ClipType), not by file extension or UTI.Imagemeans copied image data; a Finder-copied image file is recorded asFile(called out in the Image tooltip, README, and the issue).