Attribute external agent imports by provider (#34451)

## What changed

- Add an optional opaque `providerId` to `externalAgentConfig/import` for analytics attribution, independently of the `migrationSource` selector.
- Include the provider ID in completed-import and import-failure analytics events.
- Have TUI imports identify their selected migration source as the provider.

## Testing

- Cover provider attribution in app-server import completion and failure tests and analytics serialization tests.

GitOrigin-RevId: 0ee7313a43652e5305939c526bf6b903a79334ad
This commit is contained in:
charlesgong-openai authored and copyberry committed 2026-07-21 02:59:22 +00:00
1 parent 3bc49e1721
commit a30aee8d90
15 files changed
+71 -2

No files matched your search

@@ -3801,6 +3801,7 @@ async fn reducer_ingests_external_agent_config_import_completed_fact() {
ExternalAgentConfigImportCompletedInput {
import_id: "import-1".to_string(),
source: "app_server".to_string(),
provider_id: "test-provider-42".to_string(),
item_type: "PLUGINS".to_string(),
success_count: 2,
failed_count: 1,
@@ -3818,6 +3819,7 @@ async fn reducer_ingests_external_agent_config_import_completed_fact() {
"event_params": {
"import_id": "import-1",
"source": "app_server",
"provider_id": "test-provider-42",
"type": "PLUGINS",
"success_count": 2,
"failed_count": 1,
@@ -3835,6 +3837,7 @@ fn external_agent_config_import_failure_event_serializes_expected_shape() {
event_params: CodexOnboardingExternalAgentImportFailureMetadata {
import_id: "import-1".to_string(),
source: "app_server".to_string(),
provider_id: "test-provider-42".to_string(),
item_type: "PLUGINS".to_string(),
failure_stage: "plugin_import".to_string(),
error_type: "plugin_import".to_string(),
@@ -3853,6 +3856,7 @@ fn external_agent_config_import_failure_event_serializes_expected_shape() {
"event_params": {
"import_id": "import-1",
"source": "app_server",
"provider_id": "test-provider-42",
"type": "PLUGINS",
"failure_stage": "plugin_import",
"error_type": "plugin_import",
@@ -3874,6 +3878,7 @@ async fn reducer_ingests_external_agent_config_import_failure_fact() {
ExternalAgentConfigImportFailureInput {
import_id: "import-1".to_string(),
source: "app_server".to_string(),
provider_id: "test-provider-42".to_string(),
item_type: "PLUGINS".to_string(),
failure_stage: "plugin_import".to_string(),
error_type: "plugin_import".to_string(),
@@ -3892,6 +3897,7 @@ async fn reducer_ingests_external_agent_config_import_failure_fact() {
"event_params": {
"import_id": "import-1",
"source": "app_server",
"provider_id": "test-provider-42",
"type": "PLUGINS",
"failure_stage": "plugin_import",
"error_type": "plugin_import",