Hmbown/CodeWhale · error
installed dsh is incompatible with this integration: {reason
Error message
installed dsh is incompatible with this integration: {reason} What it means
`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.
Source
Thrown at crates/tui/src/integrations/cli.rs:516
);
confirm(yes, "Remove the DSH integration files?")?;
let removed = dsh::remove(&paths)?;
println!("removed {} file(s)", removed.len());
Ok(())
}
}
}
fn ensure_launchable_dsh(report: &DshStatusReport) -> Result<()> {
match &report.state {
DshIntegrationState::NotInstalled => {
anyhow::bail!(
"dsh is not on PATH; install the official DeepSeek Harness first (npm i -g @deepseek-ai/dsh)"
)
}
DshIntegrationState::Offline { reason } => anyhow::bail!("dsh is offline: {reason}"),
DshIntegrationState::Incompatible { reason, .. } => {
anyhow::bail!("installed dsh is incompatible with this integration: {reason}")
}
_ => Ok(()),
}
}
View on GitHub (pinned to 8880682c63)
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
Defensive patterns
Strategy: validation
Validate before calling
let detection = detect_now();
if !matches!(detection.compatibility, dsh::DshCompatibility::Verified { .. }) {
eprintln!("upgrade dsh: npm i -g @deepseek-ai/dsh@latest");
return Ok(());
} Type guard
fn dsh_compatible(report: &DshStatusReport) -> bool {
!matches!(
report.state,
DshIntegrationState::Incompatible { .. } | DshIntegrationState::NotInstalled | DshIntegrationState::Offline { .. }
)
} Prevention
- 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
When it happens
Trigger: 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.
Common situations: 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.
Related errors
- {} does not declare dsh.bundle.patch; cannot link it as a pr
- DSH is not connected; run `{CLI_COMMAND} connect`
- dsh exited with status {code}
- --app must be `web` or `headless`, got `{app}`
- DSH is not connected; run `{CLI_COMMAND} connect` first
AI-assisted analysis of Hmbown/CodeWhale@8880682c63 (2026-08-16).
Data as JSON: /api/errors/bddc85d061887414.
Report an issue: GitHub.