deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
PROJECT README
Switch the agent preset of a conversation mid-session in the DeepSeek Harness web UI. The presets are the "conversation modes" shipped with the harness — Standard mode, Code mode (PTC), Minimal mode, and Creator mode, plus any custom presets you have authored.
By default the session header's preset icon is a read-only label: a session's composition is fixed when it starts, and the built-in picker only exists on the new-session hero screen. This plugin turns the header icon into a real mode switcher that works on a conversation that has already started.
lib/client.js) replaces the built-in agent-preset cell
in conversation.session.header.actions with a menu button. Picking a mode
asks for confirmation, then POSTs { sessionId, agentPreset } to the host
route.lib/index.js) registers the POST /change-convo-mode/switch
route on the web server. It uses the host's own
agentPresets.recompose() — the same machinery the built-in blank-session
picker uses — without the "no turn has ever run" restriction, and records
the switch in the session log as an agent-preset/selected event so the
transcript stays honest.Switching modes mid-conversation is deliberately not offered by the host, and this plugin bypasses that gate on purpose:
From a local checkout:
dsh plugin --profile web add /path/to/dsh-in-convo-mode-change
Or straight from GitHub (the dsh.bundle.patch manifest field makes the
dependency join the profile's plugin layers automatically):
dsh plugin --profile web add github:jiangr100/dsh-in-convo-mode-change
Then restart the web server (stop the dsh web process and run dsh web
again) so the loader picks up the new plugin row and the client bundle.
After restart, the header of any conversation shows the mode switcher where the read-only preset label used to be.
dsh plugin --profile web remove dsh-in-convo-mode-change
and restart dsh web. Sessions that already switched modes keep running on
the preset they switched to.
dsh-rewind.webServer, agentPresets, and agents; it imports
error classes from @deepseek-ai/dsh-agent-presets, resolved by the
harness loader at mount time.agent-preset) in conversation.session.header.actions at a lower
priority (the built-in sits at the default 0). The slots registry keys
list cells by (id, priority): a duplicate id at the same priority throws
and fails the whole plugin entry at load; the lowest priority wins the
cell. test/slots.test.mjs drives the real SlotCore to lock this in.
Do not remove the priority: -10 option.CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。