feat(plugins)!: Unify plugin APIs#457
Merged
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
dcramer
added a commit
that referenced
this pull request
Jun 2, 2026
Fail during juniorNitro setup when a direct defineJuniorPlugins set contains trusted runtime hooks. Those hooks cannot be recovered from the virtual config unless the set is exported from an importable runtime module. Refs GH-457 Co-Authored-By: Codex GPT-5 <codex@openai.com>
dcramer
added a commit
that referenced
this pull request
Jun 2, 2026
Update generated API reference output after the plugin registration changes and docs check regeneration. Refs GH-457 Co-Authored-By: Codex GPT-5 <codex@openai.com>
Let apps define one plugin set and pass it to both Nitro and createApp. Manifest-only plugins use package-name strings, while trusted plugins carry inline manifests and hooks from app code. Remove split YAML registration for trusted hooks and move GitHub and Scheduler to JavaScript plugin definitions. This keeps trusted runtime behavior explicit without forcing manifest-only packages to write unused code. Fixes GH-453 Co-Authored-By: GPT-5 Codex <codex@openai.com>
Let juniorNitro point at a runtime-safe plugin module so apps only declare enabled plugins once. createApp now reads that module through #junior/config while preserving explicit package enablement. This keeps trusted hook functions available at runtime without importing nitro.config.ts into the server bundle. Refs GH-453 Co-Authored-By: GPT-5 Codex <codex@openai.com>
Fail during juniorNitro setup when a direct defineJuniorPlugins set contains trusted runtime hooks. Those hooks cannot be recovered from the virtual config unless the set is exported from an importable runtime module. Refs GH-457 Co-Authored-By: Codex GPT-5 <codex@openai.com>
Update generated API reference output after the plugin registration changes and docs check regeneration. Refs GH-457 Co-Authored-By: Codex GPT-5 <codex@openai.com>
Use an explicit TypeScript extension for the dashboard config import so Node ESM can resolve the runtime plugin module during the Nitro example build. Co-Authored-By: Codex GPT-5 <codex@openai.com>
Restore dashboard inline manifest registration and update tests to use defineJuniorPlugins after rebasing onto the latest plugin API contract. Co-Authored-By: Codex GPT-5 <codex@openai.com>
dab53f7 to
cf9b081
Compare
Parse trusted JavaScript plugin manifests through the same effective manifest pipeline as plugin.yaml so install-level overrides and validation apply consistently. Update dashboard and plugin registration docs to point at defineJuniorPlugins module registration after the plugin API changes. Refs GH-457 Co-Authored-By: Codex GPT-5 <codex@openai.com>
Load runtime plugin modules only when the virtual config or compiled hook needs the plugin set. This keeps Nitro setup from starting asynchronous module imports early while preserving the shared plugin-set result. Also remove a stale plugins.packages label from the generic package-name validator. Refs GH-457 Co-Authored-By: Codex GPT-5 <codex@openai.com>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 0d84269. Configure here.
Inline trusted plugin registrations should only own package skills when their declared package actually ships a skills directory. Do not assign app-level skills to package-less trusted plugins. Refs GH-457 Co-Authored-By: Codex GPT-5 <codex@openai.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Adds explicit plugin sets as the single enablement gate for Junior plugins. Installing a package is not enough; package content is discovered only when a package name or trusted factory is listed in
defineJuniorPlugins(...). Nitro now injects that enabled set through#junior/config, so the server entry no longer repeats the declaration.Before
Trusted plugins had to split metadata and hooks, and apps had separate build/runtime declarations:
The first unification pass made that safer, but still required wiring the same set twice:
After
Apps export one runtime-safe plugin set and point Nitro at that module.
createApp()reads the same enabled set from Nitro's virtual module:Trusted Plugins
GitHub and Scheduler now provide JavaScript registrations with inline manifests and trusted hooks. Manifest-only packages remain package-name strings. The separate
plugins.tsmodule stays intentional because trusted hooks are live functions; importingnitro.config.tsat runtime would pull build config into the server bundle, and serializing hooks is not viable.junior check, docs, package READMEs, generated API reference, and specs now point users at the explicitdefineJuniorPlugins(...)path instead of the removedpluginPackages/plugins.packagesshapes. Validated locally withpnpm typecheck,pnpm --filter @sentry/junior test,pnpm docs:check,pnpm skills:check,pnpm release:check, andpnpm --filter @sentry/junior-example exec nitro build.Fixes GH-453