跳到内容
Lenso
简体中文
Esc
导航打开⌘J预览
本页内容

检查与排障 App

使用 doctor、list、show、check 与 JSON 输出区分 Host 设置、组合和运行时故障。

从失败的边界开始。“App 无法运行”可能代表不同问题,因此 Lenso 提供了多种检查命令:

问题 命令
Host Artifact、所选 Runtime Tool 与 App Resolution 是否可用? lenso doctor
Derived App 中有哪些 Plugin Instance,来自哪里? lenso plugins list
解析出了哪些准确 Capability Binding 与 Plan Key? lenso app show
当前 Host 与 Plugin Root 能否派生一个有效 App? lenso app check
复制的 Host 能否启动该 Derived App? lenso run

所有命令都接受 --root <app-directory>;检查命令还提供稳定 --json Report,供 脚本使用。

1. 检查 Workspace 边界

lenso doctor --root ./my-app
lenso doctor --root ./my-app --json

doctor 会检查:

  • .lenso/host-catalog.json 是 Regular File,并且可以解析 App;
  • 需要 lenso run 时,.lenso/host 是 Regular Executable;
  • Plugin Root 可以派生完整 App;
  • Execution Class 选择的外部 Runtime(例如 Bun)可用。

只做只读 Composition Check 时,缺少 Host Executable 会显示为 Skipped;但 lenso run 仍然需要它。

2. 对比 Intent 与 Derived App

Filesystem 显示 Intent,命令显示已接纳结果:

find ./my-app/plugins -maxdepth 3 -type f
lenso plugins list --root ./my-app
lenso app show --root ./my-app

不要从手写 Plan File 开始排障——App Owner Workflow 中没有这种文件。Identity 来自 plugins/<plugin-id>/<instance>.toml;Plugin 与 Host Artifact 提供 Schema、Slot、 Execution Choice 与 Binding Rule。

移除 Instance Difference 后如果 Host Default 重新出现,plugins listapp show 会显示该来源。结果存在歧义或 Required Capability 没有实现时,解析会 失败,而不是选择 Fallback。

3. 正确理解 Mutation Failure

plugins addconfiguredisableenableremoveinstallupdaterollback 会暂存最小编辑,并在提交前验证完整 Candidate。Mutation 失败后,之前 接纳的 Plugin Root 应保持不变。

Failure 首先检查什么
Host Catalog 缺失或来自其他 Build 使用准确 Host/Catalog Pair 重新创建 App Workspace
未知 Plugin 或非法 Replacement app show 中的 Host Slot 与 Replacement Policy
无效或未知配置字段 所选 Plugin 的生成 Schema 与 Instance TOML
Capability Binding 缺失或歧义 Consumer Requirement 与 Candidate Provider Instance
Bundle 被拒绝 准确 Archive Byte、Plugin ID/Version、Manifest 与 Digest Evidence
Catalog Update 不可用 请求的准确 Version 与保留的本地 History;不存在隐式 Latest

不要把失败的 Staged Edit 手工复制到 plugins/。应修正源配置,或选择允许该行为的 Host。

4. 区分 Composition 与 Runtime Failure

lenso app check --root ./my-app
lenso run --root ./my-app

如果 app check 失败,问题仍在 Host/Plugin Root Derivation。如果它通过但 run 失败,则检查 Host Process Exit、所选 Runtime Driver、Execution Adapter、外部 Runtime、Readiness 与产品日志。

Kernel 不会安装缺失 Plugin、改变 Binding,也不会在启动后退回另一个 Implementation。 后续 Plugin Root 改动必须派生并通过新的 Candidate,Host 才能应用 Plan Transition 或切换 App Generation。

5. 收集有效 Evidence

可复现报告应包含:

lenso --version
lenso doctor --root ./my-app --json
lenso plugins list --root ./my-app --json
lenso app show --root ./my-app --json
lenso app check --root ./my-app --json

不要包含 Secret Value 或私有 Plugin Resource。报告应能识别 Host/Plugin 关系,但 不能让日志变成另一套配置 Authority。

完整 Happy Path 见修改第一个 App;Activate、 Readiness、Transition、Drain 与 Shutdown 语义见 Runtime 生命周期

最后更新于 2026年9月6日

这个页面有帮助吗?