install plugins - #8949
install plugins#8949
Conversation
There was a problem hiding this comment.
💡 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".
| 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()?; |
There was a problem hiding this comment.
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 👍 / 👎.
| let name = extract_skill_name(&raw).unwrap_or_else(|| { | ||
| skill_dir | ||
| .file_name() | ||
| .and_then(|name| name.to_str()) | ||
| .unwrap_or("unnamed") |
There was a problem hiding this comment.
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
left a comment
There was a problem hiding this comment.
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 |
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: