{"record":{"id":"4ae0827533efa366","repo":"Hmbown/CodeWhale","slug":"dsh-is-not-installed","errorCode":null,"errorMessage":"dsh is not installed","messagePattern":"dsh is not installed","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/tui/src/integrations/dsh/mod.rs","lineNumber":697,"sourceCode":"    })?;\n    if !report.state.launchable() {\n        match &report.state {\n            DshIntegrationState::Connected { .. } | DshIntegrationState::StaleVersion { .. } => {}\n            DshIntegrationState::Disabled { .. } => {\n                anyhow::bail!(\n                    \"DSH integration is disabled; run `{CLI_COMMAND} enable` to launch again\"\n                )\n            }\n            DshIntegrationState::StaleConfig { reason, .. } => {\n                anyhow::bail!(\n                    \"DSH overlay is stale ({reason}); run `{CLI_COMMAND} update` before launching\"\n                )\n            }\n            DshIntegrationState::Incompatible { reason, .. } => {\n                anyhow::bail!(\"installed dsh is incompatible: {reason}\")\n            }\n            DshIntegrationState::Offline { reason } => anyhow::bail!(\"dsh is offline: {reason}\"),\n            DshIntegrationState::NotInstalled => anyhow::bail!(\"dsh is not installed\"),\n            DshIntegrationState::Detected { .. } => {\n                anyhow::bail!(\"DSH is detected but not connected; run `{CLI_COMMAND} connect`\")\n            }\n        }\n    }\n    let binary = report\n        .detection\n        .binary\n        .clone()\n        .ok_or_else(|| anyhow::anyhow!(\"dsh binary path is unknown\"))?;\n    let bundle_installed = record.bundle.is_some();\n    let profile = profile_override.unwrap_or(if bundle_installed {\n        bundle::BUNDLE_PROFILE\n    } else {\n        record.profile.as_str()\n    });\n    if !matches!(profile, \"web\" | \"headless\") && profile != bundle::BUNDLE_PROFILE {\n        anyhow::bail!(","sourceCodeStart":679,"sourceCodeEnd":715,"githubUrl":"https://github.com/Hmbown/CodeWhale/blob/0c42157ee52f9d55af2b506d71b46249910f77d3/crates/tui/src/integrations/dsh/mod.rs#L679-L715","documentation":"launch_spec matched NotInstalled: no dsh binary is on PATH at launch time, even though a connection record exists (it was checked earlier in the function). The user must install the DeepSeek Harness before this integration can launch.","triggerScenarios":"Thrown at crates/tui/src/integrations/dsh/mod.rs:697 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Install dsh: npm i -g @deepseek-ai/dsh","Retry the launch"],"exampleFix":null,"handlingStrategy":"type-guard","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"0c42157ee52f9d55af2b506d71b46249910f77d3","analyzedAt":"2026-08-20T21:50:45.477Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}