Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/release_please.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ jobs:
runs-on: ubuntu-latest

steps:
# .release-please-config.json pins both packages with "release-as": "0.1.0"
# for the first release. Remove it once 0.1.0 is published (#107).
- name: 🚀 Release Please
uses: googleapis/release-please-action@v5
with:
Expand Down
3 changes: 3 additions & 0 deletions .lycheeignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,6 @@

# Private sibling repositories the workflow token cannot read
^https://github\.com/VeryGoodOpenSource/vgv-wingspan

# release-please CHANGELOG compare links, whose tags exist only once the release PR merges
^https://github\.com/VeryGoodOpenSource/vgv_ai_cli/compare/
8 changes: 6 additions & 2 deletions .release-please-config.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,18 +10,22 @@
"pull-request-header": ":rotating_light: There are changes ready for release :rocket:\n\nℹ Merge this PR once the team confirms the release is ready.\n",
"group-pull-request-title-pattern": "chore: release ${branch}",
"include-component-in-tag": true,
"bump-minor-pre-major": true,
"bump-patch-for-minor-pre-major": true,
"packages": {
"packages/vgv_ai_cli": {
"release-type": "dart",
"component": "vgv_ai_cli",
"changelog-path": "CHANGELOG.md",
"include-component-in-tag": false,
"extra-files": ["pubspec.yaml", "lib/src/version.dart"]
"release-as": "0.1.0",
"extra-files": ["lib/src/version.dart"]
},
"packages/plugin_source": {
"release-type": "dart",
"component": "plugin_source",
"changelog-path": "CHANGELOG.md"
"changelog-path": "CHANGELOG.md",
"release-as": "0.1.0"
}
},
"plugins": [
Expand Down
4 changes: 3 additions & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,9 @@ A result with one status enum, such as `EntryHealth` or `ReversedEntry`, is buil

`lib/src/version.dart` carries the version release-please writes. **Never edit it by hand**, and never bump a version by hand either.

Both packages release together. release-please bumps each package's own `pubspec.yaml`, and the `linked-versions` plugin holds them at the same version, so a fix in `plugin_source` releases the CLI too — which is how a pin bump reaches users. Two lines need the generic updater and carry an `x-release-please-version` marker: this file, and the `plugin_source:` constraint in the CLI's `pubspec.yaml`. Nothing else should ever get that marker.
Both packages release together. release-please bumps each package's own `pubspec.yaml`, and the `linked-versions` plugin holds them at the same version, so a fix in `plugin_source` releases the CLI too — which is how a pin bump reaches users. Only this file needs the generic updater and carries an `x-release-please-version` marker. Nothing else should ever get that marker, least of all `pubspec.yaml`: release-please's `dart` updater rewrites the whole YAML and strips comments, so a marker there is silently lost.

The CLI depends on `plugin_source` with the hosted constraint `^0.1.0`, the way `mason_cli` depends on `mason`, and the workspace resolves it from `packages/plugin_source` locally. Before 1.0, `bump-patch-for-minor-pre-major` makes `feat:` and `fix:` both bump the patch, so the constraint holds release after release. A breaking change bumps the minor instead (`bump-minor-pre-major`), and its release PR fails `dart pub get` until the constraint is raised to match on the release branch — deliberately, since a breaking release deserves the look.

The CLI is tagged `vX.Y.Z` and `plugin_source` as `plugin_source-vX.Y.Z`; `pub_publish.yaml` fires on the former.

Expand Down
13 changes: 1 addition & 12 deletions packages/plugin_source/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,12 +1 @@
# 0.1.0

- feat: initial release.
- feat: resolve the pinned VGV plugins, `vgv-wingspan` and
`vgv-ai-flutter-plugin`, to a directory on disk, from the Claude Code plugin
cache or by cloning their pinned tag.
- feat: parse a Claude Code plugin's skills, agents, MCP servers and hooks
into a harness-neutral asset model.
- feat: validate each plugin file against an `ack` schema, throwing a
`PluginParseException` that names the file and the field.
- feat: `tool/bump_plugin_pins.dart` moves each pin to its plugin's latest
GitHub release.
# Changelog
33 changes: 1 addition & 32 deletions packages/vgv_ai_cli/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,32 +1 @@
# 0.1.0

- feat: initial release of `vgv_ai`, which configures the VGV plugins,
`vgv-wingspan` and `vgv-ai-flutter-plugin`, for these coding agent
harnesses:
- Claude Code, which installs the plugins natively from the marketplace.
- Gemini CLI
- Codex
- OpenCode
- Pi
- GitHub Copilot CLI
- Antigravity CLI
- feat: `install` configures every detected harness with the plugins' skills,
agents, commands, MCP servers and hooks, as far as each harness supports
them. Skills are shared under `~/.agents/skills`. Settings are merged, so
keys you own are kept, and what was written is recorded in
`~/.vgv_ai/manifest.json`.
- `--check` prints what would change without writing anything.
- `--force` overwrites your values where they conflict with VGV's.
- `--only <harness>` configures the named harnesses, detected or not, and
`--no-<harness>` skips one.
- feat: `doctor` reports, per harness, what VGV installed that is missing,
changed since, or not what this version installs, along with the installed
and pinned plugin versions. Every problem comes with the `install` command
that fixes it. It never changes harness config or the manifest, and takes
`--only` and `--no-<harness>`.
- feat: `uninstall` removes only what the manifest records, keeping your own
files, keys and sections.
- `--check` prints what would be removed without removing anything.
- `--force` also removes what you changed since install.
- `--only <harness>` and `--no-<harness>` narrow the run.
- feat: `update` updates the CLI to the latest version.
# Changelog
2 changes: 1 addition & 1 deletion packages/vgv_ai_cli/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ dependencies:
mason: ^0.1.0
mason_logger: ^0.3.6
path: ^1.9.1
plugin_source: ^0.1.0 # x-release-please-version
plugin_source: ^0.1.0
pub_semver: ^2.2.1
pub_updater: ^0.6.0
toml: ^0.18.0
Expand Down
Loading