From 4c50863edf217629ca2baf64ddd42c896534c17c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 20 Oct 2026 04:22:28 +0000 Subject: [PATCH 1/3] chore(main): release 0.26.0 --- .github/release-please-manifest.json | 2 +- CHANGELOG.md | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/.github/release-please-manifest.json b/.github/release-please-manifest.json index 152a4f2e8..c84411f5e 100644 --- a/.github/release-please-manifest.json +++ b/.github/release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.25.13" + ".": "0.26.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 0b90a28b9..e6915e002 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,23 @@ # Changelog +## [0.26.0](https://github.com/runkids/skillshare/compare/v0.25.13...v0.26.0) (2026-10-20) + + +### New Features + +* **hooks:** read hook code and scripts from files next to the config ([#586](https://github.com/runkids/skillshare/issues/586)) ([f6e7265](https://github.com/runkids/skillshare/commit/f6e72654148a9054f0e06df562105ec41cd4b3a1)) +* **mcp:** serve an Executor skill index from mcp serve --http ([#583](https://github.com/runkids/skillshare/issues/583)) ([70ceacc](https://github.com/runkids/skillshare/commit/70ceacca9bc373bec9b9508b24d70e2b2ebbae39)) +* **mcp:** write per-Agent native fields from the source ([#579](https://github.com/runkids/skillshare/issues/579)) ([578790c](https://github.com/runkids/skillshare/commit/578790c416d0282829b8a41595dfb3abb3ee2cbc)) +* **ui:** edit other Agents' MCP options in the server dialog ([#580](https://github.com/runkids/skillshare/issues/580)) ([8f55e58](https://github.com/runkids/skillshare/commit/8f55e5899927e136fa4ec19ec5548f11ffdbe096)) +* **ui:** keep all local or all remote in the pull conflict dialog ([a2112ff](https://github.com/runkids/skillshare/commit/a2112ff68157ed121e1f724334e1a190db4a3bec)) +* **ui:** update outdated memory guidance in one step ([364af36](https://github.com/runkids/skillshare/commit/364af363917ad58b170298d72a494e3f5d7f2821)) + + +### Bug Fixes + +* **hooks:** keep a YAML block scalar's final newline in entry files ([#584](https://github.com/runkids/skillshare/issues/584)) ([36d04b5](https://github.com/runkids/skillshare/commit/36d04b526b65f0612d88a185628b663d50d07c6a)) +* **plugins:** honor native OMP marketplace builds ([#588](https://github.com/runkids/skillshare/issues/588)) ([829cbb1](https://github.com/runkids/skillshare/commit/829cbb176d278d880900996ab77245e8e6e04deb)) + ## [0.25.13] - 2026-10-16 ### New Features From 97df825a9dc9e441b56759fa142665c1d5d56543 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 20 Oct 2026 04:22:31 +0000 Subject: [PATCH 2/3] chore(release): synchronize release metadata --- CHANGELOG.md | 2 +- skills/skillshare/SKILL.md | 2 +- website/src/pages/changelog.md | 18 ++++++++++++++++++ 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e6915e002..4bda6e29b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -## [0.26.0](https://github.com/runkids/skillshare/compare/v0.25.13...v0.26.0) (2026-10-20) +## [0.26.0] - 2026-10-20 ### New Features diff --git a/skills/skillshare/SKILL.md b/skills/skillshare/SKILL.md index a7c5cff88..5739b81ac 100644 --- a/skills/skillshare/SKILL.md +++ b/skills/skillshare/SKILL.md @@ -9,7 +9,7 @@ description: | noninteractive automation, and guidance for the terminal UI. argument-hint: "[command] [target] [--json] [--dry-run] [-p|-g]" metadata: - version: v0.25.13 + version: v0.26.0 --- # Skillshare CLI diff --git a/website/src/pages/changelog.md b/website/src/pages/changelog.md index b5109fd7f..331f50a8e 100644 --- a/website/src/pages/changelog.md +++ b/website/src/pages/changelog.md @@ -9,6 +9,24 @@ All notable changes to skillshare are documented here. For the full commit histo --- +## [0.26.0] - 2026-10-20 + + +### New Features + +* **hooks:** read hook code and scripts from files next to the config ([#586](https://github.com/runkids/skillshare/issues/586)) ([f6e7265](https://github.com/runkids/skillshare/commit/f6e72654148a9054f0e06df562105ec41cd4b3a1)) +* **mcp:** serve an Executor skill index from mcp serve --http ([#583](https://github.com/runkids/skillshare/issues/583)) ([70ceacc](https://github.com/runkids/skillshare/commit/70ceacca9bc373bec9b9508b24d70e2b2ebbae39)) +* **mcp:** write per-Agent native fields from the source ([#579](https://github.com/runkids/skillshare/issues/579)) ([578790c](https://github.com/runkids/skillshare/commit/578790c416d0282829b8a41595dfb3abb3ee2cbc)) +* **ui:** edit other Agents' MCP options in the server dialog ([#580](https://github.com/runkids/skillshare/issues/580)) ([8f55e58](https://github.com/runkids/skillshare/commit/8f55e5899927e136fa4ec19ec5548f11ffdbe096)) +* **ui:** keep all local or all remote in the pull conflict dialog ([a2112ff](https://github.com/runkids/skillshare/commit/a2112ff68157ed121e1f724334e1a190db4a3bec)) +* **ui:** update outdated memory guidance in one step ([364af36](https://github.com/runkids/skillshare/commit/364af363917ad58b170298d72a494e3f5d7f2821)) + + +### Bug Fixes + +* **hooks:** keep a YAML block scalar's final newline in entry files ([#584](https://github.com/runkids/skillshare/issues/584)) ([36d04b5](https://github.com/runkids/skillshare/commit/36d04b526b65f0612d88a185628b663d50d07c6a)) +* **plugins:** honor native OMP marketplace builds ([#588](https://github.com/runkids/skillshare/issues/588)) ([829cbb1](https://github.com/runkids/skillshare/commit/829cbb176d278d880900996ab77245e8e6e04deb)) + ## [0.25.13] - 2026-10-16 ### New Features From f3ddd4cd97ec7730660477962e4a15312e95ba97 Mon Sep 17 00:00:00 2001 From: Willie Date: Tue, 20 Oct 2026 13:57:19 +0800 Subject: [PATCH 3/3] docs(changelog): clarify 0.26.0 release changes Describe MCP options, Executor serving, hook file references, native OMP builds, and dashboard shortcuts from the user's perspective. Include the shared-token editing warning and keep the website changelog synchronized. --- CHANGELOG.md | 55 ++++++++++++++++++++++++++++------ website/src/pages/changelog.md | 55 ++++++++++++++++++++++++++++------ 2 files changed, 92 insertions(+), 18 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4bda6e29b..41353262c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,21 +2,58 @@ ## [0.26.0] - 2026-10-20 - ### New Features -* **hooks:** read hook code and scripts from files next to the config ([#586](https://github.com/runkids/skillshare/issues/586)) ([f6e7265](https://github.com/runkids/skillshare/commit/f6e72654148a9054f0e06df562105ec41cd4b3a1)) -* **mcp:** serve an Executor skill index from mcp serve --http ([#583](https://github.com/runkids/skillshare/issues/583)) ([70ceacc](https://github.com/runkids/skillshare/commit/70ceacca9bc373bec9b9508b24d70e2b2ebbae39)) -* **mcp:** write per-Agent native fields from the source ([#579](https://github.com/runkids/skillshare/issues/579)) ([578790c](https://github.com/runkids/skillshare/commit/578790c416d0282829b8a41595dfb3abb3ee2cbc)) -* **ui:** edit other Agents' MCP options in the server dialog ([#580](https://github.com/runkids/skillshare/issues/580)) ([8f55e58](https://github.com/runkids/skillshare/commit/8f55e5899927e136fa4ec19ec5548f11ffdbe096)) -* **ui:** keep all local or all remote in the pull conflict dialog ([a2112ff](https://github.com/runkids/skillshare/commit/a2112ff68157ed121e1f724334e1a190db4a3bec)) -* **ui:** update outdated memory guidance in one step ([364af36](https://github.com/runkids/skillshare/commit/364af363917ad58b170298d72a494e3f5d7f2821)) +#### MCP + +- **Keep per-Agent settings in the source** — a server's `options` map holds native fields that have no portable equivalent, such as a Codex approval mode or a Claude Code timeout. Sync writes each block only to its Agent, including its account targets, and keeps it when recreating an entry. Pi continues to use `piOptions`. The dashboard's **Other Agent settings** editor accepts one JSON object per Agent. Refs: #579, #580. + ```yaml + mcp: + servers: + docs: + url: https://example.com/mcp + targets: [codex, claude] + options: + codex: + default_tools_approval_mode: approve + claude: + timeout: 600000 + ``` + - Fields already managed by portable settings are refused. Credentials must be whole-value environment references supported by the receiving Agent; plaintext credentials are refused. +- **Load served skills into Executor** — `mcp serve --http` now also publishes `/.well-known/agent-skills/index.json` and the skill files that Executor's `wellKnownSkills` loader reads. File changes update the index versions, so Executor picks them up on its next check without a commit or push. Refs: #583. + ```bash + skillshare mcp serve --http 127.0.0.1:8765 + skillshare mcp serve --check # also reports index coverage and skipped skills + ``` + - The index uses the MCP server's bearer token when configured. That token also authorizes MCP editing when enabled; use a separate server without `mcp.serve.edit` for a read-only connection. It leaves out skills Executor cannot load; `--check` explains why. Non-loopback serving still requires a token and TLS. Executor refuses private addresses by default; Cloud needs a public address, and self-hosted deployments must explicitly allow private fetches. + +#### Hooks + +- **Keep hook code and scripts in separate files** — use `codeFile` instead of inline extension code, or `{from: path}` for a script in `files`. Edit those files and run `hooks sync`; no YAML escaping is needed. Refs: #585, #586. + ```yaml + hooks: + entries: + lint: + bindings: + pi: + codeFile: hooks/lint.pi.ts + ``` + - Paths resolve against the config's folder, not the working directory or an entry passed with `--file`. They must stay inside that folder without passing through symlinks. A missing file stops config loading; a file changed after preview makes the apply stale. Saving keeps references; editing code or scripts in the dashboard stores the edit inline. + +#### Dashboard +- **Choose one side for every pull conflict** — **Keep all local** and **Keep all remote** select a whole-file resolution for every conflicting file. You can still override individual files before **Apply choices and pull**; selecting a side alone writes nothing. +- **Update outdated memory guidance together** — **Update to latest** opens the existing connection review with every outdated tool selected and its read/write modes preserved. You still review and apply the changes; modified guidance blocks are left alone. ### Bug Fixes -* **hooks:** keep a YAML block scalar's final newline in entry files ([#584](https://github.com/runkids/skillshare/issues/584)) ([36d04b5](https://github.com/runkids/skillshare/commit/36d04b526b65f0612d88a185628b663d50d07c6a)) -* **plugins:** honor native OMP marketplace builds ([#588](https://github.com/runkids/skillshare/issues/588)) ([829cbb1](https://github.com/runkids/skillshare/commit/829cbb176d278d880900996ab77245e8e6e04deb)) +#### Plugins + +- **OMP installs its own marketplace build** — when a repository ships same-named OMP and Claude builds, `plugin add --target omp` now uses `.omp-plugin/marketplace.json`, including a `package.json` with `omp.extensions` or the compatible `pi.extensions`. Claude catalog fallback applies only when there is no OMP catalog; a broken or missing native entry no longer silently installs the Claude build. Catalog versions reach the native install, and discovery and dashboard previews show each build's own path, version and components. Refs: #587, #588. + +#### Hooks + +- **YAML entry files keep their final newline** — `hooks add|edit --file` no longer drops the final newline from a trailing `code: |` block, so an extension written from it keeps the newline expected by formatters. JSON entry files were unaffected. Refs: #584. ## [0.25.13] - 2026-10-16 diff --git a/website/src/pages/changelog.md b/website/src/pages/changelog.md index 331f50a8e..2ba6be441 100644 --- a/website/src/pages/changelog.md +++ b/website/src/pages/changelog.md @@ -11,21 +11,58 @@ All notable changes to skillshare are documented here. For the full commit histo ## [0.26.0] - 2026-10-20 - ### New Features -* **hooks:** read hook code and scripts from files next to the config ([#586](https://github.com/runkids/skillshare/issues/586)) ([f6e7265](https://github.com/runkids/skillshare/commit/f6e72654148a9054f0e06df562105ec41cd4b3a1)) -* **mcp:** serve an Executor skill index from mcp serve --http ([#583](https://github.com/runkids/skillshare/issues/583)) ([70ceacc](https://github.com/runkids/skillshare/commit/70ceacca9bc373bec9b9508b24d70e2b2ebbae39)) -* **mcp:** write per-Agent native fields from the source ([#579](https://github.com/runkids/skillshare/issues/579)) ([578790c](https://github.com/runkids/skillshare/commit/578790c416d0282829b8a41595dfb3abb3ee2cbc)) -* **ui:** edit other Agents' MCP options in the server dialog ([#580](https://github.com/runkids/skillshare/issues/580)) ([8f55e58](https://github.com/runkids/skillshare/commit/8f55e5899927e136fa4ec19ec5548f11ffdbe096)) -* **ui:** keep all local or all remote in the pull conflict dialog ([a2112ff](https://github.com/runkids/skillshare/commit/a2112ff68157ed121e1f724334e1a190db4a3bec)) -* **ui:** update outdated memory guidance in one step ([364af36](https://github.com/runkids/skillshare/commit/364af363917ad58b170298d72a494e3f5d7f2821)) +#### MCP + +- **Keep per-Agent settings in the source** — a server's `options` map holds native fields that have no portable equivalent, such as a Codex approval mode or a Claude Code timeout. Sync writes each block only to its Agent, including its account targets, and keeps it when recreating an entry. Pi continues to use `piOptions`. The dashboard's **Other Agent settings** editor accepts one JSON object per Agent. Refs: #579, #580. + ```yaml + mcp: + servers: + docs: + url: https://example.com/mcp + targets: [codex, claude] + options: + codex: + default_tools_approval_mode: approve + claude: + timeout: 600000 + ``` + - Fields already managed by portable settings are refused. Credentials must be whole-value environment references supported by the receiving Agent; plaintext credentials are refused. +- **Load served skills into Executor** — `mcp serve --http` now also publishes `/.well-known/agent-skills/index.json` and the skill files that Executor's `wellKnownSkills` loader reads. File changes update the index versions, so Executor picks them up on its next check without a commit or push. Refs: #583. + ```bash + skillshare mcp serve --http 127.0.0.1:8765 + skillshare mcp serve --check # also reports index coverage and skipped skills + ``` + - The index uses the MCP server's bearer token when configured. That token also authorizes MCP editing when enabled; use a separate server without `mcp.serve.edit` for a read-only connection. It leaves out skills Executor cannot load; `--check` explains why. Non-loopback serving still requires a token and TLS. Executor refuses private addresses by default; Cloud needs a public address, and self-hosted deployments must explicitly allow private fetches. + +#### Hooks + +- **Keep hook code and scripts in separate files** — use `codeFile` instead of inline extension code, or `{from: path}` for a script in `files`. Edit those files and run `hooks sync`; no YAML escaping is needed. Refs: #585, #586. + ```yaml + hooks: + entries: + lint: + bindings: + pi: + codeFile: hooks/lint.pi.ts + ``` + - Paths resolve against the config's folder, not the working directory or an entry passed with `--file`. They must stay inside that folder without passing through symlinks. A missing file stops config loading; a file changed after preview makes the apply stale. Saving keeps references; editing code or scripts in the dashboard stores the edit inline. + +#### Dashboard +- **Choose one side for every pull conflict** — **Keep all local** and **Keep all remote** select a whole-file resolution for every conflicting file. You can still override individual files before **Apply choices and pull**; selecting a side alone writes nothing. +- **Update outdated memory guidance together** — **Update to latest** opens the existing connection review with every outdated tool selected and its read/write modes preserved. You still review and apply the changes; modified guidance blocks are left alone. ### Bug Fixes -* **hooks:** keep a YAML block scalar's final newline in entry files ([#584](https://github.com/runkids/skillshare/issues/584)) ([36d04b5](https://github.com/runkids/skillshare/commit/36d04b526b65f0612d88a185628b663d50d07c6a)) -* **plugins:** honor native OMP marketplace builds ([#588](https://github.com/runkids/skillshare/issues/588)) ([829cbb1](https://github.com/runkids/skillshare/commit/829cbb176d278d880900996ab77245e8e6e04deb)) +#### Plugins + +- **OMP installs its own marketplace build** — when a repository ships same-named OMP and Claude builds, `plugin add --target omp` now uses `.omp-plugin/marketplace.json`, including a `package.json` with `omp.extensions` or the compatible `pi.extensions`. Claude catalog fallback applies only when there is no OMP catalog; a broken or missing native entry no longer silently installs the Claude build. Catalog versions reach the native install, and discovery and dashboard previews show each build's own path, version and components. Refs: #587, #588. + +#### Hooks + +- **YAML entry files keep their final newline** — `hooks add|edit --file` no longer drops the final newline from a trailing `code: |` block, so an extension written from it keeps the newline expected by formatters. JSON entry files were unaffected. Refs: #584. ## [0.25.13] - 2026-10-16