Replies: 1 comment
|
核验通过(当前 main HEAD 三点落地意见: 1. 这属于"缺 out-of-tree 接缝"家族,建议统一设计而不是各做一套 #3186(webServer 中间件)、#3191(会话事件注册)、#3167(Remote 注册)是同一个问题的三个面:out-of-tree 插件没有动态注册 surface。与其每个接缝各做一套注册 API,不如考虑一个统一的"out-of-tree capability registry"(事件类型 + Remote + 请求策略共享注册/生命周期语义)——否则将来每个 API 面都重复踩一遍注册/销毁/冲突的坑。 2. 生命周期和冲突语义可以镜像已验证的模式 WebServer 的 register/registerUpgrade 模式( 3. 真正的代价是运行时类型安全——建议明确写入提案 build-time import 的核心收益是编译期 shape assertion(typert 签名在编译时检查)。运行时注册会失去这层保证,需要用运行时契约补:schemastery/zod schema 校验 + 协议版本化( 方向支持:HTTP-vs-RPC 分裂确实是生态痛点,统一契约值得做。 |
Uh oh!
There was an error while loading. Please reload this page.
Context
api-remotesmounts capabilities through explicit build-time/remoteimports, so a plugin distributed outside this repository cannot expose a Remote. Out-of-tree host plugins therefore carry their own HTTP routes (YoDsh does this).Proposal
A runtime registry where a Host plugin registers a Remote contribution and the client assembly mounts it through the same gateway, keeping the typed RPC path available out-of-tree.
Why
It removes the HTTP-versus-RPC split for the ecosystem; HTTP stays useful for scripts/TUI but business surfaces could share one contract.
All reactions