Skip to content

fix stale upload widget contracts - #1601

Open
Prasanna721 wants to merge 1 commit into
mainfrom
Prasanna721/reproduce-upload-mcp-error
Open

fix stale upload widget contracts#1601
Prasanna721 wants to merge 1 commit into
mainfrom
Prasanna721/reproduce-upload-mcp-error

Conversation

@Prasanna721

Copy link
Copy Markdown
Member

restores the app-only upload action still referenced by older ChatGPT catalogs while keeping direct uploads as the primary path.

  • fall back to upload-file-submit only when prepare-file-upload is unavailable
  • keep historical widget URIs compatible with both upload contracts
  • remove the unused protocol Durable Object and advertise honest stateless capabilities

tested with bun run test:unit, both MCP typechecks, git diff --check, and a Wrangler dry run.

@claude

claude Bot commented Aug 26, 2026

Copy link
Copy Markdown

Claude finished @Prasanna721's task in 1m 35s —— View job


Code Review Complete

  • Fetch PR diff and existing review comments
  • Analyze changes for bugs, security issues, and logic errors
  • Review surrounding code for boundary issues
  • Submit review with findings

Summary: Reviewed all 13 changed files. No bugs, security issues, or logic errors found. The implementation correctly adds backward compatibility for older app catalogs via a fallback upload-file-submit tool, while cleanly removing the unused SupermemoryMCP Durable Object with a proper migration. The widget fallback logic, schema validation, and error handling are all solid.

Score: 9/10 — Good to ship.

@claude claude 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.

Overview: Restores backward compatibility for older ChatGPT app catalogs by adding a fallback upload-file-submit tool while keeping direct uploads as the primary path, and cleanly removes the unused SupermemoryMCP Durable Object.

Issues found: None — this looks good to ship.

The implementation is solid:

  • The Durable Object removal is done correctly with a proper deleted_classes migration (v3)
  • The upload-file-submit compatibility tool has proper input/output schema validation via zod
  • The widget correctly tries prepare-file-upload first, then falls back to the compatibility path only when unavailable
  • Error handling chains correctly: compatibilityUpload.error ?? preparation.error ?? "Upload failed"
  • The SupermemoryClient.uploadFile method properly handles FormData construction, auth headers, timeouts, and response validation
  • Explicit listChanged: false capabilities accurately reflect the stateless runtime

The base64 encoding/decoding path for the compatibility upload is expected overhead for older catalogs and is clearly documented.

Score: 9/10

@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
supermemory-app 2aa46d4 Commit Preview URL

Branch Preview URL
Aug 26 2026, 07:34 PM

@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
❌ Deployment failed
View logs
supermemory-mcp 2aa46d4 Aug 26 2026, 07:32 PM

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.

1 participant