feat: Add project aliases for renamed project matching#102
Conversation
When projects are renamed, historical data stored under the old name doesn't match new filters. This adds a project_aliases table and modifies build_where_clause() to automatically expand aliases to OR clauses, making `--project genai-rs` match both "genai-rs" AND "rust-genai". Changes: - Add project_aliases table with COLLATE NOCASE for case-insensitive matching - Add storage methods: add/remove/get/resolve project aliases - Modify build_where_clause() to expand aliases in all project-filtered queries - Add MCP tools: add_project_alias, remove_project_alias, list_project_aliases - Add CLI subcommands: alias add/remove/list - Add 15 tests for alias functionality Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Code ReviewSummaryThis PR adds a project alias feature that allows mapping old project names to new ones (e.g., after a repo rename), so queries can match historical data stored under different project paths. It includes storage layer, MCP tools, CLI commands, migration, and comprehensive tests. Issues FoundCriticalNone Important
Suggestions
VerdictREQUEST_CHANGES - One query function bypasses the alias expansion logic, creating inconsistent behavior. Automated review by Claude Code |
…ansion Address reviewer feedback: classify_sessions was manually building project filter without using build_where_clause(), bypassing alias expansion logic. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Feedback AddressedImplemented
Skipped
|
Code ReviewSummaryThis PR adds a Issues FoundCriticalNone Important
Suggestions
Previously Addressed (Filtered)
VerdictREQUEST_CHANGES - The Automated review by Claude Code |
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Code ReviewSummaryThis PR adds a Issues FoundCriticalNone Important
Suggestions
Previously Addressed (Filtered)
VerdictREQUEST_CHANGES - The Automated review by Claude Code |
Code ReviewSummaryThis PR adds a Issues FoundCriticalNone Important
Suggestions
Previously Addressed (Filtered)
VerdictREQUEST_CHANGES - The Automated review by Claude Code |
Summary
project_aliasestable for mapping alias names to historical project pathsbuild_where_clause()to expand aliases to OR clauses in all project-filtered queriesCOLLATE NOCASEExample: When a project is renamed from
rust-genaitogenai-rs:agent-session-analytics-cli alias add genai-rs rust-genaiNow
--project genai-rsmatches both "genai-rs" AND "rust-genai" in all queries.Test plan
make check(410 tests pass)Fixes #71
🤖 Generated with Claude Code