diff --git a/packages/plugins/plugin-missions/README.md b/packages/plugins/plugin-missions/README.md index f50e1ff5ba0..7f29bfef12c 100644 --- a/packages/plugins/plugin-missions/README.md +++ b/packages/plugins/plugin-missions/README.md @@ -4,7 +4,7 @@ First-party Missions plugin package for the current Paperclip alpha plugin runti This package now carries the installable mission workflow surface: -- manifest id `paperclipai.plugin-missions` +- manifest id `paperclip.missions` - scoped plugin API routes under `/api/plugins/:pluginId/api/*` - namespace migrations for mission-owned tables - worker handlers for mission initialization, draft summary reads, and placeholder follow-up workflow routes @@ -43,4 +43,5 @@ pnpm paperclipai plugin install ./packages/plugins/plugin-missions ``` The host loads `dist/manifest.js`, `dist/worker.js`, and `dist/ui/`, so install -after building. +after building. Plugin install is board-only in the current runtime; agent API +keys correctly receive `403 Board access required` for `/api/plugins/install`. diff --git a/packages/plugins/plugin-missions/src/manifest.ts b/packages/plugins/plugin-missions/src/manifest.ts index 8e0151d52ca..ff76c68f03d 100644 --- a/packages/plugins/plugin-missions/src/manifest.ts +++ b/packages/plugins/plugin-missions/src/manifest.ts @@ -17,7 +17,7 @@ export const MISSIONS_UI_SLOT_IDS = [ ] as const; const manifest: PaperclipPluginManifestV1 = { - id: "paperclipai.plugin-missions", + id: "paperclip.missions", apiVersion: 1, version: "0.1.0", displayName: "Missions", diff --git a/packages/plugins/plugin-missions/tests/plugin.spec.ts b/packages/plugins/plugin-missions/tests/plugin.spec.ts index 669eef5d605..822e11d8bc0 100644 --- a/packages/plugins/plugin-missions/tests/plugin.spec.ts +++ b/packages/plugins/plugin-missions/tests/plugin.spec.ts @@ -160,7 +160,7 @@ async function upsertMissionDocuments( describe("missions plugin package", () => { it("declares mission initialization surfaces", () => { expect(manifest).toMatchObject({ - id: "paperclipai.plugin-missions", + id: "paperclip.missions", database: { namespaceSlug: "missions", migrationsDir: "migrations", @@ -224,7 +224,7 @@ describe("missions plugin package", () => { const rootIssue = await harness.ctx.issues.get(rootIssueId, companyId); expect(rootIssue).toMatchObject({ - originKind: "plugin:paperclipai.plugin-missions", + originKind: "plugin:paperclip.missions", originId: `mission:${rootIssueId}`, billingCode: `mission:${rootIssueId}`, });