{"record":{"id":"35f0e4e0c88b083e","repo":"Hmbown/CodeWhale","slug":"dsh-is-not-connected-nothing-to-remove","errorCode":null,"errorMessage":"DSH is not connected; nothing to remove","messagePattern":"DSH is not connected; nothing to remove","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"crates/tui/src/integrations/dsh/mod.rs","lineNumber":814,"sourceCode":"            \"bundle_dir\": paths.bundle_dir.display().to_string(),\n            \"patch_sha256\": bundle_record.patch_sha256,\n            \"app_bundle\": app.package_name(),\n        }),\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()),","sourceCodeStart":796,"sourceCodeEnd":832,"githubUrl":"https://github.com/Hmbown/CodeWhale/blob/8880682c63083a91624de936797efa3ce9e498fd/crates/tui/src/integrations/dsh/mod.rs#L796-L832","documentation":"Error \"DSH is not connected; nothing to remove\" thrown in Hmbown/CodeWhale.","triggerScenarios":"Thrown at crates/tui/src/integrations/dsh/mod.rs:814 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"}