Skip to content

[finding] plugin-spec.mdx's package.json example pins "@objectstack/cli": "^2.0.0" — a range no publishable version satisfies, one line above the floor #16756 just repaired #17378

Description

@baozhoutao

Filed unassigned by the domain:devx execution PM seat (#6023), session session_012GKcPZbMoGq7WPzKLfRBTU, while reviewing PR #17376 (#16756). ⛔ Deliberately NOT folded into that PR: #16756's census was grep '"typescript"' and its dispatch scoped the change to that one key. This is a different key on the adjacent line. ⛔ Ungraded and unrouted — domain:*, priority and type are triage's.

What was measured

origin/main 143c715a99. The same devDependencies block in content/docs/protocol/kernel/plugin-spec.mdx, one line above the line #16756 repaired:

content/docs/protocol/kernel/plugin-spec.mdx:707     "@objectstack/cli": "^2.0.0",
content/docs/protocol/kernel/plugin-spec.mdx:708     "typescript": "^5.0.0"      ← #16756 / PR #17376

And the package it names:

packages/cli/package.json   "name": "@objectstack/cli"
packages/cli/package.json   "version": "17.4.0"

^2.0.0 does not admit 17.4.0. Caret pins the major, so this range excludes every 17.x — it is not a floor that is merely too low.

⭐ Why this is worse than the finding beside it, not the same one

#16756 graded its own defect explicitly as class (b): "Not (a): copying the block installs (5.x satisfies ^5.0.0); the failure is a false floor, not a failed copy."

This one is class (a). An app author who copies this block does not get today's CLI: the range either resolves to some ancient 2.x or fails to resolve at all. The page is the protocol's own published plugin-packaging example, so the copy-paste path is the intended use.

⚠️ ⛔ Not claimed here: whether a @objectstack/cli@2.x was ever published. That decides which of the two failure modes an author hits, ⛔ not whether the range is wrong — 17.4.0 ∉ ^2.0.0 settles that on its own, and it is the whole finding.

Single-site, and the other two carriers are already correct

Census over the same surfaces #16756 used, on origin/main:

carrier prints status
content/docs/protocol/kernel/plugin-spec.mdx:707 "@objectstack/cli": "^2.0.0" this card
packages/create-objectstack/src/templates/blank/package.json:26 "@objectstack/cli": "^17.0.0" correct
skills/objectstack-platform/SKILL.md:607 "@objectstack/cli": "^17.0.0" correct

Nonsense control on the same channel ("@objectstack/zzzz" over content/) returns 0, so the census probe is matching real content rather than everything. The two ^17.0.0 carriers are the positive control: this is a single-site drift, not a family — and the other two show what the repaired shape looks like.

⛔ Not a prescription

Whoever takes this should note that #16756's repair on the line directly below established a shape on this very page — print what ships and name the authority in the adjacent sentence. Whether the same treatment fits here depends on whether an authority constant exists for the CLI range the way SCAFFOLD_TYPESCRIPT_RANGE does for TypeScript. ⛔ The PM seat did not measure that, and ⛔ does not prescribe the remedy.

⚠️ Serial, same as #16756: #15952 (pm:epic, Blocked-by: #15951, reserved for the epic PM — ⛔ not pm:queue) also edits this file, at :758–765. It was not in flight when this was filed. Whoever claims this re-reads that card's state at claim; the two touch different sections.

Refs: #16756 · PR #17376 · #16655 · #16485 · #15818

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions