Hmbown/CodeWhale · error

the Codewhale bundle is still installed in DSH profile `{}`;

Error message

the Codewhale bundle is still installed in DSH profile `{}`; run `{CLI_COMMAND} remove-bundle` first

What it means

Error "the Codewhale bundle is still installed in DSH profile `{}`; run `{CLI_COMMAND} remove-bundle` first" thrown in Hmbown/CodeWhale.

Source

Thrown at crates/tui/src/integrations/dsh/mod.rs:519

        identity_summary: Some(identity_summary(&record.identity)),
        permission_mode: Some(record.identity.permission_mode.as_str().to_string()),
        note: None,
    });
    doc.current = Some(record.clone());
    doc.save(&paths.receipt)?;
    crate::audit::log_sensitive_event(
        &format!("integration.dsh.{}", event.as_str()),
        serde_json::json!({ "overlay_path": paths.overlay.display().to_string() }),
    );
    Ok(record)
}

/// Delete only Codewhale-owned files; keep the receipt history with a
/// terminal `remove` entry. Never touches `$DSH_HOME`.
pub(crate) fn remove(paths: &DshPaths) -> Result<Vec<PathBuf>> {
    let mut doc = DshReceiptDocument::load(&paths.receipt)?;
    if doc.current.as_ref().is_some_and(|r| r.bundle.is_some()) {
        anyhow::bail!(
            "the Codewhale bundle is still installed in DSH profile `{}`; run `{CLI_COMMAND} remove-bundle` first",
            bundle::BUNDLE_PROFILE
        );
    }
    let mut removed = Vec::new();
    for path in [&paths.overlay, &paths.skin, &paths.skin_preview] {
        match std::fs::remove_file(path) {
            Ok(()) => removed.push(path.clone()),
            Err(error) if error.kind() == std::io::ErrorKind::NotFound => {}
            Err(error) => return Err(error).with_context(|| format!("remove {}", path.display())),
        }
    }
    let previous = doc.current.take();
    let now = now_rfc3339();
    doc.push(DshReceiptEntry {
        event: DshReceiptEvent::Remove,
        at: now,
        codewhale_version: codewhale_version(),

View on GitHub (pinned to 8880682c63)

When it happens

Trigger: Thrown at crates/tui/src/integrations/dsh/mod.rs:519 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/1230238a0c78eda1. Report an issue: GitHub.