Rune Story 1.0.0-beta.1 release
v1beta1 is the first public beta of Rune Story. It ships the story .NET tool and a source-only Rune Story extension. The two artifacts are installed explicitly; installing one never silently downloads or executes the other.
Publication gate: The install commands and repository URLs on this page are valid only after the release workflow has published
Rune.Story.Cli1.0.0-beta.1and both thev1.0.0-beta.1tag andlatestbranch exist. If any is absent, this page is release-candidate documentation and the coordinated release is not complete.
Four independent version axes
| Axis | v1beta1 release value | What it versions |
|---|---|---|
| Story, Sprite, and Design schema | v1beta1 | YAML/source document headers |
| NuGet tool and product | 1.0.0-beta.1 | Rune.Story.Cli package and story --version |
| Canvas host protocol | 1 | Extension-to-host wire messages and capabilities |
| Copilot extension manifest format | 1 | copilot-extension.json structure |
These numbers are intentionally independent. In particular, the integer manifest and protocol versions must not be compared with the product or schema version.
Prerequisites
- .NET 10 SDK.
- Windows x64 or Windows ARM64. The beta is Windows-only because the Story runtime and native rendering assets are Windows-specific.
- GitHub Copilot App with Canvas extensions enabled.
- Permission to install a user or project extension in the Copilot App.
Install the released artifacts after publication
Install the pinned prerelease tool from nuget.org. The explicit version is the prerelease opt-in:
dotnet tool install --global Rune.Story.Cli --version 1.0.0-beta.1 --prerelease
story --versionFor a quick install that intentionally follows the latest published prerelease, omit the exact version and pair it with the latest extension URL below:
dotnet tool install --global Rune.Story.Cli --prereleaseThe wrapper package selects the matching win-x64 or win-arm64 native package. The three published package files are Rune.Story.Cli, Rune.Story.Cli.win-x64, and Rune.Story.Cli.win-arm64; users install the wrapper, not a RID package directly.
Then install the source-only Rune Story extension in the GitHub Copilot App. For reproducible installation, use the immutable product-version tag:
https://github.com/devkanro/Rune/tree/v1.0.0-beta.1/.github/extensions/rune-storyFor quick installation of the latest fully published CLI-compatible extension, use the moving latest branch alias:
https://github.com/devkanro/Rune/tree/latest/.github/extensions/rune-storyThe release workflow moves latest only after NuGet publication, ARM64 validation, portable artifacts, checksums, and GitHub Release creation have all succeeded. In the App, install_extension supports a Gist URL or a GitHub repository folder URL. Use the exact tag for reproducibility or latest for convenience. Do not pass an arbitrary raw extension.mjs URL or a generic GitHub Release ZIP URL: rune-story is a multi-file extension and one standalone module is not installable. The v1.0.0-beta.1 tag is the immutable release reference. The extension source does not contain a native binary or a hidden downloader; it invokes the explicitly installed story tool.
A Gist is suitable only for a private development snapshot and is not the official immutable supply-chain channel. The source ZIP attached to the GitHub Release is an audit, offline-install, and rollback mirror; it is not the primary Copilot App installer URL.
Repo-local development install
For a repository-local tool, pin the wrapper in the repository's tool manifest and restore it explicitly:
dotnet tool install --local Rune.Story.Cli --version 1.0.0-beta.1 --prerelease
dotnet tool restore
dotnet tool run story --versionIf the manifest does not exist yet, create it first with dotnet new tool-manifest. A project-scoped Rune Story extension is discovered for that repository. Copilot discovery gives project scope precedence over a same-named user extension, so the project copy shadows the user copy while the repository is open.
Update, rollback, and uninstall
To update, install the next pinned tool version and update the extension from its matching protected tag. For the beta tool:
dotnet tool update --global Rune.Story.Cli --version 1.0.0-beta.1 --prereleaseTo roll back, install the desired older version explicitly, for example:
dotnet tool update --global Rune.Story.Cli --version <known-good-version> --prereleaseReplace <known-good-version> with the published version selected for the rollback. For a repo-local rollback, change the version in the tool manifest and run dotnet tool restore. Remove the global tool with dotnet tool uninstall --global Rune.Story.Cli; remove a local tool with dotnet tool uninstall --local Rune.Story.Cli. Remove the extension from the Copilot App's extension manager at the scope where it was installed. Reload the App after changing an extension.
Compatibility matrix
| Component | Supported in this release | Not supported |
|---|---|---|
| OS/runtime | Windows x64 and ARM64; .NET 10 | Linux, macOS, other architectures |
| Story/Sprite/Design source | Explicit story: v1beta1, sprite: v1beta1, or design: v1beta1 | v1 and unknown schema versions |
| CLI package | Rune.Story.Cli 1.0.0-beta.1, command story | Unpinned or non-Windows native installs |
| Portable CLI | rune-story-1.0.0-beta.1-win-x64.zip or rune-story-1.0.0-beta.1-win-arm64.zip | Archives for other operating systems/architectures |
| Canvas protocol | Protocol integer 1, capability-based handshake | Protocols that omit required capabilities |
| Canvas extension | Manifest format integer 1, source-only folder at the protected tag | Binary/Gist distribution as the official channel |
| Document/session model | One Story document per Canvas session | Multiple open Story documents in one session |
The old v1 schema is not a compatibility alias. Migration examples: replace a legacy story: v1, sprite: v1, or design: v1 header directly with v1beta1; the old value is hard-rejected with a diagnostic. There is no warning or compatibility execution path.
Release assets and WinGet
The GitHub prerelease includes self-contained portable archives for Windows x64 and ARM64. Each archive contains story.exe, the managed runtime, and the matching rune_engine.dll, so it can be extracted and run without a separate .NET installation. SHA256SUMS.txt covers the three NuGet packages, both portable archives, and the extension source ZIP.
WinGet publication is intentionally deferred until a stable release. The portable archives are structured as future WinGet portable assets, but the beta's supported install paths are the NuGet tool and the tag-pinned source-folder extension.
Trusted publishing administration
The release workflow is version-independent. Push a canonical product tag such as v1.0.0-beta.1; it derives 1.0.0-beta.1 for MSBuild, NuGet packages, portable archives, checksums, release title, and the matching docs/release/1.0.0-beta.1.md. Manual dispatch accepts the same SemVer for validation but does not publish. A stable tag creates a normal GitHub Release; a SemVer containing - creates a prerelease.
Before enabling the release workflow, a nuget.org administrator must configure Trusted Publishing for this repository and bind it to .github/workflows/release-story.yml. Bind the policy to the release environment as well if environment protection is used. Add the nuget.org profile name as the repository/environment secret NUGET_USER; do not store a NuGet API key.
The workflow requests only the id-token: write permission needed by NuGet/login@v1, receives its short-lived NUGET_API_KEY output, and pushes the packages that were already built and tested. Configure required reviewers and any branch/tag restrictions on the GitHub release environment. Those NuGet trusted-publisher and environment-protection policies are administrative prerequisites and cannot be completed by repository code.
Known beta limits
- Windows x64 and ARM64 only.
- One Story document per Canvas session.
- The official Canvas artifact is source-only and requires the separately installed CLI.
- There is no
v1schema compatibility or automatic source rewrite. - The Canvas host gates on protocol/capabilities, not exact product-version equality; compatible beta patches can interoperate.