| Auto-commit at turn #1 (13 files changed)
| 2 天前 |
| Auto-commit at turn #1 (2 files changed)
| 2 天前 |
| Merge remote-tracking branch 'origin/release/v4.24.1' into release/v4.24.1
| 2 天前 |
| feat(plugin): support git-subdir source + skip unknown source types
The official marketplace catalog uses Claude Code's newer git-subdir
source (plugin lives in a subdirectory of a git repo). AtomCode's
ExternalSource enum only knew url/git/github/local, so serde failed the
ENTIRE catalog parse on the unknown tag — even the valid inline plugins
wouldn't load (mirrors anthropics/claude-plugins-official#585).
manifest.rs:
- add ExternalSource::GitSubdir { url, path, pin }; switch the tag rename
from lowercase to kebab-case so it serialises as "git-subdir"
- add PluginSource::Unknown(Value) catch-all so one unrecognised entry
(e.g. a future "npm" source) is skipped instead of failing the whole
marketplace
installer.rs:
- install_git_subdir: sparse + partial clone (--filter=blob:none
--no-checkout, sparse-checkout set, checkout) of just the subdir; url
accepts owner/repo shorthand or full git URL; path validated against
traversal; plugin_dir records the subdir-qualified path
- uninstall GC now removes the canonical installed/<mp>/<plugin> root
(git-subdir's plugin_dir points into a subdir, so removing the recorded
path alone would leave the clone behind)
- dedup never reuses the marketplace clone for git-subdir
Verified: real official catalog now parses (827 total: 3 inline +
824 git-subdir, 0 unknown); 60 plugin tests pass; workspace builds.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
| 6 天前 |
| fix(plugin): re-clone marketplace when directory is missing instead of failing with 'No such file or directory'
- In update_marketplace(), check if the clone directory exists before running git pull - If missing (e.g. manually deleted or prior clone failed), re-clone from the registered source URL - Prevents confusing 'spawn git pull: No such file or directory (os error 2)' error
| 2 天前 |
| Auto-commit at turn #1 (13 files changed)
| 2 天前 |
| Auto-commit at turn #1 (13 files changed)
| 2 天前 |
| Auto-commit at turn #1 (13 files changed)
| 2 天前 |
| test(plugin): shared isolated_home helper to prevent ATOMCODE_HOME leakage
Each plugin test module previously defined its own isolated_home() that
set ATOMCODE_HOME but relied on tempdir Drop to "clean up". Drop order is
non-deterministic, so the next serial test could observe a stale value
pointing at a now-deleted directory and flake.
Add plugin::test_support::isolated_home returning a guard whose Drop
explicitly removes the env var before the tempdir disappears. Adopt it
in marketplace, installer, loader, paths, and the integration test.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
| 1 个月前 |
| [共创大赛] Tighten plugin git URL validation
| 24 天前 |