{"record":{"id":"99498686a98f89d4","repo":"Hmbown/CodeWhale","slug":"no-bundle-is-installed-994986","errorCode":null,"errorMessage":"no bundle is installed","messagePattern":"no bundle is installed","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"crates/tui/src/integrations/dsh/mod.rs","lineNumber":817,"sourceCode":"        }),\n    );\n    Ok(bundle_record)\n}\n\n/// `dsh plugin --profile codewhale remove codewhale-dsh-bundle`, then delete\n/// only the Codewhale-owned bundle files. The DSH profile directory (and the\n/// app bundle link dsh recorded there) is DSH-owned and is left in place.\npub(crate) fn remove_bundle(\n    paths: &DshPaths,\n    detection: &DshDetection,\n    runner: &dyn DshRunner,\n) -> Result<Vec<PathBuf>> {\n    let mut doc = DshReceiptDocument::load(&paths.receipt)?;\n    let Some(mut record) = doc.current.take() else {\n        anyhow::bail!(\"DSH is not connected; nothing to remove\");\n    };\n    let Some(bundle_record) = record.bundle.take() else {\n        anyhow::bail!(\"no bundle is installed\");\n    };\n    let outcome = bundle::remove_from_profile(runner, detection)?;\n    let removed = bundle::remove_bundle_files(&paths.bundle_dir)?;\n    let now = now_rfc3339();\n    record.updated_at = now.clone();\n    doc.push(DshReceiptEntry {\n        event: DshReceiptEvent::RemoveBundle,\n        at: now,\n        codewhale_version: codewhale_version(),\n        dsh_version: detection.version.clone(),\n        dsh_home: detection.dsh_home.clone(),\n        overlay_sha256: Some(record.overlay_sha256.clone()),\n        skin_sha256: record.skin_sha256.clone(),\n        identity_summary: Some(identity_summary(&record.identity)),\n        permission_mode: Some(record.identity.permission_mode.as_str().to_string()),\n        note: Some(format!(\n            \"dsh plugin --profile {} remove {} (output sha256 {}); removed {} owned file(s); profile dir {} left in place (DSH-owned)\",\n            bundle::BUNDLE_PROFILE,","sourceCodeStart":799,"sourceCodeEnd":835,"githubUrl":"https://github.com/Hmbown/CodeWhale/blob/8880682c63083a91624de936797efa3ce9e498fd/crates/tui/src/integrations/dsh/mod.rs#L799-L835","documentation":"Error \"no bundle is installed\" thrown in Hmbown/CodeWhale.","triggerScenarios":"Thrown at crates/tui/src/integrations/dsh/mod.rs:817 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"8880682c63083a91624de936797efa3ce9e498fd","analyzedAt":"2026-08-16T11:31:27.956Z","schemaVersion":2},"datasetVersion":"2026-08-16T13:17:31.715Z"}