fix(plugin-cli): rename --aggregator flag to --registry-url#1092
Conversation
The discovery commands ('search', 'info') used '--aggregator <url>'
while the env var 'EMDASH_REGISTRY_URL', the default URL host
('registry.emdashcms.com'), and the user-facing concept all spoke of
the 'registry'. Three surface words for adjacent concepts hurt the
read-out-loud test.
Rename the flag to '--registry-url' to converge on a single user-facing
term. Internally the helper still calls into an aggregator service
(the registry is the broader system; an aggregator is one indexer of
it) — the rename only affects what users type.
Also fix the README's '--json' surface description, which mirrored the
out-of-date docs claim that 'all commands accept --json'.
🦋 Changeset detectedLatest commit: cbab750 The changes in this PR will be included in the next version bump. This PR includes changesets to release 3 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
emdash-perf-coordinator | cbab750 | May 18 2026, 03:51 PM |
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
emdash-i18n | cbab750 | May 18 2026, 03:51 PM |
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
docs | cbab750 | May 18 2026, 03:52 PM |
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
emdash-demo-cache | cbab750 | May 18 2026, 03:52 PM |
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
emdash-playground | cbab750 | May 18 2026, 03:54 PM |
The CLI flag for overriding the discovery endpoint is being renamed from --aggregator to --registry-url in #1092, matching the EMDASH_REGISTRY_URL env var and the user-facing concept of a registry. Update the docs to use the new flag name and drop the user-facing mention of 'aggregator' in publishing.mdx in favour of 'registry'.
@emdash-cms/admin
@emdash-cms/auth
@emdash-cms/blocks
@emdash-cms/cloudflare
emdash
create-emdash
@emdash-cms/gutenberg-to-portable-text
@emdash-cms/x402
@emdash-cms/plugin-ai-moderation
@emdash-cms/plugin-atproto
@emdash-cms/plugin-audit-log
@emdash-cms/plugin-color
@emdash-cms/plugin-embeds
@emdash-cms/plugin-forms
@emdash-cms/plugin-webhook-notifier
commit: |
There was a problem hiding this comment.
Pull request overview
This PR aligns the @emdash-cms/plugin-cli discovery command flag naming with the rest of the registry surface by renaming the search/info override flag from --aggregator to --registry-url, and updates related docs/changelog entries.
Changes:
- Rename discovery override flag from
--aggregatorto--registry-urlinsearchandinfo. - Update shared config docs to reference the new flag name.
- Update the plugin-cli README and add a changeset describing the rename.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| packages/plugin-cli/src/config.ts | Updates inline documentation to reference --registry-url. |
| packages/plugin-cli/src/commands/search.ts | Renames the CLI flag to --registry-url and uses it when resolving the aggregator URL. |
| packages/plugin-cli/src/commands/info.ts | Renames the CLI flag to --registry-url and uses it when resolving the aggregator URL. |
| packages/plugin-cli/README.md | Updates CLI documentation for --json and the discovery override flag name. |
| .changeset/plugin-cli-registry-url-flag.md | Adds release note for the flag rename. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| "registry-url": { | ||
| type: "string", | ||
| description: "Override aggregator URL (defaults to EMDASH_REGISTRY_URL or experimental host)", | ||
| description: "Override registry URL (defaults to EMDASH_REGISTRY_URL or experimental host)", | ||
| }, | ||
| json: { | ||
| type: "boolean", | ||
| description: "Output as JSON", | ||
| }, | ||
| }, | ||
| async run({ args }) { | ||
| const aggregatorUrl = resolveAggregatorUrl(args.aggregator); | ||
| const aggregatorUrl = resolveAggregatorUrl(args["registry-url"]); | ||
| const limit = clamp(parseInt(args.limit, 10) || 25, 1, 100); |
| "registry-url": { | ||
| type: "string", | ||
| description: "Override aggregator URL", | ||
| description: "Override registry URL", | ||
| }, | ||
| json: { | ||
| type: "boolean", | ||
| description: "Output as JSON", | ||
| }, | ||
| }, | ||
| async run({ args }) { | ||
| const aggregatorUrl = resolveAggregatorUrl(args.aggregator); | ||
| const aggregatorUrl = resolveAggregatorUrl(args["registry-url"]); | ||
| const client = new DiscoveryClient({ aggregatorUrl }); |
| "@emdash-cms/plugin-cli": patch | ||
| --- | ||
|
|
||
| Renames the `--aggregator` flag on `search` and `info` to `--registry-url` for consistency with the `EMDASH_REGISTRY_URL` env var and the rest of the user-facing surface. Internally the override still selects the aggregator service to query — the rename only affects what users type. |
* docs(plugins): document the plugin CLI, manifest, and authoring-shape changes (#1040, #1057) Adds migration guides for site operators and plugin authors, new reference pages for emdash-plugin.jsonc and the emdash-plugin CLI, and rewrites the sandboxed-plugin guides to the new default-export shape. Migration guides follow Astro's breaking-changes format; Atmosphere account terminology used throughout. * docs(plugins): apply definition-by-negation / builder-salience standard Self-review of #1059 against the standards formalized since it was written. Removed definition-by-negation and bundle-internal framing from the guide pages (migration guides left as-is — comparison/changelog is their purpose): - 'You do not write a descriptor or a build script' -> dropped (the positive sentence already says what build does) - 'the build produces both, so you never hand-write either' -> 'generates both' - 'type-only, so the emdash runtime does not enter the plugin bundle' / 'the bundler erases them — no emdash runtime enters' -> 'provides only types, so a sandboxed plugin has no runtime dependency on emdash' - 'you never write it by hand' -> 'EmDash derives ... automatically' - 'init never requires extra flags to succeed' -> 'A slug is the only required input' - 'wire-side filename' -> '(the filename the registry expects)' - 'The registry never stores your plugin's code' lead -> dropped; the positive 'you host the tarball; registry stores a link' carries it Tropes scan clean; em-dashes appositive; bold bullets definitional. * docs(plugins): address review feedback on #1059 - Manifest profile prose lists author and security contact as required, matching the table and the actual ManifestSchema (.refine() rules in packages/plugin-cli/src/manifest/schema.ts require one of author/ authors and one of security/securityContacts). - Publishing prerequisites match the same required-fields story. - Bundle flag documentation uses kebab-case (--out-dir, --validate-only) to match the post-rename CLI (#1091). - your-first-plugin scaffolding example bumps emdash to >=0.13.0 (the first release exposing the emdash/plugin entrypoint) and pins @emdash-cms/plugin-cli to 0.2.0 (exact pin per the publishing page's experimental-registry guidance). * docs(plugins): address second round of review feedback on #1059 - api-routes: clarify that the route URL segment is the plugin's slug (the same value as ctx.plugin.id at runtime) — previously phrased as <plugin-id> without explaining what that is. - api-routes: SandboxedRouteContext is non-generic in emdash/plugin (input is unknown; authors narrow with a route-level Zod schema). The earlier reference snippet showed a TInput generic that doesn't exist in the exported type. - cli: --json is supported by the non-interactive output commands (whoami, validate, search, info, login, publish), not all commands — logout, switch, init, build, dev, bundle do not define a json arg. * docs(plugins): align discovery flag and prose on registry terminology The CLI flag for overriding the discovery endpoint is being renamed from --aggregator to --registry-url in #1092, matching the EMDASH_REGISTRY_URL env var and the user-facing concept of a registry. Update the docs to use the new flag name and drop the user-facing mention of 'aggregator' in publishing.mdx in favour of 'registry'.
What does this PR do?
The discovery commands (
search,info) on@emdash-cms/plugin-cliaccept a--aggregator <url>flag to override the registry endpoint. The env var, the default URL host (registry.emdashcms.com), and the user-facing concept all speak of the registry. Three surface words for adjacent concepts hurts the read-out-loud test:Rename the flag to
--registry-urlto converge on one user-facing term.emdash-plugin search "image" --registry-url https://registry.example.comInternally the helper still queries an aggregator service. The registry is the broader system (atproto records on PDSes plus aggregator indexers); an aggregator is one indexer of it. The rename only changes what users type, not what the code does —
resolveAggregatorUrl()andDEFAULT_AGGREGATOR_URLstay as-is.Surfaced during review of #1059.
Also fixes the README's
--jsondescription while we're at it (it mirrored the out-of-date "all commands accept --json" claim being corrected in the docs PR).Closes #
Type of change
Checklist
pnpm typecheckpassespnpm lintpassespnpm testpasses (or targeted tests for my change)pnpm formathas been runmessages.pochanges except in translation PRs — a workflow extracts catalogs on merge tomain.AI-generated code disclosure
Screenshots / test output
Tests: 256/256 passing in
packages/plugin-cli. Typecheck clean.