@@ -264,13 +264,7 @@ func (f *filterableGroupList[T]) filterItemsInGroup(group Group[T], query string
264264 return matchedItems
265265 }
266266
267− // No matches, return all items without highlights
268− var allItems []T
269− for _, item := range group.Items {
270− f.setMatchIndexes(item, make([]int, 0))
271− allItems = append(allItems, item)
272− }
273− return allItems
267+ return []T{}
274268}
275269
276270func (f *filterableGroupList[T]) searchAllGroups(query string) []Group[T] {
@@ -319,6 +313,21 @@ func (f *filterableGroupList[T]) Filter(query string) tea.Cmd {
319313 })
320314 }
321315 }
316+
317+ // add any matching items from other groups
318+ allGroups := f.searchAllGroups(lowerQuery)
319+ for _, g := range allGroups {
320+ exists := false
321+ for _, existing := range newGroups {
322+ if existing.Section.ID() == g.Section.ID() {
323+ exists = true
324+ break
325+ }
326+ }
327+ if !exists {
328+ newGroups = append(newGroups, g)
329+ }
330+ }
322331 } else {
323332 // No group matches, search all groups
324333 newGroups = f.searchAllGroups(lowerQuery)