Skip to content
MyDSHMy DSH Field Notes
中文
Independently maintained; not affiliated with DeepSeek. No association with mydsh.dev or other MyDSH sites.

Home/Developers & plugin dev/Plugin anatomy & manifest

What an over-narrow engines.dsh actually does: nothing

Worried an over-narrow engines.dsh gets your plugin blocked, while too wide feels unsafe.

VerifiedVersion and environmentChecked 2026-11-14
Host
0.1.2-alpha.5
Sample
dsh-context 0.84.1 (requires >=0.2.0-rc.2)
Checked
2026-11-14
First, the premise of this item is wrong: 'an over-narrow declaration gets refused by the version gate' does not hold in measurement here.So this page records 'nothing happened' instead of 'refused' — which is the more dangerous outcome.

Three measured stages

StageExpected (community claim)Measured
pnpm installrefusedSucceeded, only peer-dependency warnings
dump-config compositionlisted but not loadedComposed normally as - id: dsh-context, no refusal recorded
Booting webdoes not runSilent hang: seventy seconds of zero output, process alive, no error

So how wide should you declare

  • engines.dsh blocks nothing either way, so its real function is to inform people, not constrain machines. Declaring narrowly at least documents your intent for maintainers.
  • What decides loadability is client.inject.If your plugin injects client packages, a host lacking them hangs outright and no engines range saves it.
  • Server-only plugins (no client subtree) are far safer — the billion-context control declares only node and starts fine.

One thing you can do as a plugin author

State in your README exactly which inject targets the host must provide. That is far more useful than a range of versions in engines.dsh, because ranges are never validated while missing packages leave people stuck with no clue.

As a user: compute the inject difference before installing. The verification table on /plugins/ does exactly that — four of thirteen plugins hang silently, all from missing inject packages.

What counts as working

Check every line. All of them pass or the job is not done.

  • You know a narrow engines.dsh is blocked nowhere
  • You know the real failure point is a missing inject package
  • As an author you document required inject targets in the README

Where it fails

Symptom, cause, what to do — written in the order it actually happens.

SymptomCauseWhat to do
Hunting for evidence of a version-gate refusalNo such mechanism is implemented on 0.1.2Stop looking; check the inject difference

Sources

Verified means measured here. Compiled means every line carries a source.