Replies: 1 comment
|
Thanks for the excellent minimal reproduction. I traced this against current master ( The blank-screen behavior happens one layer later.
So this appears intentional at the generic-command layer, but the reproduction identifies a real extensibility gap: a server-only plugin using An explicit presentation/activation opt-in for command descriptors would preserve control commands that deliberately stay on the hero while giving third-party commands a supported first-interaction path. An additive hero list slot would address the broader launcher-extension case too. |
Uh oh!
There was an error while loading. Please reload this page.
Posting here since Issues are disabled on this repo. I'm not sure whether this is intended behaviour for plugin commands or a gap worth fixing — details and a minimal reproduction below.
Summary
On the launcher screen (the "Into the Unknown" / 探索未至之境 new-session screen),
a command registered by a plugin executes but produces no visible output, and
the view does not advance into a session. The same command, in the same process,
renders normally once a session exists.
Built-in commands (
/goaletc.) do not have this problem on the same screen:they render and switch into the session view.
The failure is silent — the input clears, so the command was accepted and ran
(server-side side effects do happen), but the screen shows nothing at all. From a
user's point of view the plugin is simply broken.
Reproduction
A 13-line plugin is enough. It registers one command that returns one line of
text: no UI slot, no service, no network, no storage.
index.jspackage.json{ "name": "dsh-probe-repro", "version": "0.0.1", "type": "module", "main": "index.js", "dsh": { "bundle": { "patch": "probe.cordis.yml" } }, "peerDependencies": { "@deepseek-ai/cordis": "^4.0.1", "@deepseek-ai/dsh-commands": "0.1.0-rc.6" } }probe.cordis.ymlSteps
Then add
"@deepseek-ai/dsh-web-app"tobundlesin~/.dsh/profiles/probe-test/package.json—dsh plugin addcreates the profilewith
@deepseek-ai/dsh-baseand the plugin only, so without this there is no webUI and nothing binds the port. (Possibly a separate bug; noting it because the
repro needs it.)
http://127.0.0.1:8911/— you land on the launcher screen./probe, press Enter.→ The input clears. Nothing renders. The view stays on the launcher screen.
/probe, press Enter.→
probe · probe ok — if you can read this, rendering workedExpected
Step 2 behaves like step 4 — and like a built-in command does on that screen:
the output renders, and the view moves into a session.
Actual
The handler runs, its
CommandResultis discarded, and the view does not change.What we ruled out
service; it is one command returning one string.
behave identically.
use.
rendering and the view transition are missing.
Impact
Every dsh plugin that ships a command hits this on a user's very first
interaction, which is exactly when they have the least context to diagnose it.
Because the failure is silent rather than an error, the natural conclusion is
that the plugin is broken, and clicking "New session" returns the user to the
same screen.
Plugin authors cannot work around it in-product: on that screen the only slots
that render are
conversation.hero.workspaceandconversation.hero.agentPreset,both
kind: 'single'— registering into either replaces the host's own workspacepicker rather than adding beside it.
conversation.composer.dock/conversation.input.dockarekind: 'list'but do not render on the launcherscreen (the shipped stats line that lives in the dock is absent there). The only
channel left is the command's own
descriptionstring, shown in the commandautocomplete — which is where we ended up putting a warning.
Environment
0.1.0-rc.6@deepseek-ai/dsh-base,@deepseek-ai/dsh-web-app, and the probe plugin above.Is this the intended behaviour for plugin-registered commands on the launcher screen? If it is, is there a supported way for a plugin to render something on that screen that I've missed? If it isn't, I'm happy to add anything else that would help — the reproduction above is a self-contained 13-line plugin.
All reactions