Conversation
cc7457d to
feb4d8c
Compare
| ) { | ||
| if config.features.enabled(Feature::Plugins) { | ||
| self.start_curated_repo_sync(); | ||
| self.maybe_start_configured_marketplace_upgrade_for_config(config); |
There was a problem hiding this comment.
You can move this into maybe_start_plugin_startup_tasks_for_config
There was a problem hiding this comment.
Addressed in 72b4885e4 by folding the configured marketplace auto-upgrade startup directly into maybe_start_plugin_startup_tasks_for_config, so that extra single-use helper is gone.
| } | ||
| } | ||
|
|
||
| pub fn maybe_start_non_curated_plugin_cache_refresh_for_roots( |
There was a problem hiding this comment.
I’d prefer not to introduce a thin wrapper like this
There was a problem hiding this comment.
Addressed in 72b4885e4 by removing the thin force_reinstall wrapper and calling the mode-bearing refresh helper directly from the upgrade path.
2d073ba to
e3d017d
Compare
|
@codex review |
a7b4304 to
ddec0a3
Compare
cb642e8 to
f9e6932
Compare
b68743c to
a7d128e
Compare
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a7d128ec69
ℹ️ 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".
| let Some(first_line) = stdout.lines().next() else { | ||
| return Err("git ls-remote returned empty output for marketplace source".to_string()); | ||
| }; | ||
| let Some((revision, _)) = first_line.split_once('\t') else { | ||
| return Err(format!( |
There was a problem hiding this comment.
Resolve tag refs to commit SHA before revision comparison
git_remote_revision takes the first SHA from git ls-remote <source> <ref>. For annotated tags this SHA is the tag object, while clone_git_source stores rev-parse HEAD (the peeled commit) in last_revision. The mismatch makes the up-to-date check fail permanently, so tagged marketplaces are recloned/reinstalled on every auto-upgrade pass.
Useful? React with 👍 / 👎.
Summary
config.toml.last_revisionso unchanged marketplace sources skip clone work.plugin/list, while preserving existing fail-open plugin behavior with warning logs rather than new user-visible errors.Details
git ls-remoteto compare the source/ref against the recorded revision..agents/plugins/marketplace.jsonexists and that the manifest name matches the configured marketplace key, then atomically activate the new root..agents/plugins/marketplace.jsonmarketplaces remain live filesystem state and are not auto-pulled.Validation
just write-config-schemacargo test -p codex-core marketplace_upgradecargo check -p codex-cli -p codex-app-serverjust fix -p codex-coreDid not run the complete
cargo testsuite because the repo instructions require asking before a full core workspace run.