skillshare v0.24.5 Release Notes
TL;DR
- Pi packages show their version, and npm packages can be checked and updated from the dashboard. An Update button runs
pi updatefor that one package. - The Plugins page's Sync box puts failures first and folds what stayed the same into one line.
statusstops reporting drift after a complete agent sync, for targets that convert agents and targets that leave some agents out.- Updating a Codex plugin that ships a portable
plugin.jsonworks again. - Disabling a skill that
.skillignore.localkeeps on now fails with the reason instead of reporting success.
Pi package versions and updates
An npm package in Pi had no recorded version and no source, so the Plugins page showed no version for it and Check updates could only say to check in Pi.
The version now comes from the package Pi installed. It shows on the Plugins page and in a Pi target's Extensions tab, for npm, git and local packages alike.
For an npm package added without a version, check compares that version with npm's latest. A newer version shows as old → new, with an Update button on the row and in the check's result. Either one opens the update preview for that plugin and Agent, and applying it runs pi update <source> for that package only, not for every installed package.
skillshare plugin check -g
skillshare plugin update pi-mcp-adapter --target pi -gSome packages are left to Pi instead of being compared with npm's latest:
- a package added with a version range or tag, such as
npm:demo@^1.2.0, since Pi keeps it to that spec; - a package that npm resolves to a registry other than npmjs. Skillshare asks
npm config getin the folder Pi runs npm in, so the environment and every.npmrccount.
A Sync box that puts failures first
After a run, the Sync box lists failures first, with their message, then the other changes. Agents that ended the same way share one row, shown as logos that name themselves on hover. What stayed the same folds into one Unchanged line, which opens to one row per plugin, with Pi packages apart. The preview before a sync folds what it leaves alone the same way, below the changes it will make.
status and agent drift
Two cases reported drift after a complete skillshare sync agents:
- Targets that convert agents. A target with an agent extension writes each agent under another name, such as
reviewer.toml.status,doctorand the dashboard looked for the source name, so every converted agent was missing and the target showed0/N. Converted outputs now count as synced, and editing an agent in the source shows as drift until the next sync. Thanks to @danscheer for the report (#391). - Targets that leave some agents out.
statuscounted every agent against each target, whilesyncleaves out the ones excluded by.agentignore, the target's include/exclude and an agent'stargetsfrontmatter.statusnow applies the same filters, in the table and in--json(#395).
skillshare statusCodex plugins with a portable manifest
Codex installs from a root plugin.json ahead of .codex-plugin/plugin.json, and reports 1.0.0 when that manifest has no version. Skillshare expected the version from .codex-plugin/plugin.json, so a package that ships both failed on every sync with native update returned version 1.0.0; expected 4.10.3. Skillshare now expects the version Codex reads and keeps the logo from .codex-plugin/plugin.json.
skillshare sync pluginsSmaller changes
.skillignore.localoverrides are reported. A!rule there is applied after.skillignore, so disabling a skill could leave it enabled while the dashboard reported success. Such toggles now fail with the name of the overriding file, and Settings › Files shows the.localrules above the editor.- Plugins Skillshare installs into Pi are named as plugins. They stay under the managed plugins instead of Pi packages, and Pi's Extensions tabs show their name with the Managed by Skillshare tag. The Import dialog leaves out what Skillshare already manages.
- A folder switch that is partly on reads as partly on in the resource tree.