Uh oh!
There was an error while loading. Please reload this page.
fix(console): npm description no longer names the fabricated @objectstack/framework (#11261) - #11505
Merged
Merged
Conversation
…tack/framework `@objectstack/console`'s manifest `description` is what npm renders on the package page, making it the most-read of the three sites that named a package nobody can install. There is no umbrella `@objectstack/framework` package — 404 on the public registry, and fabricated: nothing in this tree presents it as enterprise or private, it is presented as the default public install. The mechanism it described is real and only the name was wrong. What actually pins the two together is that `@objectstack/cli` declares `@objectstack/console` as a dependency and both ship at one version from the Changesets `fixed` group. "framework release" survives as the common noun this package's README already uses; what is dropped is the `@objectstack/` scope that turned it into a package name. The `@object-ui/console` source-of-truth half is unchanged — it was accurate. Text only: no code, no exports, no behaviour change. Carries a patch changeset rather than the publish-nothing exemption, because the manifest `description` ships inside the npm tarball and is a published artifact. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015ahemw8RcTgqtxrj15PEZx
Contributor
📓 Docs Drift CheckNothing in this diff resolved to a documentable surface (no symbol, route or SDK anchor derived from 1 changed package(s)), so this run has no opinion about the docs. What this run could not see
Coarse fallback — 8 page(s) merely mention a changed package (the pre-#9192 predicate, kept for the deliberately-wide backstop): |
os-steve
marked this pull request as ready for review
August 24, 2026 01:58
Uh oh!
There was an error while loading. Please reload this page.
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 freeto 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.
Fixes#11261
@objectstack/console's manifestdescriptionis what npm renders on the package page, which made it the most-read of the three sites naming a package nobody can install. The earlier pass (#10921) corrected the other two — this package's README andpackages/cli/src/utils/console.ts— and deliberately left the manifest alone, because a published manifest sat outside that card's declared file surface. This is the third and last live site.The mechanism was real and only the name was wrong, so the correction states the true thing rather than deleting the sentence. Both halves re-verified against
origin/mainbefore writing:packages/cli/package.jsondeclares"@objectstack/console": "workspace:*"— the dependency relationship is real..changeset/config.json'sfixedgroup lists both@objectstack/cliand@objectstack/console— the one-version claim is real."framework release"survives as the common nounpackages/console/README.mdalready uses ("version-locked to the framework release that ships it"). What is dropped is only the@objectstack/scope that turned a true common noun into a fabricated package name.@object-ui/consolesource-of-truth half is unchanged — it was accurate, and rewriting the whole sentence around the one broken word was not needed.Positive control: is there a fourth site?
git grepoverorigin/mainfor@objectstack/framework, then widened to the case-insensitiveobjectstack[/-]framework. Outside CHANGELOGs the sweep returns three hits, and after this diff zero live sites remain:packages/console/package.json:4.changeset/out-of-repo-package-names.mdscripts/check-published-readme-exports.mjs:857@objectstack/names measured under the wider fence. The file itself calls it "the umbrella install name" in a passage explaining why prose may name a package this repo does not build.packages/*/CHANGELOG.md(9 files)No fourth live site exists, so this PR is not widened.
Changeset: REQUIRED — decided on the rule, not by habit
scripts/pr-labels.mjsstates the exemption's own test: "skip-changesetis the exemption for a PR that publishes nothing". This diff publishes something — the manifestdescriptionis packed into the npm tarball and is exactly what renders on the package page for@objectstack/console. It therefore fails that test, and noskip-changesetlabel is applied..changeset/console-description-drop-fabricated-framework.mdcarries apatchbump for@objectstack/consoleonly, matching the earlier pass's precedent. It declares nomajor/breaking bump, so no ADR-0087 disposition marker is required (check-adr-0087-registrationconfirms: "this PR adds no declared-breaking changeset").Verification
Gate set derived, not recalled:
node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack(re-derived after the commit; the set was identical both times). All 15 derived families pluscheck:nul-byteswere run atc7d37014, the head of this branch, and all are green.check:published-files— named on the card as the acceptance check, because editing a published manifest widens its surface. Its own verdict lines:Worth recording for the next author: the gate's five invariants (DECLARED, COMPLETE, SUFFICIENT, MINIMAL, REGISTERED) are all about the
fileswhitelist, so adescriptionedit moves none of them. That is a measured result, not an assumption — the gate was run rather than reasoned about.Other verdict lines:
No
pnpm test/pnpm typecheckwas run for the affected package becausepackages/consoledeclares neither — it is a prebuilt-dist/package whose only script isprepublishOnly. The diff contains no code.pnpm lintnarrowing, declared with its three pieces of evidence. The population is read from eslint's own config rather than guessed:npx eslint --no-inline-config --format jsonon both changed paths reports"File ignored because no matching configuration was supplied."for each, witherrorCount: 0. Everyfilesglob ineslint.config.mjsis restricted to{ts,tsx,mts,cts,js,jsx,mjs,cjs}; this diff touches one.jsonand one.md. And the invariance half holds mechanically: the config never enables type-aware linting for any file (noparserOptions.project, no typed rules — the config documents this at line 328, measured there with a positive control), so this diff cannot move any untouched file's verdict. The intersection of the diff with eslint's population is empty, so this is a measurement rather than a skipped run.Generated by Claude Code