CPLAT-10756: fuzzy-search URL menu + newest-first timestamps for urls/files/changes#65
Merged
Merged
Conversation
…changes JIRA: https://sendbird.atlassian.net/browse/CPLAT-10756 Two related follow-ups to the status-aware URL menus: 1. Fuzzy search in the TUI URL menu. filterURLItems previously required each whitespace term to be a substring; now each term fuzzy-matches (chars in order) via the existing fuzzyMatch helper, matching the project picker's search feel — "grui" finds "internal/gui", space-joined terms narrow. 2. Timestamps + newest-first ordering for all three scopes (urls, files, changes), so the most recently referenced item shows first and every row carries a relative time. - extract.Item gains a Timestamp field. EntryURLs and SessionFilePaths now stamp each item with the latest entry it appeared in and sort most-recent first (sortItemsByTime); Block* single-message scopes leave it zero. - changes already carried timestamps; its sort switches from path order to newest-first (sortChangesByTime) for consistency. - TUI: URL/file rows render a dim timeAgo suffix (change rows already embed one in their label). - CLI picker: URL/file items sorted newest-first with a shortTimeAgo suffix (sortAndStampItems), matching the changes picker. - `--plain` output appends the timestamp as a trailing 4th tab column, so existing 3-column parsers keep working while order reflects recency. Covered by new extract tests (EntryURLs recency + refresh, block-scope zero timestamp, file-path recency stamping).
Kairo-Kim
approved these changes
Jul 9, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
JIRA: https://sendbird.atlassian.net/browse/CPLAT-10756
Two related follow-ups to the status-aware URL menus (#64).
1. Fuzzy search in the TUI URL menu
filterURLItemspreviously required each whitespace-separated term to be a substring. Now each term fuzzy-matches (its chars appear in order) via the existingfuzzyMatchhelper — matching the project picker's search feel:gruifindsinternal/gui2. Timestamps + newest-first ordering for all scopes (urls / files / changes)
The most recently referenced item now shows first, and every row carries a relative time.
extract.Itemgains aTimestampfield.EntryURLsandSessionFilePathsstamp each item with the latest entry it appeared in and sort most-recent first (sortItemsByTime). Single-messageBlock*scopes leave it zero (no entry context).changesalready carried timestamps; its sort switches from path order to newest-first (sortChangesByTime) for consistency.timeAgosuffix (change rows already embed one in their label).shortTimeAgosuffix (sortAndStampItems), matching the changes picker.--plain: timestamp appended as a trailing 4th tab column, so existing 3-column parsers keep working while order reflects recency.Testing
EntryURLsrecency + timestamp refresh, block-scope zero timestamp, file-path recency stamping.go build ./...,go test ./internal/extract/ ./internal/cli/ ./internal/tui/ ./internal/session/all green.ccx urls --plain/ccx files --plainemit the 4th timestamp column, newest-first.Notes
Builds on #64 (now merged to master); this branch is cut from master and contains only the fuzzy + timestamp changes.