Skip to content

feat(mcp): add the ChatGPT publication input with Ansari's icon - #8

Open
timeleft-- wants to merge 1 commit into
developfrom
claude/mcp-chatgpt-publication-develop
Open

timeleft-- wants to merge 1 commit into
developfrom
claude/mcp-chatgpt-publication-develop

Conversation

@timeleft--

Copy link
Copy Markdown
Member

A follow-up to iaser-ai#323, now merged. It brings the plugin icon from MachineWisdomAI/ansari-faithful-answers#105 to the MCP app, using SAGA's saga publish tool instead of a hand-written plugin/ folder.

This replaces #6. It's the same commit (e632702), rebased onto develop at 3a072da, which merged iaser-ai#323. A new branch avoids force-pushing #6's. Until #7 brings this fork's develop up to 3a072da, the diff here also shows iaser-ai#323's commits.

Changes

  • apps/mcp/saga-publication.json. The release input saga publish prepare --target chatgpt reads.
  • apps/mcp/assets/ansari-plugin-icon.svg. The nine paths from assets/brand-mark.ts, unchanged, on the card's #15583e green rounded square, with the same bytes as chore(porch): 100 complete iaser-ai/ansari#105's icon. Both assets.logo and assets.composerIcon point at it. With feat: default prepared ChatGPT plugins to SAGA branding saga-a2ui#339, a missing field falls back to the SAGA seahorse, so Ansari has to supply both.
  • Release gate. The version mirror was plugin/plugin.json, a file this repository never had. It now checks the release input's version and endpoint.expectedServer.version against package.json. The release-files screen blanks both of those fields.
  • README. A short "ChatGPT plugin" section explains the input and how to run the tool. The tool isn't on npm, so it runs from a saga-a2ui checkout.

The artwork notice is unchanged: the icon is the MIT-licensed attribution mark that assets/NOTICE.md already covers.

Validation

  • saga publish prepare --target chatgpt at saga-a2ui#339's head (54b8cab), against the Dev endpoint. The input, discovery, identity (ansari-mcp 0.16.6), manifest, MCP config, listing, assets, components and secrets checks all pass. "The logo and composer icon are present, square, valid and within the size limits."
  • The assembled package, from the tool's own assemblePackage on this input:
    • It holds three entries: plugin.json, mcp.json and assets/ansari-plugin-icon.svg, byte-identical to the committed file. There's no SAGA seahorse.
    • interface.logo and interface.composerIcon are both ./assets/ansari-plugin-icon.svg.
  • Two checks fail, so no ZIP was written:
    • endpoint.views: Dev still serves the fc40c24 build, not this one. Preparing a package needs Dev redeployed from this branch.
    • endpoint.tools: the ChatGPT plugin guidelines want destructiveHint set explicitly. The tool keeps the legacy server's readOnlyHint and openWorldHint only, as Amr's parity item asked. Keeping them was decided on October 29, 2026.
  • App checks at 3a072da + this commit: lint, typecheck, Node and Worker builds, and 142/142 tests (release tests 32/32).
  • Release gate: check-release --target dev passes. With the input's version set to 0.16.5 it fails with "saga-publication.json version (0.16.5) differs".

Nothing was deployed, uploaded or submitted.

🤖 Generated with Claude Code

Add saga-publication.json, the release input SAGA's saga publish tool
uses to prepare the ChatGPT plugin package. It names Ansari's listing,
the Dev endpoint and the build, and points both the logo and the
composer icon at assets/ansari-plugin-icon.svg: the unchanged floral
mark from brand-mark.ts on the card's green. Supplying both keeps
SAGA's default artwork out of Ansari's package.

The release gate's version mirror moves from a plugin/plugin.json this
repository never had to the release input, and also requires its
endpoint.expectedServer.version to match the app version.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@timeleft--
timeleft-- changed the base branch from develop to main October 29, 2026 21:32
@timeleft--
timeleft-- changed the base branch from main to develop October 29, 2026 21:33

@yia-mw-agent yia-mw-agent left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wait

@yia-mw-agent yia-mw-agent left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed the full merge-base-to-head diff (base develop, merge-base 3a072da, head b75a3cc, 5 files, +75/-17). No material defects.

Helmet-Review-Request: #8 (comment)

What I checked

  • Release gate (apps/mcp/scripts/check-release.mjs): RELEASE_FILES, RELEASE_CONTENT and validateRelease now point at apps/mcp/saga-publication.json. The release-files screen blanks both version and endpoint.expectedServer.version, and validateRelease compares both against package.json. No reference to the old plugin/plugin.json remains anywhere in the repo.
  • Tests (apps/mcp/test/release.test.ts): the fixtures and assertions are updated to match, including the new expectedServer.version mismatch case. The "beyond the release version" check still exercises a changed publication file.
  • Icon (apps/mcp/assets/ansari-plugin-icon.svg): parses as valid XML. Its nine paths are identical to those in the embedded brand-mark.ts. It sits on a #15583e rounded rect, matching the card's mark surface.
  • saga-publication.json: valid JSON. Version 0.16.6 matches package.json and the expected server. assets.logo and assets.composerIcon both resolve to the committed SVG, and build points at dist/view.html, which the build actually produces.
  • README: the new section matches the input and the gate's behaviour.

Validation (from the head checkout, apps/mcp): pnpm lint and pnpm typecheck pass. pnpm build and pnpm build:worker succeed. pnpm test passes 142/142. node scripts/check-release.mjs --target dev passes. I did not run the SAGA publish prepare tool or the browser tests, and did not contact the Dev endpoint; the PR description states the two known saga publish findings (Dev still serving the older build, and destructiveHint left unset by design).

Non-blocking

  • The comment in check-release.mjs still says "the three small release files" while RELEASE_FILES has four entries (this predates the PR).

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.

2 participants