Repository navigation
Replies: 1 comment 3 replies
|
The model never sees the On 2 and 3:
So to fix that session without starting a new one:
I reproduced this on the published 0.2.0-rc.2
The mock can't show how the real endpoint handles deferred tools. The projection code is unchanged in 0.2.1-rc.3 and on master ( |
Uh oh!
There was an error while loading. Please reload this page.
Draft discussion → deepseek-ai/deepseek-harness (Discussions)
Category: Q&A (or Ideas if Q&A feels wrong — there is no Bug category)
Title: Tools registered after a plugin is installed mid-session: present in
request/headerbut the model's callable list omits themWhat I observed
DSH 0.2.0-rc.2,
dsh web, profileweb, Windows 11 x64, Node v24.18.1.Two cross-session plugins are installed in the profile (
dsh-call-session0.1.10,dsh-conversation-link0.4.3, both indsh.profile.bundles). Both are mounted —dsh-conversation-linkwrites its ownmount.json:{ "mountedAt": "2026-10-24T13:26:34.368Z", "pid": 28556, "node": "v24.18.1", "tools": 7, "plugin": "dsh-conversation-link" }The pid matches the process that owns
:3080.In this long-lived session (created 2026-10-22, ~110 turns), the last
request/headerrecorded in the session log contains 107 tools, including all 16 cross-session ones:Yet the assistant cannot invoke them: requests to call
conversation_send/session_call/board_postresolve to a different tool (a shell tool), as if those names were not in the callable set. Meanwhile a freshly created session in the same host usedconversation_linkandconversation_sendsuccessfully on its first turn (they appear as ordinarytool/callrecords in its log).So the same host, same plugins, same 107-tool payload: new session → callable, this session → not callable.
What the session log says about how they arrived
tool-registrydeveloper events in this session:tool-additionbatch containingboard_clear, board_list, board_post, session_call, session_create, session_query;session_inspect, session_repair, session_scan;conversation_*— althoughdsh-conversation-linkwas mounted at 13:01:43Z, i.e. before the turn-61 batch.The same is true for another long-lived session in this machine (
session-ca38567c, 85 turns): 0tool-registryevents total, and it also cannot see these tools.The question
request/header? If yes, a tool present there should be callable, so the omission I hit is unexpected.tool-registryevents), then: why is a plugin that mounts while the session is idle never reconciled into it?dsh-conversation-linkwas already mounted when turn 61 added call-session's tools, but its 7 tools were not included in that batch.Why it matters
Long-lived sessions are exactly the ones a user wants to reuse, and "install a plugin, then talk to an old conversation" silently produces a session that looks fully equipped (its payload lists the tools) but cannot use them. There is no user-visible symptom other than the model saying "I don't have that tool" — which reads like a model failure, not a harness one.
If this is expected behaviour, documenting it (e.g. "tools are bound at session start; open a new conversation after installing plugins") would already help.
Environment
@deepseek-ai/dsh), installed app,dsh web --no-open~/.dsh/profiles/web, plugins installed viadsh plugin --profile web add …(onefile:tarball, onegithub:dep)session-1085f855-e84a-460a-9891-53a572de9372(cwd…\deepseek-harness\default-workspace)All reactions