Repository navigation
Replies: 4 comments 1 reply
|
One separate variable in the reproduction: the 0.2.2-rc.1 CLI manifest declares Node Could you compare the mismatched and aligned Cordis dependencies under Node 24.9+ in the same copied profile? That would help separate the peer mismatch from a runtime-version effect; it doesn't rule out the peer-dependency problem. I checked the package metadata and documentation, but haven't reproduced your profile's boot failure. |
|
Thanks — you're right that Node is a separate variable, and we've now run the comparison you asked for. One of our original claims does not survive it, so let me correct it explicitly. What we re-ran (Node 24.22.2, same copied profile)
So: we withdraw the "boot fails with version-unrelated errors" wording. With cordis 4.0.5 + dsh 0.2.2 packages the app comes up and serves the UI. That part of my report was inference, not an observed failure — your push to separate the variables is what surfaced it. What does remain (and why I still think a diagnostic is worth it)The mismatch is not fatal at boot, but it is silently wrong in specific code paths, and the evidence is in the trees:
So those reads yield Revised askNot "make install fail", but "make the mismatch visible":
Is |
|
你用的是客户端吧,昨天web版的 dsh 上master似乎已经更新到@deepseek-ai/cordis: ~4.1.0了 |
|
One data point supporting your proposed startup assertion: the boot-time declaration gate cannot detect a Declaration-layer admission readings at target runtime
The declaration gate only inspects What you can do:
Boundary: Our tool does not detect this failure; it only evaluates declaration-layer admission and cannot see cross-family runtime mismatches. This reads published manifests from npm, not your machine. Declaration-layer admission does not prove runtime health. Recompute artifact:
|
Uh oh!
There was an error while loading. Please reload this page.
Environment: Linux x86_64, Node v22.23.4 (see related note below), pnpm 12.10.1, DSH profile upgrading from
0.2.1-rc.5to0.2.2-rc.1(web profile, ~325 deps, 44 bundles, a few local plugins).Summary
When upgrading a profile to
0.2.2-rc.1, bumping only the@deepseek-ai/dsh*packages and forgetting the cordis family (@deepseek-ai/cordis,-plugin-group,-plugin-include,-plugin-loader,-plugin-timer,cosmokit,schemastery) produces a successful-looking install that only fails at boot, with errors that never mention a version. It would be very helpful if the upgrade guide called this out explicitly, and/or if the runtime asserted it.What I did
Observed
pnpm install --lockfile-onlycordis@4.1.0occurrences in the lockfilecordis@4.0.5occurrences in the lockfilepnpm peers checkstrict-peer-dependenciesis off by default, so pnpm only warns. The installed tree then looks fine (pnpm listsucceeds) and the profile boots into failures such as "a service is missing" / "configuration cannot be read" / "fiber config has an unexpected shape" — none of which point at@deepseek-ai/cordis.Root cause
Every
@deepseek-ai/dsh*@0.2.2-rc.1package declares the cordis family as a peer, e.g.and the 0.2.2 release notes do mention "Update to Cordis Core 4.1.0, Loader 1.1.0, Include 1.1.0", but nothing in the upgrade path turns that into a hard failure: the dsh packages are upgraded by name (
@deepseek-ai/dsh*), while the cordis packages are a different name pattern, so a scripted "bump all dsh packages" upgrade misses them by construction.Suggested fixes (any one would help)
app-boot: read the resolved@deepseek-ai/cordisversion and fail loudly ("expected ~4.1.0, found 4.0.5 — upgrade the cordis family together with the engine") before mounting anything.engines/plugin-API migration steps.dsh doctor(or--dump-config) check: report unmet cordis-family peers, since pnpm's own warning is easy to lose in install output.Workaround we use
Bump the cordis family in the same loop as the
@deepseek-ai/dsh*packages, then verify:Why I'm reporting this
It cost us one "successful" dry run to notice, and the failure mode (install OK, boot broken, message unrelated to versions) is the kind of thing that is expensive to reproduce remotely. If the intended behavior is "users must bump both groups", a one-line assertion would save that.
All reactions