学习路径 Smoke 矩阵
检查八条核心路径,同时区分本地样例、签名发布与部署证据。
此页不会替代缺失的已发布版本。 查询确切版本
- 语言
- zh-CN
- 内容修订
sha256:0ff40bfb5bb6091334b7b31b7e7a022a4a56ca393524b12554f3a3bd9135fc97
这是一份测试计划,不是八个已通过的徽章。命令和前提以链接中的教程为准。 每次运行应记录源码提交、CLI 版本、准确包或 Plugin 版本、目标、命令结果和 浏览器结果。Site 链接检查通过,不会使源码候选变成已发布教程。
| 路径 | 教程 |
|---|---|
| P1 | 创建本地 Web App |
| P2 | 同一 App 的手工与 Agent 路径 |
| P3 | 向 App 添加 Plugin |
| P4 | 编写第一个 Plugin |
| P5 | 连接 React/Vite 前端 |
| P6 | 配置 App 中的 Plugin |
| P7 | 构建知识库 App |
| P8 | 禁用或撤出 Plugin |
P1. 首个可运行 App
Smoke: 运行 app dev;在真实浏览器提交 Ada,看到
POST /greetings 返回的 Hello, Ada!。
边界: 需要源码构建的 CLI 和匹配的依赖组合。固定依赖不可用时停止。
P2. Agent 与人完成同一任务
Smoke: 给 Agent 与 P1 相同的 CLI 修订、模板和浏览器断言,比较实际输出与 错误。
边界: 这不是第二套模板,也不是另一款 Agent 产品。外部 Agent 独立完成仍需 单独实测。
P3. 采用 Plugin
Smoke: 在目录寻找准确的签名版本,核对分发方式、目标、信任与权限, 再采用、配置、构建并调用。
边界: 候选页不能直接安装。签名列表本身不证明 .crate 可用、权限信息完整或
App 构建成功。
P4. 编写 Plugin
Smoke: 实现业务行为,真实调用 plugin dev,运行 plugin check 与
plugin pack,再将制品接入兼容 App 并调用。
边界: 打包是本地准备,不是目录发布。App 采用还需要匹配的 Host 和目标。
P5. Web 与 React
Smoke: 生成客户端并做类型检查;在浏览器中创建、读取笔记,再检查跨用户拒绝 和 API 错误。
边界: 此候选需要准确的客户端 Tarball、Auth/Jobs/Secrets 输入、凭据和一次性 PostgreSQL。
P6. 配置与动态来源
Smoke: 在本地 App 中修改一个有类型的 Instance Patch,拒绝无效值,并通过
app show 与 app check 检查结果。Secret 值留在 Plugin Root 外。需要具体验证
修订栅栏的远程来源时,使用单资源 Agent 配置服务:
发布已审查的 Proposal,拒绝旧 revision,并确认服务不可用时会拒绝操作。
边界: Agent 服务只管理一个命名资源,不是通用 App 配置 Provider 或已部署的 多环境控制面。源码构建的默认 App 已有本地版本化文件快照激活测试;这条 Site 路径不证明配置 Provider 已公开发布。
P7. 构建并运行分发产物
Smoke: 在匹配的候选 Checkout 中阅读
lenso-examples/fixtures/vnext-knowledge-base-app/README.md 的
Exact package inputs for external providers 一节。在断网、限资源容器中运行
verify.py --package-only,提供同一份签名 --linked-snapshot、独立的
--trust,以及准确的 --auth-crate、--jobs-crate、--secrets-crate,并显式
使用 --trust-linked-build-from-crates。验证器从这些归档采用 Provider,构建
Host,运行 app check 和 app show,删除临时 App 源码,再经受控重启复验真实
HTTP 与 PostgreSQL 数据。
边界: package-only 只指三个外部 Provider,不包括 App 自身的 Rust 和
TypeScript 源码。仍需匹配的源码构建 CLI 与离线依赖闭包。本地候选测试不能证明
这些包或 CLI 已在 crates.io 发布,也不能证明最终候选 SHA 已通过同一验收。
Web App 快速开始中的简单 app start --from
不能代替这项检查。
P8. 升级、禁用与卸载
Smoke: 在已选中 Plugin 的源码 App 中添加 default.disabled Marker,构建
新的分发目录,并执行 app build、app check 和 app show。移除 Marker 可在
下一次构建中重新启用。对于已采用的精确签名 linked Cargo 或 Portable 来源,
使用相应的 app unadopt 路径,再构建并检查下一份分发产物。切换 Host 前,另行
验证业务数据。
边界: app unadopt 仅针对先前采用的精确签名来源,不会移除本地 Plugin
或逆转数据迁移。升级需要另行审查新版本采用与应用迁移;当前没有自动或可逆的
CLI 升级操作。这是本地候选路径,不证明对应包已公开发布。
分层运行
- 在 Site Checkout 中运行
pnpm build生成公开页面,再运行pnpm check:learning-paths,检查八个入口、中英文页面及教程链接是否出现在 发布输出中。构建 Site 前可运行node scripts/check-learning-paths.mjs --source-only,只检查源码链接与路径边界, 不宣称已验证渲染页面。两者都不会启动 App 或发出浏览器请求。 - 只有具备各教程列出的输入时,才运行其命令与浏览器检查。缺失依赖、签名发布 或外部服务时,记录明确边界,不能记为通过。
- 独立的框架扩展路径见编写本地 Engine 扩展 及其临时样例 Smoke 脚本。它验证真实本地 CLI,但不认证 Driver 或 Adapter。
P3 应保存采用决策时使用的准确签名文档/版本 URL;P5 应保存生成客户端修订及 浏览器网络响应;P6 只保存不含秘密的修订和诊断证据;P7 应说明如何让源码 Checkout 不可用;P8 在切换活跃 Host 前应备份数据,并明确指出不可逆迁移。