App、Host 与 Plan
将可审查的 Authoring 选择与 Kernel 消费的不可变执行输入分开。
Lenso 为两个不同所有者使用两份不同文档。
| 制品 | 所有者 | 用途 |
|---|---|---|
| Plugin Root 与 Host Catalog | Authoring 工具、产品 Host 与 App 仓库 | 可审查的 Plugin Release、Keyed Instance、Profile、配置与 Disable Marker |
| Resolved App Plan | lenso-app-plan |
启动时消费的规范、完整、不可变输入 |
项目声明什么
- 有键的 Plugin Instance 与 entrypoint;
- 明确的 Capability requirement 与 provider binding;
- execution class 和可选 placement;
- 为当前 Host 选择并验证的
.lenso-pluginBundle 输入; - 精确的 Capability Descriptor 与生成 bindings;
- 非敏感配置和显式
secret_ref; - 可选的 Web Profile,用于选择 Shell、Browser Adapter 和 UI Contribution。
Lenso 不发明新的锁文件。Cargo、npm 与 Bun 继续持有常规 lock 状态;OCI 输入必须使用不可变 digest。
Resolve 保证什么
Resolve 会验证包状态、Descriptor 新鲜度、配置 schema、execution class、 provider 基数与所有显式绑定。规范序列化使通过审查的 Plan 字节稳定。
启动后,Kernel 不能安装包、发现 Provider、重绑 Consumer、改变 Placement 或重写 配置。Host 可以把新的 Desired State 解析成新的不可变 App Generation,但已有 Turn 会保留其租用的 Generation,直到 Drain 完成。