Skip to content

[comp] Production Deploy#3119

Merged
tofikwest merged 6 commits into
releasefrom
main
Jun 12, 2026
Merged

[comp] Production Deploy#3119
tofikwest merged 6 commits into
releasefrom
main

Conversation

@github-actions

@github-actions github-actions Bot commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

This is an automated pull request to release the candidate branch into production, which will trigger a deployment.
It was created by the [Production PR] action.


Summary by cubic

Lets unpinned framework instances adopt updates by diffing from the earliest published version, and adds stable public redirect URLs for MCP server downloads that always point to the latest release. Pins instances after apply and uses a cached, paginated, time-bounded GitHub lookup. Addresses Linear FRAME-2.

  • Bug Fixes

    • Framework sync and update preview fall back to the framework’s earliest published version for unpinned instances; return 400/404 when no base/update exists; labels use the correct base; tests cover frameworkVersion.findFirst and applySync.
  • New Features

    • Public GET /mcp/download/:target redirects to the asset on the latest apps/mcp-server/* release (targets: claude-desktop, macos-arm64, linux-x64, windows-x64) with 10‑min cache, pagination up to 5 pages, 5s timeouts, and stale-on-failure; excluded from OpenAPI.

Written for commit e52b6eb. Summary will update on new commits.

Review in cubic

github-actions Bot and others added 3 commits June 12, 2026 13:45
Framework instances with no currentVersion (e.g. created before versioning)
dead-ended the update flow: getUpdatePreview threw "Instance is not on any
version", so the review-update page got no data and redirected straight back
(no Apply button), and the sync threw too. The "Update available" banner
never cleared and editor changes never reached the org.

Both the preview and the sync now fall back to the framework's earliest
published version as the diff baseline when the instance is unpinned. The
apply is idempotent (creates only missing controls/tasks, reconciles
requirement-map edges against the target) so nothing duplicates, and it pins
currentVersionId at the end — healing the unpinned state for future updates.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…n-sync

fix(frameworks): let unpinned instances adopt version updates (FRAME-2)
@vercel

vercel Bot commented Jun 12, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
comp-framework-editor (staging) Ready Ready Preview, Comment Jun 12, 2026 3:58pm
2 Skipped Deployments
Project Deployment Actions Updated (UTC)
app (staging) Skipped Skipped Jun 12, 2026 3:58pm
portal (staging) Skipped Skipped Jun 12, 2026 3:58pm

Request Review

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

No issues found across 3 files

Confidence score: 5/5

  • Automated review surfaced no issues in the provided summaries.
  • No files require special attention.

Re-trigger cubic

tofikwest and others added 3 commits June 12, 2026 11:18
The MCP server's .mcpb and platform binaries are published as assets on the
`apps/mcp-server/vX.Y.Z` release stream, which is buried among the frequent
product releases — so version-pinned doc links rot every release and customers
(and CX) struggle to find the current bundle.

Add a public, version-neutral redirect endpoint that resolves the latest MCP
release at request time and 302s to the requested asset on GitHub's CDN:

  GET /mcp/download/claude-desktop -> mcp-server.mcpb
  GET /mcp/download/macos-arm64    -> mcp-server-bun-darwin-arm64
  GET /mcp/download/linux-x64      -> mcp-server-bun-linux-x64-modern
  GET /mcp/download/windows-x64    -> mcp-server-bun-windows-x64-modern.exe

- Never goes stale: resolves the newest `apps/mcp-server/*` release each call.
- No bandwidth cost: the file still downloads from GitHub's CDN; we only redirect.
- No rate-limit risk: the release lookup is cached ~10 min and serves a stale
  result if GitHub briefly fails.
- Excluded from the OpenAPI spec so it never becomes an MCP tool or docs entry.

Docs will be pointed at these URLs in a follow-up once this is deployed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Addresses the cubic review on PR #3120.

- The repo cuts several product releases a day, so a single 100-release page
  pushes the latest MCP release out of view within ~3 weeks of no MCP release —
  which would make every download 404. Now page through newest-first (stopping
  at the first MCP release) up to 500 releases.
- The GitHub fetch had no timeout, so a stalled upstream could hang the
  endpoint. Each request now uses AbortSignal.timeout(5s); a failure falls back
  to the cached release, or returns a clean 503 when there's no cache.

Issues identified by cubic.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
feat(api): stable download URLs for MCP server artifacts
@vercel vercel Bot temporarily deployed to staging – portal June 12, 2026 15:57 Inactive
@vercel vercel Bot temporarily deployed to staging – app June 12, 2026 15:57 Inactive
@tofikwest tofikwest merged commit b225791 into release Jun 12, 2026
12 checks passed
@claudfuen

Copy link
Copy Markdown
Contributor

🎉 This PR is included in version 3.80.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants