Require existing lockfile for selective update
Silently falling back to empty would discard previously locked plugins.
Assisted-by: Claude Opus 4.6 via pi
diff --git a/src/main.rs b/src/main.rs
index 3883b0c..c1d9909 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -101,7 +101,7 @@ fn do_update(names: &[String]) -> Result<()> {
.into_iter()
.filter(|p| requested.contains(p.name.as_str()))
.collect();
- let lockfile = lockfile::load().unwrap_or_else(|_| lockfile::Lockfile { plugins: vec![] });
+ let lockfile = lockfile::load()?;
(plugins, lockfile)
};