feat(memory-server): switch all reads to external_key/source_type#251
Merged
Hyperkid123 merged 1 commit intoJun 17, 2026
Merged
Conversation
RHCLOUD-48378 Stage 3 of the zero-downtime migration. All WHERE clauses, JOINs, and GROUP BYs now use external_key/source_type instead of jira_key. MCP tools (task_get, task_update, task_remove, slack_notify) accept both external_key+source_type (preferred) and jira_key (fallback). REST API endpoints (delete, unarchive, analytics, slack lookup) use external_key columns. Response helpers include new fields alongside existing jira_key for backward compatibility. Dashboard types updated with optional new fields. 14 new tests verify the read switchover. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
7c13515 to
3146c20
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Stage 3 of the 5-stage zero-downtime migration (RHCLOUD-48378).
Switches all read paths (WHERE, JOIN, GROUP BY) from
jira_keytoexternal_key/source_type. Stage 2 (dual-write, PR #249) guaranteesexternal_key = jira_keyfor all rows, so this is a safe cutover.Changes
task_get,task_update,task_remove,slack_notify): Accept bothexternal_key+source_type(preferred) andjira_key(backward compat fallback)api.py): Task delete/unarchive, slack notification lookup, and all 6 analytics queries switched toexternal_keycolumns_task(),_cycle(),_memory()now includeexternal_key,source_type,source_url,artifactsalongside existingjira_keytypes.ts): Additive optional fields onTask,Memory,CycleEntry,TicketEntrytest_read_switchover.py): Verify dual-lookup, fallback, analytics, slack cooldown, and response field coverageBackward compatibility
jira_keycontinue to work unchangedjira_key) and new (external_key) fieldsTest plan
python -m pytest tests/ -v)npm run build)/api/tasks,/api/analytics,/api/costsresponses include new fields🤖 Generated with Claude Code