Hmbown/CodeWhale · error · anyhow::Error
staged bundle has no plugin.json, kimi.plugin.json, or plugi
Error message
staged bundle has no plugin.json, kimi.plugin.json, or plugin.toml
What it means
Error "staged bundle has no plugin.json, kimi.plugin.json, or plugin.toml" thrown in Hmbown/CodeWhale.
Source
Thrown at crates/tui/src/plugins/install/stage.rs:73
)
})
}
#[cfg(not(unix))]
fn ensure_plugins_dir(user_plugins_dir: &Path) -> Result<()> {
fs::create_dir_all(user_plugins_dir).with_context(|| {
format!(
"failed to create user plugins directory {}",
user_plugins_dir.display()
)
})
}
/// Validate the staged tree and return the manifest name + content hash.
pub(super) fn validate_staged(staged_path: &Path) -> Result<(String, String)> {
let manifest_path = crate::plugins::agent_plugin::resolve_manifest_path(staged_path)
.ok_or_else(|| {
anyhow::anyhow!("staged bundle has no plugin.json, kimi.plugin.json, or plugin.toml")
})?;
let validated = PluginManifest::validate_from_path(&manifest_path)
.map_err(|error| anyhow::anyhow!("staged plugin manifest failed validation: {error}"))?;
let name = validated.manifest.plugin.name.clone();
validate_skill_name_segment(&name).map_err(|error| {
anyhow::anyhow!("[plugin].name is not a safe directory name: {error:#}")
})?;
Ok((name, validated.content_hash))
}
/// Copy a local bundle directory into staging. Symlinks anywhere in the
/// source are rejected; a stale `.installed-from` marker is never copied so
/// provenance always reflects *this* install.
pub(super) fn stage_local_copy(
source: &Path,
user_plugins_dir: &Path,
max_size: u64,
) -> Result<StagedPlugin> {View on GitHub (pinned to 8880682c63)
When it happens
Trigger: Thrown at crates/tui/src/plugins/install/stage.rs:73 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of Hmbown/CodeWhale@8880682c63 (2026-08-16).
Data as JSON: /api/errors/47331a0724039a0e.
Report an issue: GitHub.