Skip to content

Add ChatGPT web plugin publication path - #81

Merged
trissim merged 4 commits into
mainfrom
chatgpt-web-plugin
Jul 28, 2026
Merged

Add ChatGPT web plugin publication path#81
trissim merged 4 commits into
mainfrom
chatgpt-web-plugin

Conversation

@trissim

@trissim trissim commented Jul 28, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • add a stateless hosted Streamable HTTP MCP boundary with public read-only and
    private OAuth-introspection modes
  • derive hosted capability availability, names, annotations, and read-only
    enforcement from the existing OpenHCS capability declarations and registry
  • add a validated ChatGPT plugin package/review-bundle generator without copied
    tool lists or schemas
  • add a release-pinned, unprivileged hosted MCP container definition
  • add public support, privacy, and terms pages plus whole-site reference
    validation
  • expose the reviewed custom-function registration operation on the default
    desktop MCP authoring surface while preserving its mutating/destructive
    classification and local-only transport boundary
  • document deployment, domain verification, ChatGPT registration, and review
    requirements

Architecture

AgentCapabilityDeclaration and the capability registry remain the authority
for hosted capability identity and availability. AgentCapabilitySpec owns the
read-only classification, while McpHttpAuthenticationMode owns authentication
projection. The HTTP and package boundaries query those owners rather than
maintaining transport-specific tool catalogs, mutation predicates, schema
copies, or compatibility lookup tables.

Desktop authoring exposure is likewise declaration-owned:
RegisterCustomFunctionCapability is a standard primary authoring operation,
and its existing mutation and side-effect metadata projects the MCP destructive
annotations. The hosted transport remains ineligible for that capability.

An AST deletion gate prevents hosted transport/package code from copying
capability names or re-deriving mutation semantics.

Verification

  • targeted hosted MCP, capability, package, and website suites passed
  • 372 capability, authoring-context service, and MCP-server regression tests
    passed after exposing desktop custom-function registration
  • independent architecture re-review passed after correcting all findings
  • Ruff lint and formatting checks passed
  • plugin package validator passed against a generated package
  • built a real wheel and verified the hosted MCP module, mcp-http extra, and
    openhcs-mcp-http entry point
  • Sphinx reference and source validation passed with the dummy builder

The public hosted endpoint and ChatGPT listing are not claimed to be live by
this PR. They remain deployment and OpenAI registration steps after merge and
release.

Copilot AI review requested due to automatic review settings July 28, 2026 09:29

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@augmentcode

augmentcode Bot commented Jul 28, 2026

Copy link
Copy Markdown

PR Risk Analyzer Agent🛡️

👀 Human Input Needed
A pair-review briefing is ready for you.

→ Pair Review Briefing

@augmentcode augmentcode Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Deep Code Review Agent🐛

Review completed with 1 suggestions.

Fix in Cosmos

EXPOSE 8000

HEALTHCHECK --interval=30s --timeout=5s --start-period=30s --retries=3 \
CMD ["python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8000/healthz', timeout=4).read()"]

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The container health check calls /healthz with Host: 127.0.0.1:8000, but the HTTP server applies the configured allowed-host policy to operational routes as well; with the documented production value of only the public host, Docker will mark otherwise healthy containers unhealthy even though /healthz exists.

Severity: medium


🤖 Was this useful? React with 👍 or 👎

@trissim
trissim merged commit b473391 into main Jul 28, 2026
34 checks passed
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