Skip to content

feat(plugin): emit optional plugin.logo into Cursor manifests - #267

Merged
ScriptedAlchemy merged 1 commit into
mainfrom
feat/246-plugin-logo
Sep 2, 2026
Merged

feat(plugin): emit optional plugin.logo into Cursor manifests#267
ScriptedAlchemy merged 1 commit into
mainfrom
feat/246-plugin-logo

Conversation

@ScriptedAlchemy

Copy link
Copy Markdown
Owner

Summary

Closes #246.

  • Optional plugin.logo (project-relative path) on config; build-time validation (AB4012, AB40xx plugin-metadata family) requires a real file inside the project root.
  • Cursor artifacts copy the image to assets/<project-relative path> and .cursor-plugin/plugin.json references it as ./assets/…; the multi-host plugin bundle shares one copy. The pinned Cursor plugin schema already permits logo (path or absolute URL), asserted by adapter-metadata.test.ts — no schema/provenance rewrite needed.
  • Honest omission elsewhere: Claude/Codex manifests have no icon field and do not grow one; locked by tests (not.toHaveProperty('logo') on both single-host and bundle manifests; their pinned schemas are additionalProperties: false).
  • Artifact-validator coverage (AB6025): a manifest-declared logo that is missing from the artifact or escapes the deploy tree fails validation; http(s) URLs are exempt from local existence.
  • Generated plugin contract matrix: catch source→artifact→dev→installed-host drift before release #218 staged-install proof extended: the installed Cursor manifest's logo path must resolve inside the deploy tree and exist there.
  • docs/diagnostics.md documents AB4012 and the AB60xx family row; changeset: agent-bundle minor.

Test plan

  • New plugin-logo.test.ts (validation, normalization, Cursor emission, bundle omission) — pass
  • cursor-adapter.test.ts, adapter-metadata.test.ts, normalization.test.ts — pass
  • Integration: plugin-bundle.test.ts, artifact-validator.test.ts (AB6025 negative+positive), host-install-proof.test.ts (Claude/Codex/Cursor with logo-bearing fixture) — pass
  • pnpm build, pnpm typecheck, pnpm lint green on HEAD rebased over origin/main (includes the chore(adapters): strip self-pinning of repo-owned capability tables #261 capabilities-lane merge)

Cursor already allows a relative logo path; declare it in config, copy the
image into the artifact, and leave Claude/Codex manifests without an invented icon field.
@changeset-bot

changeset-bot Bot commented Sep 2, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 0455b19

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
agent-bundle Minor

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

@ScriptedAlchemy
ScriptedAlchemy merged commit 738b14b into main Sep 2, 2026
4 checks passed
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 2, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-02T03:16:29.116661Z 0455b19 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Emit plugin logo/icon into host manifests that support it (Cursor plugin.json 'logo')

1 participant