Report detailed session import error types (#33863)

## What changed

- Add stable `sub_error_type` values for external-agent session import failures,
  including detection, preparation, configuration, thread storage, and ledger
  update errors.
- Preserve these values through import results and analytics while leaving
  unrelated plugin and memory errors unchanged.

## Testing

- Verify that a missing session reports `session_not_detected` in both the
  completed import result and its analytics event.

GitOrigin-RevId: cbf1f52df4bb1ac107442c4afa0b130fa32ad0a5
This commit is contained in:
charlesgong-openai authored and copyberry committed 2026-07-17 16:14:36 +00:00
1 parent 20465d30ae
commit ab0f71aed6
5 files changed
+98 -18

No files matched your search

@@ -1243,6 +1243,12 @@ async fn external_agent_config_import_completed_tracks_analytics_event() -> Resu
assert_eq!(completed.item_type_results.len(), 1);
assert_eq!(completed.item_type_results[0].successes.len(), 0);
assert_eq!(completed.item_type_results[0].failures.len(), 1);
assert_eq!(
completed.item_type_results[0].failures[0]
.sub_error_type
.as_deref(),
Some("session_not_detected")
);
let event = wait_for_analytics_event(
&analytics_server,
@@ -1270,6 +1276,7 @@ async fn external_agent_config_import_completed_tracks_analytics_event() -> Resu
assert_eq!(event_params["type"], "SESSIONS");
assert_eq!(event_params["failure_stage"], "session_missing");
assert_eq!(event_params["error_type"], "session_missing");
assert_eq!(event_params["sub_error_type"], "session_not_detected");
assert!(event_params.get("raw_errors").is_none());
assert!(event_params.get("message").is_none());