Add optional release IDs to cloud plugin source locations (#61393)

## What changed

Add `release_id: Option<String>` to `PluginSourceLocation::Cloud` to carry the opaque release ID selected by the cloud catalog for a plugin declaration. Update catalog and discovery test fixtures to supply the new field, including a populated release ID in catalog reconciliation tests.

GitOrigin-RevId: 1d60e25bd5fb8efd84e6e825305ad68b847fc1ee
This commit is contained in:
Alex Zamoshchin
2026-11-13 22:44:55 +00:00
committed by copyberry
parent f5fb19fc4a
commit f941a5fb92
7 changed files with 8 additions and 0 deletions
+2
View File
@@ -77,6 +77,8 @@ pub enum PluginSourceLocation {
Cloud {
resource_uri: String,
bundle_uri: Option<String>,
/// Opaque release ID selected by the cloud catalog for this declaration.
release_id: Option<String>,
},
Executor {
/// Executor environment that owns `root`.
@@ -25,6 +25,7 @@ fn cloud_plugin(remote_id: &str) -> PluginCatalogEntry {
locations: vec![PluginSourceLocation::Cloud {
resource_uri: format!("plugin://{remote_id}"),
bundle_uri: None,
release_id: Some("release-1".to_string()),
}],
}
}
@@ -1155,6 +1155,7 @@ impl PluginProvider for Cloud {
locations: vec![PluginSourceLocation::Cloud {
resource_uri: "plugin://plugin_demo".into(),
bundle_uri: None,
release_id: None,
}],
}]
},
@@ -458,6 +458,7 @@ fn cloud_catalog() -> PluginCatalog {
locations: vec![codex_core_plugins::PluginSourceLocation::Cloud {
resource_uri: "plugin://plugin_remote".to_string(),
bundle_uri: None,
release_id: None,
}],
}],
..Default::default()
@@ -33,6 +33,7 @@ async fn merged_mcp_declarations_require_an_executor_location() -> anyhow::Resul
locations: vec![PluginSourceLocation::Cloud {
resource_uri: "plugin://plugin_example".to_string(),
bundle_uri: None,
release_id: None,
}],
};
let projections = v2_metadata_from_catalog(&entry, &config.features);
@@ -75,6 +75,7 @@ fn cloud_plugin(remote_id: &str) -> PluginCatalogEntry {
locations: vec![PluginSourceLocation::Cloud {
resource_uri: format!("plugin://{remote_id}"),
bundle_uri: None,
release_id: None,
}],
}
}
+1
View File
@@ -768,6 +768,7 @@ async fn run_cloud_plugin_projection_scenarios() -> anyhow::Result<()> {
locations: vec![PluginSourceLocation::Cloud {
resource_uri: "plugin://plugin_notes".into(),
bundle_uri: None,
release_id: None,
}],
}],
..Default::default()