Add Version Check script to canvas configure skill - #331
Add Version Check script to canvas configure skill#331McCall Saltzman (lesaltzm) wants to merge 3 commits into
Conversation
There was a problem hiding this comment.
Pull request overview
Adds an advisory “plugin out-of-date” reminder to the canvas-apps plugin by running a small version-check script at the start of the configure-canvas-mcp skill, and bumps related versions/docs to reflect the change.
Changes:
- Added a .NET file-based script to compare the local
canvas-appsplugin version vs the canonical manifest onmainand print update instructions when newer exists. - Updated
configure-canvas-mcpto run the version check before starting the skill workflow. - Bumped the plugin manifest versions (and updated plugin guidance) to include the new script.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| plugins/canvas-apps/skills/configure-canvas-mcp/SKILL.md | Adds an upfront “Plugin check” step and bumps the skill version. |
| plugins/canvas-apps/scripts/check-version.cs | New .NET script that fetches the latest manifest and prints update instructions when local is behind. |
| plugins/canvas-apps/AGENTS.md | Documents the new script and its intended best-effort behavior. |
| plugins/canvas-apps/.plugin/plugin.json | Bumps the canvas-apps plugin version. |
| plugins/canvas-apps/.claude-plugin/plugin.json | Keeps the legacy mirror manifest version in sync. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
Copilot resolve the merge conflicts in this pull request |
Co-authored-by: lesaltzm <69215460+lesaltzm@users.noreply.github.com>
Resolved the merge conflicts and merged |
| private const string DefaultManifestUrl = | ||
| "https://raw.githubusercontent.com/microsoft/power-platform-skills/main/plugins/canvas-apps/.plugin/plugin.json"; | ||
|
|
||
| private static async Task<int> Main(string[] args) |
There was a problem hiding this comment.
consider not returning int since it doesn't look like we returning anything other than success. Task should be fine I believe.
|
|
||
| private static int CompareVersions(string left, string right) | ||
| { | ||
| string[] leftSegments = left.Split('.'); |
There was a problem hiding this comment.
use System.Version instead? let's not rewrite the parsing logic. and we can use Version.TryParse too
|
|
||
| private static PluginManifest ParseManifest(string json) | ||
| { | ||
| using JsonDocument document = JsonDocument.Parse(json); |
There was a problem hiding this comment.
why are we not using JsonSerializer.Deserialize<PluginManifest> and passing in options to ignore extra peroperties. heck, it can also handle the parsing to Version
| allowed-tools: Bash, AskUserQuestion, mcp__canvas-authoring__connect | ||
| --- | ||
|
|
||
| > **Plugin check**: Run `dotnet run --file "${PLUGIN_ROOT}/scripts/check-version.cs" --verbosity quiet -- --plugin-root "${PLUGIN_ROOT}"` — if it outputs a message, show it to the user before proceeding. |
There was a problem hiding this comment.
should we add a TargetFramework?
There was a problem hiding this comment.
oh, this can be set int he cs file. See: https://learn.microsoft.com/en-us/dotnet/core/sdk/file-based-apps#property
We've seen folks not using the latest versions of the plugin. This adds a reminder script to the configure skill for canvas apps. We use dotnet file run as users should already have dotnet installed to use this plugin.