feature: Add self-updating, hex1b powered, aspire CLI installing, asciinema generated command gen.#437
feature: Add self-updating, hex1b powered, aspire CLI installing, asciinema generated command gen.#437IEvangelist wants to merge 2 commits intomainfrom
Conversation
…iinema generated command gen.
There was a problem hiding this comment.
Pull request overview
Adds GitHub Agentic Workflows (gh-aw) automation to periodically re-record Aspire CLI asciinema casts (via hex1b) and propose updates via PRs, along with supporting Copilot/agent scaffolding and repo hygiene tweaks.
Changes:
- Introduces a gh-aw workflow definition (
update-cli-casts.md) plus its compiled GitHub Actions workflow (update-cli-casts.lock.yml) to generate/update cast files. - Adds agent definitions for recording casts and for working with gh-aw workflows.
- Updates repo config to better support generated workflow files and local gh-aw logs (
.gitattributes,.gitignore), and adds an actions lock file.
Reviewed changes
Copilot reviewed 7 out of 8 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
.gitignore |
Ignores local gh-aw logs and fixes ignore pattern formatting. |
.github/workflows/update-cli-casts.md |
Source workflow definition describing how to record/update CLI casts and open a PR. |
.github/workflows/update-cli-casts.lock.yml |
Generated GitHub Actions workflow produced from the gh-aw source. |
.github/workflows/copilot-setup-steps.yml |
Adds Copilot setup workflow to install gh-aw tooling. |
.github/aw/actions-lock.json |
Adds action SHA lock metadata for gh-aw usage. |
.github/agents/cli-cast-recorder.agent.md |
Defines the specialized agent responsible for recording Aspire CLI casts with hex1b. |
.github/agents/agentic-workflows.agent.md |
Adds a dispatcher agent for creating/updating/debugging/upgrading gh-aw workflows. |
.gitattributes |
Marks .lock.yml workflows as generated and uses merge=ours to avoid conflicts. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
|
||
| runtimes: | ||
| dotnet: | ||
| version: "10.0" |
There was a problem hiding this comment.
The workflow pins the .NET runtime to "10.0". The repo’s global.json requires SDK 10.0.100, and the CLI docs mention 10.0.100+ as the minimum; using a floating "10.0" risks installing an earlier 10.0.x that doesn’t meet the minimum. Consider aligning this to 10.0.100 (or referencing global.json if supported by gh-aw) so recordings are generated with the same SDK version used elsewhere in CI.
| version: "10.0" | |
| version: "10.0.100" |
|
|
||
| - Terminal size: 120 columns × 30 rows | ||
| - Idle time limit: 2.0 seconds | ||
| - File naming: `aspire-<subcommand>.cast` (e.g., `aspire-add.cast`) |
There was a problem hiding this comment.
The naming convention section only mentions aspire-<subcommand>.cast, but elsewhere in the repo the root help recording is referenced as aspire-help.cast (not aspire.cast). Clarify the convention for the root command and for any variants (for example live demos like *-demo.cast) to avoid the automation producing file names that don’t match what the site expects.
| - File naming: `aspire-<subcommand>.cast` (e.g., `aspire-add.cast`) | |
| - File naming: | |
| - Root command help: `aspire-help.cast` | |
| - Subcommand help: `aspire-<subcommand>.cast` (e.g., `aspire-add.cast`) | |
| - Live/demo variants (e.g., for `aspire --version` or `aspire doctor`): `aspire-<subcommand>-demo.cast` or `aspire-help-demo.cast` |
| | `aspire config` | `aspire-config.cast` | `aspire config --help` | | ||
| | `aspire config delete` | `aspire-config-delete.cast` | `aspire config delete --help` | | ||
| | `aspire config get` | `aspire-config-get.cast` | `aspire config get --help` | | ||
| | `aspire config list` | `aspire-config-list.cast` | `aspire config list --help` | | ||
| | `aspire config set` | `aspire-config-set.cast` | `aspire config set --help` | | ||
| | `aspire deploy` | `aspire-deploy.cast` | `aspire deploy --help` | | ||
| | `aspire do` | `aspire-do.cast` | `aspire do --help` | | ||
| | `aspire exec` | `aspire-exec.cast` | `aspire exec --help` | | ||
| | `aspire init` | `aspire-init.cast` | `aspire init --help` | | ||
| | `aspire mcp` | `aspire-mcp.cast` | `aspire mcp --help` | | ||
| | `aspire mcp init` | `aspire-mcp-init.cast` | `aspire mcp init --help` | | ||
| | `aspire mcp start` | `aspire-mcp-start.cast` | `aspire mcp start --help` | | ||
| | `aspire new` | `aspire-new.cast` | `aspire new --help` | | ||
| | `aspire publish` | `aspire-publish.cast` | `aspire publish --help` | | ||
| | `aspire run` | `aspire-run.cast` | `aspire run --help` | | ||
| | `aspire update` | `aspire-update.cast` | `aspire update --help` | | ||
|
|
||
| ### Live demo recordings (show actual execution) | ||
|
|
||
| | Command | Cast file | What to demonstrate | | ||
| |---------|-----------|-------------------| | ||
| | `aspire --version` | `aspire-version.cast` | Run `aspire --version` to show the installed version | | ||
| | `aspire doctor` | `aspire-doctor.cast` | Run `aspire doctor` to show environment diagnostics | | ||
| | `aspire config list` | `aspire-config-list-demo.cast` | Run `aspire config list` to show current configuration | | ||
|
|
There was a problem hiding this comment.
aspire config list appears in both the “Help-only recordings” table and again in “Live demo recordings” (with a different cast name). If the intent is to keep both, it’d help to explicitly state that some commands have both a help cast and a demo cast; otherwise, remove one entry to avoid duplicated/ambiguous outputs for the same command.
No description provided.