Skip to content

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

Closed
timeleft-- wants to merge 1 commit into
codex/ansari-faithful-answers-076from
claude/mcp-chatgpt-publication
Closed

timeleft-- wants to merge 1 commit into
codex/ansari-faithful-answers-076from
claude/mcp-chatgpt-publication

Conversation

@timeleft--

Copy link
Copy Markdown
Member

Brings the plugin icon from MachineWisdomAI/ansari-faithful-answers#105 to iaser-ai#323, using SAGA's saga publish tool instead of a hand-written plugin/ folder.

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, so this is left for a decision.
  • App checks: 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>

@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 against codex/ansari-faithful-answers-076 (5 files, +75/-17) at e632702. I found no material defects.

Helmet-Review-Request: #6 (comment)

What I checked:

  • check-release.mjs: the old plugin/plugin.json mirror is replaced by apps/mcp/saga-publication.json in RELEASE_FILES, RELEASE_CONTENT and validateRelease. The content screen nulls both version and endpoint.expectedServer.version, so a release changes only the version fields. A missing endpoint is handled. No references to plugin/plugin.json remain in the repository.
  • saga-publication.json: valid JSON. version and expectedServer.version are both 0.16.6, matching package.json. Both asset paths exist.
  • Icon: it carries the nine brand-mark paths on the #15583e rounded square, as the description says.
  • Tests: the updated release tests cover version drift in both fields and the non-version-change refusal on the new file.

Validation run at this head (from apps/mcp):

  • tsx --test test/release.test.ts: 32/32 pass
  • eslint .: clean
  • tsc --noEmit: clean
  • node scripts/check-release.mjs --target dev: "Release check passed for dev"

Non-blocking notes:

  • The comment in check-release.mjs still says "the three small release files" while RELEASE_FILES lists four entries including pnpm-lock.yaml; this wording predates the PR.
  • As the description says, the endpoint.views and endpoint.tools (destructiveHint) checks are open, so the plugin ZIP can't be produced yet. This is outside this PR's scope.

@timeleft--

Copy link
Copy Markdown
Member Author

Superseded by #8: the same commit rebased onto develop at 3a072da, now that iaser-ai#323 has merged. A new branch avoids force-pushing this one.

@timeleft-- timeleft-- closed this Oct 29, 2026
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