github runkids/skillshare v0.24.5

2 hours ago

skillshare v0.24.5 Release Notes

TL;DR

  1. Pi packages show their version, and npm packages can be checked and updated from the dashboard. An Update button runs pi update for that one package.
  2. The Plugins page's Sync box puts failures first and folds what stayed the same into one line.
  3. status stops reporting drift after a complete agent sync, for targets that convert agents and targets that leave some agents out.
  4. Updating a Codex plugin that ships a portable plugin.json works again.
  5. Disabling a skill that .skillignore.local keeps 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 -g

Some 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 get in the folder Pi runs npm in, so the environment and every .npmrc count.

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, doctor and the dashboard looked for the source name, so every converted agent was missing and the target showed 0/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. status counted every agent against each target, while sync leaves out the ones excluded by .agentignore, the target's include/exclude and an agent's targets frontmatter. status now applies the same filters, in the table and in --json (#395).
skillshare status

Codex 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 plugins

Smaller changes

  • .skillignore.local overrides 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 .local rules 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.

Don't miss a new skillshare release

NewReleases is sending notifications on new releases.