commit d944684a06594ea8d990811812d3c032ffc8d05c from: Murilo Ijanc date: Sun Apr 26 02:20:21 2026 UTC accept null associated_groups on epics and iterations commit - 68d918221826c5615baf78e1b2acb3579bae7121 commit + d944684a06594ea8d990811812d3c032ffc8d05c blob - 450307cba41d678fd5dc8c231a18f64e1d9d26b3 blob + 33460cae6229af937a227be083fa490c839e56a3 --- shortcut_sdk.rs +++ shortcut_sdk.rs @@ -438,7 +438,15 @@ json_struct! { pub mention_ids: Vec, pub member_mention_ids: Vec, pub group_mention_ids: Vec, - pub associated_groups: Vec, + // Shortcut serializes the empty case as `null`, not `[]`. Modeled + // as Option> so: + // - the decoder accepts null without allocating an empty Vec, + // - the schema honestly distinguishes "absent" from "explicitly + // empty", + // - downstream code uses `.as_deref().unwrap_or(&[])` or matches + // None for the no-association case. + // EpicSlim and Iteration{,Slim} follow the same convention. + pub associated_groups: Option>, pub external_id: Option, pub position: i64, pub stories_without_projects: i64, @@ -486,7 +494,7 @@ json_struct! { pub mention_ids: Vec, pub member_mention_ids: Vec, pub group_mention_ids: Vec, - pub associated_groups: Vec, + pub associated_groups: Option>, pub external_id: Option, pub position: i64, pub stories_without_projects: i64, @@ -1785,7 +1793,7 @@ json_struct! { pub mention_ids: Vec, pub member_mention_ids: Vec, pub group_mention_ids: Vec, - pub associated_groups: Vec, + pub associated_groups: Option>, pub stats: IterationStats, pub created_at: String, pub updated_at: String, @@ -1809,7 +1817,7 @@ json_struct! { pub mention_ids: Vec, pub member_mention_ids: Vec, pub group_mention_ids: Vec, - pub associated_groups: Vec, + pub associated_groups: Option>, pub stats: IterationStats, pub created_at: String, pub updated_at: String,