Preserve plugin install failure subtypes during imports (#33182)

## What changed

- Add `subErrorType` to external agent config import failures and carry it through progress and completion notifications, persisted import histories, and analytics.
- Expose plugin store failure subtypes from `PluginInstallError` so manual installs and imported plugins report details such as `failed_to_copy_plugin_file` while failures without a subtype remain `null`.
- Keep existing persisted import records compatible by defaulting the new field when it is absent.

## Testing

- Cover store I/O subtype extraction, analytics serialization, persisted import histories, and migration notification fixtures.

GitOrigin-RevId: ec1a85623fc826cbd7cfe9f55c2dd2bc86665937
This commit is contained in:
charlesgong-openai authored and copyberry committed 2026-07-14 22:21:27 +00:00
1 parent 44954d1b4b
commit 3fae30dd85
22 files changed
+114 -29

No files matched your search

+2
View File
@@ -1004,6 +1004,7 @@ pub(crate) struct CodexPluginInstallFailedMetadata {
pub(crate) plugin: CodexPluginMetadata,
pub(crate) source: crate::facts::PluginInstallSource,
pub(crate) error_type: String,
pub(crate) sub_error_type: Option<String>,
}
#[derive(Serialize)]
@@ -1037,6 +1038,7 @@ pub(crate) struct CodexOnboardingExternalAgentImportFailureMetadata {
pub(crate) item_type: String,
pub(crate) failure_stage: String,
pub(crate) error_type: String,
pub(crate) sub_error_type: Option<String>,
pub(crate) product_client_id: Option<String>,
}