Fix CLI output wording/ordering: stale-vs-missing, premature success line, version-consistency hint - #110
Merged
Conversation
… hint in CLI output Three output-wording/ordering defects that misled users during a normal build/validate run: pre-build freshness reported a not-yet-built dist bundle file as stale instead of missing; `Built N plugin(s)` printed before a hard finding that failed the run; and version-consistency findings didn't name aipm.config.ts as the source of truth. No detection behavior changed, only how/when it's reported. Refs #97
There was a problem hiding this comment.
Pull request overview
This PR fixes three user-facing CLI output issues in the build/validate reporting flow (wording + ordering only), aligning aipm output with the intended UX contracts from issues #75 and #97.
Changes:
- Updates
version-consistencyfindings to include an explicit hint thataipm.config.tsis the version source of truth. - Adjusts freshness reporting so regenerated-but-absent
dist/**bundle files are reported asmissing(with anaipm buildhint) rather thanstale. - Suppresses the
Built N plugin(s), M artifact(s).success summary on failingaipm buildruns (i.e., when post-buildvalidatefails).
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| packages/core/src/pipeline/validate.ts | Adds the version source-of-truth hint to version-consistency findings and reports missing dist bundle paths as missing (not stale). |
| packages/core/src/pipeline/validate.test.ts | Adds a focused assertion that the version-consistency hint mentions aipm.config.ts. |
| packages/core/src/pipeline/validate-orchestration.test.ts | Adds coverage for the missing-vs-stale behavior for a deleted dist bundle file. |
| packages/cli/src/run.ts | Moves/suppresses the “Built N…” success summary so it only prints when validation passes. |
| packages/cli/src/run.test.ts | Adds coverage to ensure “Built N…” is absent on failing runs and preserved/ordered on clean runs. |
| .changeset/fix-cli-output-wording-ordering.md | Records the patch-level changes for @ai-plugin-marketplace/core and @ai-plugin-marketplace/cli. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Three mechanical CLI output-wording/ordering defects in the build/validate rendering path. No
behavior change — the same conditions are still detected; only how/when they're reported changes.
stalevsmissing. Pre-build freshness on adist/**bundle file that was never built(regenerated-but-absent, not merely byte-differing) now reports it as
missingwith a"run
aipm build" hint, instead ofstale.aipm build'sBuilt N plugin(s), M artifact(s).line no longerprints when the post-build
validatestep surfaces a hard finding that fails the run — thesuccess summary is now suppressed on a failing run rather than always printing first.
version-consistencysource-of-truth hint. The finding now includes a hint namingaipm.config.tsas the authoritative version source, so the user knows to bump the manifest(not the config) — per aipm validate should gate plugin.json manifest versions against aipm.config.ts #75's contract.
Acceptance criteria mapping
missing, notstalepackages/core/src/pipeline/validate-orchestration.test.ts—a not-yet-built dist bundle file reports missing, not stale (issue #97)Built N plugin(s)does not appear before a run-failing hard findingpackages/cli/src/run.test.ts—does not print "Built N plugin(s)" when the post-build validate has a hard finding(negative case:still prints "Built N plugin(s)" before validation output on a clean runguards the non-regression case)version-consistencyfinding hintsaipm.config.tsis the source of truthpackages/core/src/pipeline/validate.test.ts—hints that aipm.config.ts is the source of truth for the versionNon-goals
No detection-logic changes —
checkFreshness, thebuildcommand's artifact/validate callsequence, and
validateVersionConsistency's mismatch detection are unchanged; only the emittedstrings and CLI print ordering changed.
Test plan
pnpm run check(full workspace check + affected suites) green, run withAIPM_TEMPLATE_REPOpointed at the CI-pinned template revision so thedeveloper-machine-only
validate-orchestration.test.tssuite (self-skips without atemplate checkout) actually executed rather than skipping
pnpm run fix:formatrun before pushpackages/cli/src/run.test.ts,packages/core/src/pipeline/validate.test.ts,packages/core/src/pipeline/validate-orchestration.test.tsRefs #97