Skip to content

Commit f962be9

Browse files
docs(plugins): drop the stale (enterprise) tag from the @objectstack/organizations heading (#18558)
Fixes #18541 Clause-②: no ## What changed One line in `content/docs/plugins/packages.mdx`: ```diff -### @objectstack/organizations (enterprise) +### @objectstack/organizations ``` Nothing else in the file, and no other file. Section body untouched. ## Why the tag is the wrong half The prose immediately under that heading says the package ships from this repository as the open-core, Apache-2.0 `packages/plugins/organizations`, published on npm. The manifest agrees — read at `origin/main` = `79a046f8cdf085d95200826ee9bb2fa6584bc3d5`, tree `objectstack-ai/objectstack`: ``` packages/plugins/organizations/package.json name @objectstack/organizations license Apache-2.0 private (absent) publishConfig {"access":"public"} ``` So the heading's tag was the false half, and it is user-facing: this page is what a reader consults to decide whether a package is usable and under which licence. ## Why the tag was deleted rather than replaced with a true one This was the one design call on the card, and it is answered from the file's own convention, not from taste. Same tree and revision as above: ``` git show 79a046f:content/docs/plugins/packages.mdx | grep -c '^### @objectstack/' 42 <- firing control: the instrument reads ... | grep -n '^### @objectstack/.*(' 329:### @objectstack/organizations (enterprise) (exactly 1 — so the other 41 headings carry no parenthetical at all) ``` All 41 neighbours are bare package names. Every edition, licence and composition caveat on this page already lives in the section body — including this section's own, which states the open-core licence, the host-app-only declaration boundary and the licence-gated commercial subclass far more precisely than a one-word tag could. Substituting `(open core)` would have made this heading the only annotated one of 42, self-styling against its neighbours, while adding nothing the body does not already say. Deleting restores consistency and leaves the accurate text in place. Anchor safety: `git grep -rn 'objectstackorganizations'` returns nothing across the tree (exit 1), against a firing control (`git grep -c 'plugins/packages'` names five files), so no in-repo link pointed at the old heading slug. ## Changeset `skip-changeset`, measured rather than assumed. Of 83 `package.json` files in the tree, the only package whose directory contains `content/docs/plugins/packages.mdx` is the repo root `@objectstack/spec-monorepo`, which is `private: true` and declares no `files[]`. Firing control on the same scan: 70 published packages whose `files[]` really is read and really does ship `CHANGELOG.md`. Nothing published moves. ## Gates Derived from the diff, not recalled: `node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack` → 39 commands. All 39 run, all green. Four needed prerequisites built first and reported `PREREQUISITE NOT MET` (exit 3, and exit 1 for the fourth) rather than a finding; after `pnpm --filter @objectstack/spec build` and a `turbo run build` over the `@objectstack/lint`, `@objectstack/formula` and `@objectstack/client-react` closures they were re-run and are green: `check:doc-formula-expressions`, `check:doc-security-posture`, `check:skill-examples`, `check:docs-transcript-drift`. One gate is red and it is **not** this PR's: `pnpm check:cross-package-test-inputs`. See the acceptance notes. ## Acceptance notes **`check:cross-package-test-inputs` is red on `main` itself, whenever `packages/spec/dist/` exists on disk.** Reported to the dispatching seat for filing; not filed from here and not fixed here — out of this card's file surface. Proof, both legs on the same commit and with zero diff: ``` worktree detached at 79a046f, pnpm install, no build node scripts/check-cross-package-test-inputs.mjs -> exit 0 same worktree, + pnpm --filter @objectstack/spec build node scripts/check-cross-package-test-inputs.mjs -> exit 1 "@objectstack/cli descends a directory tree from packages/spec/dist/, and part of that radius is reached by no declared glob" rooted in packages/cli/test/init-created-files-summary.e2e.test.ts ``` The verdict therefore turns on a gitignored build artefact: the `Lint & Repo Gates` job in `lint.yml` runs this gate with no build step anywhere before it, so CI enumerates an absent directory and passes, while any developer tree that has built the spec reds. Exit codes captured before any pipe. **Noted, not filed — two further lines still describing `@objectstack/organizations` as enterprise** (`docs/adr/0093-tenancy-mode-and-membership-lifecycle.md:79`, `packages/qa/dogfood/test/authz-conformance.matrix.ts:172`). Both sit inside the class an earlier tree-wide census already measured and ruled not-a-defect, and the card scopes this PR to the single self-contradiction. Carrier: that census's own disposition, not this PR. **Noted, not filed — ADR-0132's status line still reads `Proposed (2026-09-06)`** while the package it decides has shipped open-core in this tree. `docs/adr/**` is a governed surface, so its status is the maintainer's to move; recorded here only so the reading is not lost. Carrier: the maintainer. --- _Generated by [Claude Code](https://claude.ai/code/session_017ef78bLdybu3AffehKkhfk)_ Co-authored-by: Claude <noreply@anthropic.com>
1 parent 79a046f commit f962be9

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

‎content/docs/plugins/packages.mdx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -326,7 +326,7 @@ All services implement contracts from `@objectstack/spec/contracts` and are kern
326326
- **When to use**: Multi-user applications with access control requirements
327327
- **README**: [View README](https://github.com/objectstack-ai/objectstack/blob/main/packages/plugins/plugin-security/README.md)
328328

329-
### @objectstack/organizations (enterprise)
329+
### @objectstack/organizations
330330

331331
**Organization Scoping** — Multi-org (a.k.a. "soft" multi-tenant) row-level scoping. Ships from this repo as the **open-core, Apache-2.0 package** `packages/plugins/organizations`, published on npm — ADR-0132 brought it back to open core, so it is no longer closed-source or absent from this repository. ⛔ Only a **host app** may declare it: ADR-0132's entitlement boundary forbids any framework package taking `@objectstack/organizations` as a dependency, because the commercial repository ships a licence-gated subclass under the same package name and a framework-level dependency would put the ungated class inside the tree a commercial app links against (`packages/plugins/organizations/src/no-framework-dependents.pin.test.ts` is the mechanical half). It composes with the Layer 0 tenant wall in `plugin-security` (`tenant-layer.ts`).
332332

0 commit comments

Comments
 (0)