Repository navigation
Conversation
…he#8808) * feat: Add claude code metrics data integration (cherry picked from commit 78fd47d9e7647ff3ac8b886b2ddb45f1df55e2b4) (cherry picked from commit fa69cf9ec0fa0db6aa5fb0aec2e5ca2796355ffd) (upstream) story: XPL-551: Add license headers (cherry picked from commit a12ece8c1ca65ff27acc14d4630ac3d404d51ce8) * feat: Fix header validation issues, migrations and tests * feat: Update plugin table tests * feat: Update claude_code unit tests --------- Co-authored-by: tamas.albert <tamas.laczkoalbert@concentrix.com> Co-authored-by: Eldrick Wega <eldrick.wega@outlook.com>
ubaidkhalidarbisoft
approved these changes
Oct 2, 2026
8 tasks done
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
Retires our
claude(Claude Platform) plugin. This is phase 1b of the Claude convergence plan (claude-code-upstream-convergence-plan.md) and builds on #79, which brings in upstream'sclaude_code. Edly's Claude usage is covered by OTel, so the Platform setup is deleted rather than migrated. Nothing else changes:claude_otel,cursor,codex, the sharedaidomain package and every dashboard are untouched.Plugin removed
backend/plugins/claude/(28 files) andconfig-ui/src/plugins/register/claude/.ClaudeConfigregistration and itstable_info_test.goimport andFeedIn.connections.tsx:CLAUDE_PLUGINnow points atclaude_code, so the "Claude Code OTel" card sits next to the Claude Code tile. Without this the card falls through to the end of the A–N list.Core migration
20261002000001(retire claude platform plugin)Clears everything the plugin can leave behind, by exact name only. Every step is a no-op when there is nothing to remove, so it runs the same whether the connection was deleted first or not:
_tool_claude_connections(which holds the encrypted Admin key),_tool_claude_scopes,_tool_claude_scope_configs,_tool_claude_usageand_raw_claude_usage. Drops areIF EXISTS;_raw_claude_usageonly exists once a collection has run.ai_activitiesrows by_raw_data_table = '_raw_claude_usage'. Matching onprovider = 'claude'would be wrong:claude_otelwrites that provider too._devlake_collector_latest_stateand_devlake_subtask_statesrows.claudeentries from_devlake_blueprint_connectionsand_devlake_blueprint_scopes. A blueprint that still referenced the plugin would otherwise fail every run with an unknown-plugin error._devlake_migration_historyrows, matched on version and name, becausecursorandcodexreuse 2 of those version numbers. Reverting this PR then reruns the plugin's own migrations and recreates its tables.There is no
_tool_claude_%pattern anywhere:_tool_claude_code_otel_*(live data) and upstream's_tool_claude_code_*share that prefix.Test plan
claudedata everywhere the migration cleans: a connection, scope, scope config, 2 usage rows, a_raw_claude_usagetable with a row, 2ai_activitiesrows, collector and subtask state, and a blueprint connection and scope. Then rebuiltdevlakeandconfig-uiwithFORCE_MIGRATION=true:retire claude platform plugin), with no errors, and the server came up;clauderows out, 1 in) and the usual restart lock row;provider = 'claude'activities, all_tool_claude_code_otel_*tables and thecursor/codexhistory rows that share version numbers are unchanged.claude_codeandclaude_oteland noclaudeplugin.go veton the new migration, andgo testforclaude_code,claude_otelanddomainlayer/ai, pass. The fulltable_info_testneeds libgit2 1.3.0 and runs in CI.tsc, eslint and prettier pass, and no imports ofregister/clauderemain.Notes for reviewers
Edly-Claudeproject (which removes blueprint 10) and connectionclaude#1, and have that Admin key revoked in the Anthropic Console. The migration cleans up any leftovers either way, but the key should be revoked regardless.