Repository navigation
Replies: 1 comment
|
Run |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Environment
@deepseek-ai/dsh0.2.0-rc.2 (web),@deepseek-ai/dsh-app-boot0.2.0-rc.2,@deepseek-ai/cordis-plugin-loader1.0.5,@deepseek-ai/dsh-llm-pi-ai0.2.0-rc.2dsh web --port <port> --trusted-host <host><DSH_HOME>/profiles/<profile>/, composed frompackage.json→dsh.profile.bundles+cordis.patch.ymlSummary
With a profile whose root config file is the shipped default empty entry list:
every save from the Web settings page (Settings → Models) fails, and nothing is persisted:
Steps to reproduce
cordis.ymlis[](the default template above).Expected: the change is applied (and hot-reloaded).
Actual:
dsh: profile reload requires the root Include entry; the edit is rolled back; the models page cannot be used to configure providers at all.Root cause (code reading)
@deepseek-ai/dsh-config-editor→ConfigEditor.edit():reconcileProfilePatches()(packages/boot/app-boot) requires a registration that onlybootstrap performs:
mountRootInclude():loaderservice is not resolvable at that moment, or if the later reload runs against acontext other than the one that boot registered, the
WeakMaplookup misses for every subsequentreload — which makes the whole settings-write feature (and
dsh-hmr/dsh-plugin-manager, whichcall the same function) unusable for that deployment.
Suggested directions
mountRootInclude, fail loudly (or retry) instead of silently returning whenctx.get("loader")is
undefined— today it produces a boot that looks healthy but can never reload.reconcileProfilePatches, fall back to (re)mounting the root include when the lookup misses,rather than throwing.
ctxinstance, so any ctx belonging to that profile can reconcile.
saves will keep failing) would save users a long debugging session.
Impact
On such a deployment the Web UI cannot add or modify providers/credentials-bearing settings; the only
workaround is to edit
cordis.patch.ymlby hand and restart the process. This blocks a documented,first-class feature (adding a custom OpenAI-compatible provider from the browser).
All reactions