Skip to content

fix(ce-update): compare against main plugin.json, not release tags#660

Merged
tmchow merged 1 commit intomainfrom
tmchow/debug-issue-659
Apr 23, 2026
Merged

fix(ce-update): compare against main plugin.json, not release tags#660
tmchow merged 1 commit intomainfrom
tmchow/debug-issue-659

Conversation

@tmchow
Copy link
Copy Markdown
Collaborator

@tmchow tmchow commented Apr 23, 2026

/ce-update previously false-flagged every install as "Out of date" whenever main was ahead of the latest release tag (the normal steady state between releases). The recommended claude plugin update reinstalled the same version, so the loop never broke.

The fix compares the installed cache folder against plugin.json on main via gh api (the actual source the marketplace installs from), not against the latest GitHub release tag. The command now uses a single gh api --jq invocation with gh's embedded jq, which also resolves a latent error-handling bug: a multi-stage pipeline's || echo SENTINEL never fired because jq on empty input exits 0.

New regression tests extract the pre-resolution command from SKILL.md and execute it against a mocked gh on PATH, emulating gh's embedded jq in-process (no host jq required). They prove the command reads from plugin.json, not release tags, and that the sentinel fires when upstream is unavailable.

Fixes #659.


Compound Engineering
Claude Code

@tmchow tmchow merged commit 351d12e into main Apr 23, 2026
2 checks passed
@github-actions github-actions Bot mentioned this pull request Apr 23, 2026
@tmchow tmchow mentioned this pull request Apr 24, 2026
3 tasks
tmchow added a commit that referenced this pull request Apr 24, 2026
PR #663 squash-merged as `feat(ce-commit-push-pr):` — adding two
short-circuits that skip a blocking prompt when the agent just authored
the change. The intent was a UX/flow fix, not a new capability, so the
correct conventional prefix is `fix:`. Since the prefix drove a minor
bump, the open release PR (#661) is pinning the linked `cli` /
`compound-engineering` group at 3.1.0.

This empty commit reclassifies the pending release to 3.0.2 via
`Release-As:` footers so the patch-level fixes in this window
(#660 ce-update, #664 ce-demo-reel, #663 ce-commit-push-pr) land as
3.0.2 instead of 3.1.0. The feat prefix remains in history and may
still render under a Features heading in the generated changelog —
hand-edit the release PR body before merge if so.

Release-As: cli@3.0.2
Release-As: compound-engineering@3.0.2
@github-actions github-actions Bot mentioned this pull request Apr 24, 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.

ce-update: stale cache detection false-positives when main is ahead of latest release tag

1 participant