Marketplace: derive the plugin slug from the id only (final review M4)
The slug (plugin marketplace "triple-c-<slug>", plugin tree
"plugins/<slug>/") was built from the editable display name. After a
rename the next sync registered the new marketplace, skipped the plugin
install because the state's commit matched, then removed the old
marketplace: the plugin was gone while the report said nothing changed.
marketplace_slug now takes the id only ("mp-<id8>"). With plugin state
kept per slug (I1), containers synced with the old "<name>-<id8>" slugs
move over on their next sync: plugins are installed under the new name,
the old copies uninstalled and the old registration dropped. A sync
script test covers that migration (it fails on the pre-I1 script).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -120,8 +120,8 @@ pub struct MarketplaceAccount {
|
||||
pub username: Option<String>, // resolved at sign-in, display only
|
||||
}
|
||||
pub struct Marketplace {
|
||||
pub id: String, // uuid
|
||||
pub name: String, // display; slug used in container paths
|
||||
pub id: String, // uuid; slug "mp-<id8>" used in container paths
|
||||
pub name: String, // display only (renaming never changes the slug)
|
||||
pub url: String, // https URL only
|
||||
pub branch: Option<String>,// None = remote default branch
|
||||
pub account_id: Option<String>, // None = anonymous
|
||||
|
||||
Reference in New Issue
Block a user