Live-refresh connectors after marketplace reinstall
Nightly Build / build (push) Successful in 6m45s
Nightly Build / build (push) Successful in 6m45s
After a reinstall the catalog entry carries new llm_short_description, icon and code. Previously the running servers (global + per-user) kept their old metadata and code until the next login. - Add refresh_connector_after_reinstall on Skald: re-snapshots the description from the catalog, reconciles local files on per-user connectors, and restarts both the global and per-user servers - Add set_description db accessor for mcp_global_servers - user_row_spec_resolved now injects the live catalog description (over the bare name) so user-runtime connectors show the right blurb - marketplace install() fetches a fresh feed instead of the browse cache, so a reinstall reflects the changed manifest immediately
This commit is contained in:
@@ -669,6 +669,17 @@ pub async fn user_row_spec_resolved(
|
||||
if let Some(catalog_name) = row.catalog_name.as_deref() {
|
||||
if let Ok(Some(entry)) = crate::db::mcp_catalog::get_by_name(registry, catalog_name).await {
|
||||
spec.tool_titles = crate::db::mcp_catalog::parse_tool_titles(entry.tool_meta_json.as_deref());
|
||||
// The catalog's `description` is the connector's `llm_short_description` —
|
||||
// the line the model reads when deciding whether to `activate_tools()` on
|
||||
// this server (see `render_mcp_list`). `user_row_spec` only had the bare
|
||||
// catalog name to fall back on; inject the real blurb here (this is the
|
||||
// "the caller injects it if richer" the sync builder defers to), and keep
|
||||
// the name when the catalog has none. Because it is read from the catalog
|
||||
// live, a marketplace reinstall that rewrites the description is reflected
|
||||
// the next time this spec is built.
|
||||
if let Some(desc) = entry.description {
|
||||
spec.description = Some(desc);
|
||||
}
|
||||
}
|
||||
}
|
||||
if let (Some(provider), Some(deliver), Some(refresh)) =
|
||||
|
||||
Reference in New Issue
Block a user