[BUG] [0.1.7-rc.1] strict-codec format change makes an out-of-tree Typert Remote plugin fail activation and blocks the whole Web UI #7833
Replies: 3 comments 1 reply
你这条正好撞上版本标签的坑——请先确认你在哪一条线上1. 你贴的两个版本,正是 npm 上的一对"新旧错位"⇒ 所以你的对照是"旧版能跑、新版不能跑",而不是"最新版有回归"。这很重要,因为它决定维护者会去看哪段代码——0.1.7 线引入 strict codec 的那次变更,而不是最近的提交。 2. 请务必先在
|
|
Update: reproduced on the current The plugin-side report is tracked at LivXue/dsh-plugin-shop#61. The published descriptor uses the pre-0.1.7 strict shape ( Suggested DSH-side fixes:
Please also include the resolved module path/version in loader diagnostics; this would make mixed or stale profile dependency trees distinguishable from a plugin-generated descriptor bug. |
你这条正好把我上一个回复里留着的那个问题答掉了1. 你的报错与加载器校验逐字对应
throw new Error(`typert-loader: ${pkgName} ${subject} has no create() factory`)而你的原文是: ⇒ 2. 你这两条信息恰是我上一条回复缺的证据我在给楼主的回复里留了一个二选一:该包是本仓的、还是 profile 里装的,以及是否在最新版上仍复现。你用一条评论把两个都答了:
⇒ 结论因此收敛为:这是第三方 codec 与新契约不兼容(0.1.7 的加载器要求每个 codec 暴露
建议你把这两句直接补进主帖(尤其"已在 rc.2 复现"),这样楼主那条就不必再等版本确认了。 3. 一条给插件作者的定位
4. 版本提醒
|
Uh oh!
There was an error while loading. Please reload this page.
Environment
@deepseek-ai/dsh@0.1.7-rc.1(npm dist-tagnext), web profile, Windows 11@deepseek-ai/dsh@0.1.5-rc.3(dist-taglatest)dsh-mcp-mgr@0.2.0+dsh-mcp-mgr-ui@0.2.0(latest published, 2026-09-03), installed in$DSH_HOME/profiles/web/node_modules, listed indsh.profile.bundlesSymptom
Booting the same profile under
0.1.7-rc.1never reaches the app. The boot screen shows:The entry's client fiber ends in state
failed(3), the whole page stays on the boot card, andthe failure text names no cause. On the host side the same entry sits in
loading(1).Root cause measured
The plugin's
apply()mounts its generated Typert Remote and that mount is rejected:@deepseek-ai/dsh-typert-registryvalidates strict codecs differently in the two generations:0.1.5-rc.3(lib/client.js):0.1.7-rc.1(same file):and the emitted descriptor shape changed with it:
dsh-mcp-mgr@0.2.0/lib/typert.remote-client.js(generated by the 0.1.5-era tooling):{ mode: 'strict', typeSymbol, schema: <zod schema> }— 12schema:entries, nocreate:@deepseek-ai/dsh-api-session-controller@0.1.7-rc.1/lib/typert.remote-client.js(shipped):{ mode: 'strict', typeSymbol, create: () => <zod schema> }So a Remote contribution produced by the older generator is rejected by the newer registry, the
rejection surfaces only as
failed, and the client boot audit throwsweb boot: N entry did not activate.Why it blocks everything
One out-of-tree client plugin that cannot activate aborts the whole client boot, so the Web UI is
unusable even though every first-party entry is healthy. This is the client-side face of the
fail-fast behaviour already raised in #6134, and the diagnostic hides the cause (the stored fiber
error is not printed, only the state), which is exactly the "applied, registered nothing /
failed with no reason" gap described there.
What I would like to know / propose
supported migration path for an out-of-tree plugin that was generated with the 0.1.5/published
tooling — must every such package regenerate
lib/typert.remote-client.*with the newgenerator before a host upgrade?
validateCodecto accept both shapes during the transition, e.g.treat a strict codec as valid when it exposes either
schema.parseorcreate, so previouslypublished Remote artifacts keep mounting? The same question applies to
validateSchemas(
schema.create).(it already computes one for
pending/import failed), because today the only way to find thecause is a debugger session.
Reference points I found while narrowing this down: #5618, #2981 (external Typert protocol
recognition), #3167 (out-of-tree Remote contribution registry), #4013 (the 0.1.1 adapter contract
change that broke an installed plugin the same silent way), #6134 (loader tolerance).
Reproduction (compact)
webprofile to an isolatedDSH_HOME, keepdsh-mcp-mgranddsh-mcp-mgr-uiin itsnode_modulesanddsh.profile.bundles.0.1.7-rc.1on a spare port.the first app rejection is the
validateCodecthrow insidectx.remote.$mount(...).0.1.5-rc.3: the entry activates and the MCP settings tab appears.All reactions