Commit Graph
35 Commits
Author SHA1 Message Date
walterchengandClaude Opus 5 74674412e3 docs: correct the marketplace dispatch comment
The comment said a release of an existing plugin leaves the catalogue
byte-identical "because entries carry no version and npm resolves latest",
so the dispatch existed only to surface a *new* plugin promptly.

The generator now records the resolved version in the codex manifest, so a
release does change the catalogue's bytes. That was the point of pinning:
without a version, codex compared byte-identical documents, concluded the
catalogue had not moved, and left the installed plugin on whatever it first
resolved.

Comment only — the step already behaved correctly for both cases. Worth
fixing because the old wording invites the reader to skip wiring up
marketplace_dispatch_url unless they are adding a plugin, which is how one
consumer ended up without it.

Co-Authored-By: Claude Opus 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01MgsFmepr9FxbFkax5Y2h6z
2026-08-24 08:50:02 -04:00
Walter Cheng d54502067f Merge pull request #12 from walter-base/flat-layout-and-central-marketplace
feat: target the flat layout and the central marketplace
2026-08-23 20:06:18 -04:00
walterchengandClaude Opus 5 c8c80f4133 feat: target the flat layout and the central marketplace
Three defects, all of which surfaced flattening the first repository.

The two reusable workflows described the same layout differently: CI left
codex_plugin_root and cursor_plugin_root empty while release defaulted both to
a scaffold path. A repository that stopped shipping a nested plugin therefore
passed CI and failed release, on a directory it had never had. Both now default
to the repository itself, with cursor validation off unless asked for.

claude_marketplace_file defaulted to a manifest that a plugin repository no
longer carries, because the marketplace is generated centrally from the package
registry rather than committed to each repo.

The installation notes documented the flow this replaces — a per-release
installer URL, or a marketplace add against the repo at a tag. With a central
marketplace the instructions no longer mention the version at all: the manifest
names the package and npm resolves the newest.

Adds a dispatch step so a newly published plugin reaches the marketplace
promptly. Gitea's registry_package event cannot serve here — it only fires for
packages linked to the repository, and these are published from GitHub — so the
generator is called over Gitea's API instead. The step never fails the release:
the package is already published, and the generator's schedule catches up.

Co-Authored-By: Claude Opus 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01MgsFmepr9FxbFkax5Y2h6z
2026-08-23 19:59:20 -04:00
Walter Cheng bf74e5bf65 Merge pull request #11 from walter-base/fix/require-release-package-names 2026-08-19 11:52:08 -04:00
Walter Cheng 13e447f4ed feat: publish catalog metadata 2026-08-19 10:55:26 -04:00
Walter Cheng 04065fef27 Merge pull request #10 from walter-base/fix/require-release-package-names 2026-08-19 08:57:19 -04:00
Walter Cheng 537e0babdb fix: require release package names 2026-08-19 08:54:23 -04:00
Walter Cheng 947c2e2b38 Merge pull request #9 from walter-base/feat/npm-registry-publishing 2026-07-26 15:33:44 -04:00
Walter ChengandClaude Opus 5 c33db49634 docs: correct npm scope guidance
The scope routes installs to the registry via .npmrc; it does not have to
match the registry owner. Gitea's own example maps an `@test` scope to a
`testuser` registry URL.

Co-Authored-By: Claude Opus 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Jm9AfbCJBD4tkxnxxnq7Wm
2026-07-26 14:18:19 -04:00
Walter ChengandClaude Opus 5 936760d68f feat: publish release contents to an npm registry
The generic archive and its installer are opaque to coding agents: something
external has to download and unpack them, which is why the generated installer
script exists. Agents can resolve npm packages on their own, so publishing the
same release contents to an npm registry lets them install and update without
an installer in the loop.

Opt in with `publish_npm`. The package is built from the same staged directory
as the generic archive, so the two cannot drift, and `package.json` is generated
with the release version so it stays in step with the plugin manifest versions
that release-please already bumps.

Two npm behaviours are handled explicitly:

- `npm pack <path>` without a leading `./` is parsed as a GitHub owner/repo
  spec, so npm attempts a clone instead of packing the directory.
