{"record":{"id":"bddc85d061887414","repo":"Hmbown/CodeWhale","slug":"installed-dsh-is-incompatible-with-this-integratio","errorCode":null,"errorMessage":"installed dsh is incompatible with this integration: {reason}","messagePattern":"installed dsh is incompatible with this integration: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/tui/src/integrations/cli.rs","lineNumber":516,"sourceCode":"            );\n            confirm(yes, \"Remove the DSH integration files?\")?;\n            let removed = dsh::remove(&paths)?;\n            println!(\"removed {} file(s)\", removed.len());\n            Ok(())\n        }\n    }\n}\n\nfn ensure_launchable_dsh(report: &DshStatusReport) -> Result<()> {\n    match &report.state {\n        DshIntegrationState::NotInstalled => {\n            anyhow::bail!(\n                \"dsh is not on PATH; install the official DeepSeek Harness first (npm i -g @deepseek-ai/dsh)\"\n            )\n        }\n        DshIntegrationState::Offline { reason } => anyhow::bail!(\"dsh is offline: {reason}\"),\n        DshIntegrationState::Incompatible { reason, .. } => {\n            anyhow::bail!(\"installed dsh is incompatible with this integration: {reason}\")\n        }\n        _ => Ok(()),\n    }\n}\n","sourceCodeStart":498,"sourceCodeEnd":521,"githubUrl":"https://github.com/Hmbown/CodeWhale/blob/8880682c63083a91624de936797efa3ce9e498fd/crates/tui/src/integrations/cli.rs#L498-L521","documentation":"`ensure_launchable_dsh` reports `Incompatible` when the detected dsh version is older than the release Codewhale verified, or the binary lacks the `--patch` flag the whole overlay mechanism depends on. `{reason}` names which condition failed. The integration only writes overlays launchable by the installed dsh, so it refuses rather than generating an overlay the installed dsh would ignore or reject.","triggerScenarios":"connect/update/launch/install-bundle with a dsh release predating the `--patch` seam, or older than the version baked into Codewhale's verified-release constant. Detection runs `dsh --version` and `--help`; a `--help` without `--patch` triggers this even if the version number looks new enough.","commonSituations":"Pinning dsh to an old version in CI; a system-wide old npm global install shadowing a newer one; a dsh fork or wrapper that drops the `--patch` flag; using a preview/renamed build whose help text differs from the verified release.","solutions":["Upgrade dsh to at least the verified release: `npm i -g @deepseek-ai/dsh@latest`","Check `codewhale integrations dsh status` — it prints the detected version and compatibility label","Confirm the new binary is the one being found first on PATH (`which -a dsh`)","If you must stay on old dsh, do not use this integration: the overlay would not be honored anyway"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"let detection = detect_now();\nif !matches!(detection.compatibility, dsh::DshCompatibility::Verified { .. }) {\n    eprintln!(\"upgrade dsh: npm i -g @deepseek-ai/dsh@latest\");\n    return Ok(());\n}","typeGuard":"fn dsh_compatible(report: &DshStatusReport) -> bool {\n    !matches!(\n        report.state,\n        DshIntegrationState::Incompatible { .. } | DshIntegrationState::NotInstalled | DshIntegrationState::Offline { .. }\n    )\n}","tryCatchPattern":null,"preventionTips":["Pin dsh at or above Codewhale's verified release in CI images","Check `codewhale integrations dsh status` after upgrading either dsh or Codewhale","Verify `dsh --help` still lists `--patch` before relying on the overlay mechanism"],"tags":["rust","dsh","version","compatibility","upgrade"],"backgroundTag":null,"analyzedSha":"8880682c63083a91624de936797efa3ce9e498fd","analyzedAt":"2026-08-16T11:31:27.956Z","schemaVersion":2},"datasetVersion":"2026-08-16T13:17:31.715Z"}