SuperAPI AI 工具集

cli-channel-debugging

测试与质量

查看项目

更新于 10-16 00:31

技能介绍

用途:在本地构建的 Aspire CLI 上复现特定版本、渠道或质量(stable/staging/daily/PR)才出现的 CLI 行为,无需等待安装或 PR 构建,即可在当前分支上定位并修复问题。完整设计见 docs/specs/cli-identity-sidecar.md,本技能提供各场景的操作矩阵。

主要能力:CLI 启动时解析自身身份(channel、version、commit,以及可选的 Aspire* 包解析目录)。通过设置环境变量或安装侧车文件,可让 dotnet run --project src/Aspire.Cli -- <cmd> 表现得像任意已发布、staging、daily 或 PR 构建。

关键环境变量:ASPIRE_CLI_CHANNEL(stable、staging、daily、local 或 pr-<N>)、ASPIRE_CLI_VERSION、ASPIRE_CLI_COMMIT、ASPIRE_CLI_PACKAGES(.nupkg 扁平目录)、ASPIRE_CLI_NUGET_SERVICE_INDEX。设置后 stderr 会打印黄色模拟横幅。也可用 .aspire-install.json 侧车,解析顺序为环境变量→侧车字段→程序集内置标记。

使用方式:先构建 CLI,再带变量运行,例如 ASPIRE_CLI_CHANNEL=daily ASPIRE_CLI_VERSION=... dotnet run --project src/Aspire.Cli -- <command>;或直接运行已构建的 aspire.dll。技能附带 get-aspire-channel-version.{sh,ps1}(解析要模拟的版本)和 emulate-aspire-cli.{sh,ps1}(需 source/dot-source 以持久化环境变量与 aspire 函数)。

强制要求:运行任何模拟命令前,必须在对话中声明所模拟的场景行、设置的确切环境变量与值;对 ASPIRE_CLI_PACKAGES 需说明目录由自己构建并已验证干净(每个 Aspire* 包仅一个版本)。无法确定参数时应询问而非猜测。

适用场景:场景矩阵涵盖本地构建+本地包、PR 身份+本地包、PR 身份+CI 包、最新 daily、staging(不稳定/稳定版本)、已发布构建复现,以及跨 CLI 与 hosting 包的修复复现。

限制:身份变量为进程本地,会在 CLI 生成子进程前剥离,不会泄漏到 peer 探测或 aspire doctor 子调用;aspire doctor 部分字段按设计来自物理二进制。staging 需要 --commit,darc feed 按 RC 构建且旧提交可能已被回收(404 表示无此 feed)。daily/staging feed 未排序且混有旧 9.x 构建,应使用附带脚本而非目测最新版本。