- npm's ignore rules can drop dot-directories, and the agent catalogs live in
  `.agents/` and `.claude-plugin/`. The packed tarball is verified to contain
  every released path before publishing, rather than shipping a package that
  installs but has no catalog.

The generic archive, installer, and GitHub Release paths are unchanged, so
existing consumers are unaffected.

Co-Authored-By: Claude Opus 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Jm9AfbCJBD4tkxnxxnq7Wm
2026-07-26 14:15:10 -04:00
Walter Cheng f4f4a3acac Merge pull request #8 from walter-base/fix/direct-gitea-installer-summary
fix: use direct Gitea installer commands
2026-07-18 20:16:07 -04:00
Walter Cheng b7c98d8d49 fix: use direct gitea installer commands 2026-07-18 20:15:18 -04:00
Walter Cheng d77f7a9f8e Merge pull request #7 from walter-base/feat/gitea-installers-followup
feat: publish Gitea installers for all agents
2026-07-18 19:57:58 -04:00
Walter Cheng 70ab41b51b fix: use one installer in release summary 2026-07-18 10:59:35 -04:00
Walter Cheng 2f9e4b7ba3 feat: add archive update command 2026-07-18 10:57:55 -04:00
Walter Cheng da039268e8 refactor: use one agent installer archive 2026-07-18 10:45:31 -04:00
Walter Cheng 2e9ae29424 feat: publish installers for all agents 2026-07-18 10:11:57 -04:00
Walter Cheng 436afe41ab fix: resolve marketplace name from artifact 2026-07-18 10:11:57 -04:00
Walter Cheng 1ad5dde9ce Merge pull request #6 from walter-base/feat/gitea-agent-installers
feat: publish agent installers to Gitea
2026-07-18 01:42:27 -04:00
Walter Cheng 4eca7981c5 feat: publish agent installers to gitea 2026-07-18 01:36:43 -04:00
Walter Cheng e3e41de37d Merge pull request #5 from walter-base/fix/gitea-native-plugin-summary
fix: preserve gitea release with native plugin summary
2026-07-18 00:51:27 -04:00
Walter Cheng a7768c7f9a fix: preserve gitea release with native plugin summary 2026-07-18 00:50:35 -04:00
Walter Cheng 354cd2ab9e Merge pull request #4 from walter-base/fix/native-plugin-summary
fix: publish native plugin installation summary
2026-07-18 00:40:39 -04:00
Walter Cheng 6cbede367d fix: publish native plugin installation summary 2026-07-18 00:33:54 -04:00
Walter Cheng f45d78ef26 Merge pull request #3 from walter-base/fix/direct-skill-summary
fix: show direct skill installation commands
2026-07-18 00:07:53 -04:00
Walter Cheng ca14e90a88 fix: show direct skill installation commands 2026-07-17 23:59:24 -04:00
Walter Cheng de6e7a27a0 Merge pull request #2 from walter-base/fix/clean-marketplace-summary
fix: write clean marketplace summaries
2026-07-17 23:35:38 -04:00
Walter Cheng 7ac5a3f89b fix: write clean marketplace summaries 2026-07-17 23:35:00 -04:00
Walter Cheng 70681a5ca1 Merge pull request #1 from walter-base/feat-agent-marketplace-release
feat: add reusable Gitea marketplace release publishing
2026-07-17 22:03:48 -04:00
Walter Cheng 9f6f621177 fix: preserve existing marketplace release behavior 2026-07-17 22:01:52 -04:00
Walter Cheng 48080b67c5 feat: add reusable agent marketplace release workflow 2026-07-17 21:58:17 -04:00
Walter Cheng 4ba9532d12 fix: escape markdown fences in release summary 2026-07-17 15:07:01 -04:00
Walter Cheng b996cc50c9 fix: clean release installation summary 2026-07-17 14:31:06 -04:00
Walter Cheng f29bb6362e fix: use system token in release workflow 2026-07-17 14:07:55 -04:00
Walter Cheng a4c35a2464 feat: publish generic agent marketplace workflows 2026-07-17 13:49:49 -04:00