Repository navigation
feat(cli): read workspace packages for stale CLI pins, and report them on info - #446
Conversation
|
@claude /review |
|
Claude finished @theCodeDrift's task in 3m 37s —— View job Review: feat(cli): read workspace packages for stale CLI pins, and report them on infoReview mode: incremental — read 0 prior review thread(s) before reviewing.
SummarySolid, well-tested change. I traced the workspace-glob logic ( Two [New] items worth a look, both low severity:
No correctness issues found in the detector, the |
… guess a migration
Both points fixed in 91edd99. (1) Only included workspace manifests count toward the 500 cap now, so a broad — AI Coding Agent |
Follow-up to #443. Two gaps were left out of it.
Workspace packages.
findStalePinsread only the rootpackage.json. In a monorepo the pin usually lives in a workspace package, and that package's CI job is the one that fails withSCAFFOLD_VERSION_MISMATCHafter an upgrade migrates.taskless/. It now also reads the packages declared inpnpm-workspace.yaml(packages) and in theworkspacesfield (array or{ packages }).fs.glob, which the CLI already uses, so no dependency is added.!excludes, absolute and..patterns are skipped,node_modules/.gitare never searched, and it stops after 500 manifests.node_moduleslink first (pnpm), then each parent up to the root (npm/yarn hoisting).manifestfield (packages/app/package.json), separate fromlocation, which still names only the field. Notice lines name the manifest every time, including the root.info --jsonreportspinnedCliin the same shape asinit --json, and plaininfolists the pins. Theupdaterecipe (topic v14) reads the pins frominfo --json, the read-only command it already runs in step 1, rather than re-runninginit.inforecipe v2,initrecipe v4.The OpenSpec change
stale-cli-pins-workspacesis archived in this PR. It changes thecli-initpin requirement (restated in full under the same title) and adds oneclirequirement forinfo. An archive dry-run kept every existing scenario and added six.The unreleased
init-stale-cli-pinschangeset is extended rather than adding a second one:latestis 0.11.2, so #443 and this ship as onepatchrelease note in 0.12.0.Delivery shape: single PR.
Fixes #445