Skip to content

fix(plugin): remember init paths and update only installed plugins - #34

Open
git-hulk wants to merge 1 commit into
masterfrom
codex/plugin-init-and-update
Open

git-hulk wants to merge 1 commit into
masterfrom
codex/plugin-init-and-update

Conversation

@git-hulk

@git-hulk git-hulk commented Oct 26, 2026 •

Copy link
Copy Markdown
Owner

Problem

clime init remembers remote URLs but discards local manifest paths.
Later runs without an argument therefore use an older URL or the built-in
defaults. Bulk plugin updates also run installers for stale manifest
entries whose executable no longer exists.

Reproduction

Run clime init ./tools.yaml, change directories, then run clime init
without an argument. The local source is not reused. Removing a managed
plugin's executable while retaining its manifest entry still causes
clime plugin update all to invoke its updater.

Fix

Save local init sources as absolute paths in the existing init_url
field, retaining URL support and reusing either source when omitted.
Filter bulk updates to managed plugins whose executable exists in
~/.clime/plugins/ or on PATH, leaving missing entries unchanged.

Test

  • go test ./... -v, go vet ./..., and go build pass.
  • Regression tests cover path reuse from another directory and bulk
    updates with both installed and missing plugins.
  • CLI smoke checks cover URL reuse, invalid source preservation, and
    skipping missing executables, non-executable files, and broken links.

With no installed managed plugins, bulk update now reports:

No installed managed plugins found.

Assistant-By GPT-6

## Problem

`clime init` remembers remote URLs but discards local manifest paths.
Later runs without an argument therefore use an older URL or the built-in
defaults. Bulk plugin updates also run installers for stale manifest
entries whose executable no longer exists.

## Reproduction

Run `clime init ./tools.yaml`, change directories, then run `clime init`
without an argument. The local source is not reused. Removing a managed
plugin's executable while retaining its manifest entry still causes
`clime plugin update all` to invoke its updater.

## Fix

Save local init sources as absolute paths in the existing `init_url`
field, retaining URL support and reusing either source when omitted.
Filter bulk updates to managed plugins whose executable exists in
`~/.clime/plugins/` or on `PATH`, leaving missing entries unchanged.

## Test

- `go test ./... -v`, `go vet ./...`, and `go build` pass.
- Regression tests cover path reuse from another directory and bulk
  updates with both installed and missing plugins.
- CLI smoke checks cover URL reuse, invalid source preservation, and
  skipping missing executables, non-executable files, and broken links.

With no installed managed plugins, bulk update now reports:

```text
No installed managed plugins found.
```

Assistant-By GPT-6
@git-hulk git-hulk changed the title codex/plugin init and update fix(plugin): remember init paths and update only installed plugins Oct 26, 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.

1 participant