Skip to content

fix: bundled supabase-plugin.tar.gz tarball release #37

Merged
Rodriguespn merged 2 commits into
mainfrom
fix/gemini-platform-tarballs
Jun 5, 2026
Merged

fix: bundled supabase-plugin.tar.gz tarball release #37
Rodriguespn merged 2 commits into
mainfrom
fix/gemini-platform-tarballs

Conversation

@Rodriguespn

@Rodriguespn Rodriguespn commented Jun 5, 2026

Copy link
Copy Markdown
Collaborator

Summary

The Gemini CLI extension installation via Github releases was failing after migrating to supabase-community/supabase-plugin because the new release contains 5 vendor archives, and the Gemini CLI asset selection logic can't identify the correct one.
Note: installation still works when the CLI clones the GitHub repo directly.

Screen.Recording.2026-06-05.at.19.17.46.mov

This PR bundles all plugin assets into a single supabase-plugin.tar.gz release tarball. With one asset in the release, findReleaseAsset returns it as the generic fallback. Each vendor install finds its own config files inside; Gemini CLI finds gemini-extension.json and ignores the rest.

supabase-plugin.tar.gz
├── .claude-plugin/
│   └── plugin.json
├── .codex-plugin/
│   └── plugin.json
├── .cursor-plugin/
│   └── plugin.json
├── .github/
│   └── plugin/
│       └── plugin.json
├── agents/
│   ├── claude/.mcp.json
│   ├── codex/.app.json
│   ├── copilot/.mcp.json
│   └── cursor/mcp.json
├── assets/
│   └── logo.svg
├── skills/
│   ├── supabase/
│   │   ├── SKILL.md
│   │   ├── assets/feedback-issue-template.md
│   │   └── references/skill-feedback.md
│   └── supabase-postgres-best-practices/
│       ├── SKILL.md
│       └── references/*.md
├── gemini-extension.json
└── SUPABASE.md

How Gemini CLI installs extensions

According to the Gemini CLI extensions docs, the Gemini CLI first checks if there is any GitHub release associated with the repo and, as a fallback, clones the repo and installs the plugin locally.

For the release-based method, findReleaseAsset tries the following asset naming conventions in order:

  • Platform and architecture-specific: {platform}.{arch}.{name}.{extension}
  • Platform-specific: {platform}.{name}.{extension}
  • Generic: A single asset will be used as a fallback if no specific match is found.

The previous repo (supabase-community/gemini-extension) had a single release asset (supabase-gemini-extension.tar.gz), so the generic fallback worked. The new repo (supabase-community/supabase-plugin) publishes 5 assets per release (claude, cursor, codex, copilot, gemini), so none match as the "single asset" generic fallback, causing release-based installation to fail with a 415 error when it falls through to the GitHub source tarball URL.

Closes AI-805

@Rodriguespn Rodriguespn self-assigned this Jun 5, 2026
@Rodriguespn Rodriguespn changed the title fix: ship platform-specific gemini extension tarballs fix: release installation for gemini extension Jun 5, 2026
@Rodriguespn
Rodriguespn marked this pull request as ready for review June 5, 2026 18:28
@Rodriguespn
Rodriguespn force-pushed the fix/gemini-platform-tarballs branch from 09c7008 to ab44b16 Compare June 5, 2026 19:24
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@Rodriguespn
Rodriguespn force-pushed the fix/gemini-platform-tarballs branch from ab44b16 to b4c19a9 Compare June 5, 2026 19:30
@Rodriguespn Rodriguespn changed the title fix: release installation for gemini extension fix: bundled supabase-plugin.tar.gz tarball release Jun 5, 2026

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

LGTM

@Rodriguespn
Rodriguespn merged commit b4c1943 into main Jun 5, 2026
1 check 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