Skip to content

Conversation

@prosdev
Copy link
Collaborator

@prosdev prosdev commented Nov 24, 2025

Problem

Two issues with GitHub search UX discovered during dogfooding:

  1. No smart defaults: Users had to explicitly specify --state open to find open issues, making queries like "open issues that need implementation" return closed issues instead
  2. Duplicate results: Same issue appeared 3-5 times in search results

Solution

Smart Defaults

  • Default to --state open and --type issue
  • 90% of searches want open issues, matching behavior of Linear/GitHub
  • Users can still override with explicit flags

Deduplication

  • Added explicit deduplication using Set to track seen document IDs
  • Ensures each issue/PR appears exactly once in results

Changes

  • CLI (gh.ts): Added default values to option definitions
  • Indexer (indexer.ts): Added seenIds Set for deduplication
  • Docs: Updated command description to document defaults

Testing

✅ Default search returns only open issues (no closed)
✅ No duplicate results (tested with various queries)
✅ Can override: --state closed returns closed issues
✅ Can override: --type pull_request searches PRs
✅ All pre-commit hooks pass

Examples

# Before: Had to specify --state open, got duplicates
dev gh search "adapter" --state open --limit 5
# → 5 results, all duplicates of same issue

# After: Smart defaults, no duplicates
dev gh search "adapter" --limit 5  
# → 1 result, open issue

# Can still search closed
dev gh search "subagent" --state closed
# → Returns closed issues

- Default GitHub search to open issues (state: open, type: issue)
- Add explicit deduplication in search results using Set to track seen IDs
- Update command description to document default behavior
- Users can still override defaults with --state and --type flags

This improves UX by:
1. Eliminating need to specify 'open' in queries (defaults to open)
2. Fixing duplicate results bug where same issue appeared 3-5 times
3. Making search behavior more intuitive (90% of searches want open issues)

Tested:
- Default search returns only open issues
- No duplicate results
- Can override with --state closed or --type pull_request
@prosdev prosdev merged commit 3975303 into main Nov 24, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant