Skip to content

ADR-0049:plugin-runtime.zod.ts 剩余家族(DynamicLoadRequest / DynamicUnloadRequest / DynamicPluginResult / PluginSource / DynamicPluginOperation)四仓零 runtime consumer —— enforce-or-remove 悬置待裁 #4834

Description

@os-zhuang

#4657 实施(PR #4831)中的范围外发现,只记录不修,需维护者裁决。

事实

packages/spec/src/kernel/plugin-runtime.zod.ts#3896 follow-up(删 island config)与 #4657(删 activationEvents + ActivationEventSchema)之后,剩余五个导出:DynamicLoadRequestSchemaDynamicUnloadRequestSchemaDynamicPluginResultSchemaPluginSourceSchemaDynamicPluginOperationSchema(及对应类型)。

三仓(objectstack / cloud / objectui)裸名扫描:除 spec 自身源码与测试外零命中。 没有任何 runtime 接收 DynamicLoadRequest、执行 load/unload/reload、或产出 DynamicPluginResult —— "Runtime load/unload of plugins without kernel restart" 这层能力整体是 declared-but-unenforced。#4657 的 kernel 侧墓碑之所以还值得立(而非直接裸删),恰是因为这个家族仍以 json-schema / IDE bundle / ./kernel 导出的形式发布,读者会把它当作能力。

既有决定

remove-unenforced-plugin-loading-config changeset(#3896 follow-up)当时明确写下:

the remainder (DynamicLoadRequest, DynamicUnloadRequest, DynamicPluginResult, PluginSource, DynamicPluginOperation) also has no runtime consumer today; it is left in place because those are operation contracts, not security promises, and the enforce-or-remove call on them is a design decision rather than a correction.

即:悬置是有记录的刻意决定,但只活在一份 changeset 散文里,没有 issue 承载,ADR-0049 的 worklist 也未覆盖(这些不是 metadata-type,liveness ledger 不走这里)。cloud-v1 ROADMAP 把 dynamic loading 排在 v0.4.0 —— 若那是活路线图,按 ADR-0049 应标 experimental 而非静默发布;若不是,则按 remove 处置(#4618 IDataEngine.batch 的形状:def 整删 + 基线有意删,tsc 为通道)。

待裁问题

对这五个 schema:enforce(cloud-v1 v0.4.0 真的会建 runtime?)/ experimental 标注 / remove,三选一。两个轴:长期架构上"写 runtime 再声明它 enforce 的东西"是既有先例(#3896 注释原话);AI 误用面上,一套发布进 IDE bundle 的 request/result 词表是模型会直接拿来构造调用的东西。

关联:#3896#4657、PR #4831#4618、ADR-0049、cloud-v1 ROADMAP v0.4.0。


Generated by Claude Code — session session_0176qgxgCXTJCUv4YFLtusP9

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions