fix: enable filtering and fetch all members in user selection prompts

Summary

This MR addresses issue #8152 (closed) where type-to-search functionality was lost after migrating from survey to huh.

Changes

  • Enable .Filterable(true) on MultiSelect prompts to allow / key filtering
  • Implement proper pagination using gitlab.Scan to fetch all project members across all pages
  • Add loading spinner with progress feedback during member fetching
  • Update listProjectMembers helper to use pagination internally

Before

  • Only the first 100 members were loaded
  • Filtering was disabled
  • No feedback during loading

After

  • All members are fetched across all pages (e.g., 2847 members for gitlab-org/cli)
  • Users can press / to filter through the complete list
  • Loading spinner shows progress: "Loading project members..." → "Loaded 2847 members"

Known Limitation

Due to a limitation in huh v0.8.0, the filter input text is not visible while typing. However, the filtering functionality works - users can type to filter the list even though they can't see what they're typing. This is tracked as a separate issue in the huh library.

Testing

Tested with glab mr create on gitlab-org/cli project:

  • All 2847 members loaded (took ~20 seconds with loading spinner)
  • Found members beyond the first 100 using / filter
  • Loading spinner provides feedback during fetch

Closes #8152 (closed)

Merge request reports

Loading