Replies: 1 comment
|
Follow-up: a second, independent bug surfaced right after fixing the boot crash above — the sidebar session list renders completely blank. SymptomAfter Root cause
retainAccountKeys: (d, workspaceKeys) => {
const retained = new Set(workspaceKeys);
d.groupExpansion = Object.fromEntries(Object.entries(d.groupExpansion).filter(...)); // throws when null
...
}Rehydration overwrites the Workaround (confirmed working)In the browser console on the dsh origin: localStorage.removeItem('dsh.workspace.view.v5')then reload — the session list comes back immediately. SuggestionThe persist layer should validate the rehydrated shape (or run a migration / fall back to defaults when a field has the wrong type) instead of trusting stored JSON blindly, so stale persisted state from older versions can never crash the UI. A |
Uh oh!
There was an error while loading. Please reload this page.
Summary
A stale transitive dependency of a profile-installed third-party plugin (
dsh-notify-yimit) shadows dsh's own bundled@deepseek-ai/dsh-client-locale, causingdsh webto crash at boot with a misleading error:The requested module '@deepseek-ai/dsh-settings' does not provide an export named 'settingsNamespace'.Environment
@deepseek-ai/dsh@0.1.5-rc.2(vianpx @deepseek-ai/dsh@latest web)~/.dsh/profiles/webwithdsh-notify-yimit@^0.1.6installedSteps to reproduce
dsh plugin --profile web installwithdsh-notify-yimit@0.1.6in the profile'spackage.jsondependencies and listed underdsh.profile.bundles.dsh-notify-yimit@0.1.6depends on@deepseek-ai/dsh-client-locale@^0.1.0-rc.6, which resolves to the stale0.1.0-rc.8and gets installed into~/.dsh/profiles/web/node_modules.dsh web.locale (@deepseek-ai/dsh-client-locale)resolves to the profile's stale copy (0.1.0-rc.8) instead of the bundled0.1.5-rc.2. That old version doesimport { settingsNamespace } from "@deepseek-ai/dsh-settings", an export that no longer exists in the current@deepseek-ai/dsh-settings@0.1.5-rc.2, so boot crashes.Actual behavior
Deleting
~/.dsh/profiles/web/node_modulesand reinstalling does not help, because the plugin's dependency range (^0.1.0-rc.6) pulls the same stale version back every time.Expected behavior
One or more of:
@deepseek-ai/*core packages resolve to dsh's own bundled copies first, so a plugin's transitive dependency can never shadow them.dsh plugin installdetects version conflicts between a plugin's transitive@deepseek-ai/*deps and the bundled versions, and warns or aligns them.Workaround (confirmed working)
Pin the transitive deps in the profile's
pnpm-workspace.yamlto match the bundled versions:After
dsh plugin --profile web installwith these overrides,dsh webboots normally. (Note: pnpm v11 ignoresoverridesinpackage.json; they must live inpnpm-workspace.yaml.)Additional notes
dsh-notify-yimit@0.1.6is the latest published version and still depends on@deepseek-ai/dsh-client-locale@^0.1.0-rc.6, so any user installing this plugin today hits the same crash. The plugin publishes no repository/homepage on npm, so it cannot be reported upstream.All reactions