Skip to content

Conversation

@Timpan4
Copy link
Contributor

@Timpan4 Timpan4 commented Nov 17, 2025

Fixes #102

Changes

Core Functionality

  • Match all project hashtags: maniphest search now matches against all configured hashtags/slugs for a project, not just the primary name
  • Switched to project.query API: Uses project.query() instead of project.search() to access the full slugs array
  • Deduplication: Automatically prevents duplicate results when multiple hashtags of the same project match a wildcard pattern

User Experience

  • Case-insensitive matching: Works with any casing (e.g., devex, DevEx, DEVEX)
  • Better error messages: Suggestions now show the matched slug in parentheses:
    ERROR - Project 'devx' not found. Did you mean: Developer-Experience (devex)?
    
  • Primary name always searchable: Can search by project name OR any hashtag

Bug Fixes

  • Fixed KeyError in CLI when running maniphest search (changed to use .get() instead of direct dict access)

Examples

# Before: Only primary name worked
$ phabfive maniphest search 'developer-experience'  #
$ phabfive maniphest search 'devex'                 # ✗ Error

# After: All hashtags work
$ phabfive maniphest search 'developer-experience'  #
$ phabfive maniphest search 'devex'                 #
$ phabfive maniphest search 'dev-exp'               #

# Clear suggestions with matched slugs
$ phabfive maniphest search 'devx'
ERROR - Project 'devx' not found. Did you mean: Developer-Experience (devex)?

Technical Details

  • Uses project.query() API which returns all slugs in a slugs array
  • Maintains backward compatibility - all existing functionality works unchanged

- Enhance project search to support multiple slugs and hashtags
- Implement case-insensitive matching across project names and slugs
- Add more robust wildcard and exact match handling
- Improve logging and error handling for project resolution
- Optimize project fetching using project.query method
- Remove redundant pagination logic
- Add support for searching projects by various identifiers
@Timpan4 Timpan4 requested a review from holmboe November 17, 2025 14:17
Copy link
Contributor

@holmboe holmboe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@Timpan4 Timpan4 merged commit 42ff9b5 into master Nov 17, 2025
15 checks passed
@Timpan4 Timpan4 deleted the refactor-project-search-resolution branch November 17, 2025 15:13
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.

Board matching should support additional hashtags

3 participants