Maintenance Plugin
The maintenance plugin ships app-maintainer workflows for keeping a Junior app current. Apps created with junior init include it by default.
The plugin itself requires no credentials, OAuth, or provider configuration. Its skills use the app’s existing package manager and repository tooling.
Install
Section titled “Install”If your app was created with a recent junior init, @sentry/junior-maintenance is already installed and registered.
For an existing app:
pnpm add @sentry/junior-maintenanceRuntime setup
Section titled “Runtime setup”Add the package name to the plugin set exported from plugins.ts:
import { defineJuniorPlugins } from "@sentry/junior";
export const plugins = defineJuniorPlugins([ "@sentry/junior-maintenance",]);Point juniorNitro() at that module in nitro.config.ts:
import { defineConfig } from "nitro";import { juniorNitro } from "@sentry/junior/nitro";
export default defineConfig({ preset: "vercel", modules: [ juniorNitro({ plugins: "./plugins", }), ], routes: { "/**": { handler: "./server.ts" }, },});Configure environment variables
Section titled “Configure environment variables”No environment variables are required by the maintenance plugin.
The self-update skill uses the app’s existing package manager and repository tooling. If you want the skill to open or update pull requests automatically, the sandbox environment also needs a working GitHub CLI or GitHub plugin credentials.
Skills
Section titled “Skills”| Skill | Purpose |
|---|---|
self-update | Updates @sentry/junior and enabled @sentry/junior-* packages to the latest published release, syncs the lockfile, runs checks and builds, and opens a draft pull request. |
The self-update skill also builds a best-effort release summary from npm publish timestamps and merged PRs, and compares app config against Junior’s example app to catch config-shape drift before checks run.
The detailed step-by-step workflow lives in the skill itself.
Verify
Section titled “Verify”In Slack, ask Junior to update its Junior dependencies:
update this Junior app to the latest Junior packagesConfirm that Junior reports the current and target versions, bumps package files on a branch, runs checks, and opens or prepares a draft pull request.
Failure modes
Section titled “Failure modes”- Skill not available: confirm
@sentry/junior-maintenanceis installed, listed inplugins.ts, andjuniorNitro({ plugins: "./plugins" })is configured innitro.config.ts. - Version mismatch warning: keep
@sentry/juniorand@sentry/junior-*packages pinned to the same exact version. The skill will flag inconsistencies. - PR creation fails: confirm repository remotes and GitHub CLI auth are available in the sandbox, or finish the update manually from the prepared branch.
- Checks fail after update: the skill will surface breaking or config-relevant Junior PRs in the draft PR body. Review those items and compare your config with Junior’s example app.
Next step
Section titled “Next step”Read Plugins for the full plugin system, or junior init for the generated app shape.