Skip to content

install plugins - #8949

Merged
jamadeo merged 3 commits into
mainfrom
gemini-extensions
May 4, 2026
Merged

jamadeo merged 3 commits into
mainfrom
gemini-extensions

Conversation

@jamadeo

@jamadeo jamadeo commented May 1, 2026

Copy link
Copy Markdown
Member

Some minimal scaffolding for plugin install support from git. Only supports gemini format and skills so far.

To expand this further, we should look into adding:

  • open-plugins and claude marketplace formats
  • GUI install feature
  • updating

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: bf21ae16af

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +130 to +134
for entry in fs::read_dir(source)? {
let entry = entry?;
let source_path = entry.path();
let destination_path = destination.join(entry.file_name());
let file_type = entry.file_type()?;

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Skip VCS metadata when copying plugin checkout

This recursive copy takes the entire cloned repository tree verbatim, which includes .git/. For plugin URLs that embed credentials (for example PAT-based HTTPS URLs), Git writes that URL into .git/config, so this code persists plaintext secrets into the long-lived plugin directory and also keeps unnecessary repository metadata. Exclude .git (and similar VCS internals) from installation copies before writing to the plugin install path.

Useful? React with 👍 / 👎.

Comment on lines +129 to +133
let name = extract_skill_name(&raw).unwrap_or_else(|| {
skill_dir
.file_name()
.and_then(|name| name.to_str())
.unwrap_or("unnamed")

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Validate skill frontmatter before accepting install

The installer accepts any SKILL.md and falls back to the directory name when name frontmatter is missing/invalid, but runtime discovery later rejects those skills because parse_skill_content requires a non-empty name. This allows “successful” installs that report imported skills yet produce no loadable skills at runtime. The install-time scan should only count skills with valid frontmatter names.

Useful? React with 👍 / 👎.

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

I think ok - I did think that goose-cli crate may go away but that is more the TUI aspect of it, not the install I guess?

@jamadeo
jamadeo added this pull request to the merge queue May 4, 2026
@jamadeo

jamadeo commented May 4, 2026

Copy link
Copy Markdown
Member Author

I think ok - I did think that goose-cli crate may go away but that is more the TUI aspect of it, not the install I guess?

yeah, the next bit for this would be to add an ACP+ handler that can do the install

Merged via the queue into main with commit 5f9a5a5 May 4, 2026
22 checks passed
@jamadeo
jamadeo deleted the gemini-extensions branch May 4, 2026 13:05
lifeizhou-ap added a commit that referenced this pull request May 4, 2026
* main:
  install plugins (#8949)
  render mcp apps inline in goose2 (#8877)
shafqatevo pushed a commit to shafqatevo/goose that referenced this pull request Aug 7, 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