|
| 1 | +--- |
| 2 | +"@objectstack/plugin-security": patch |
| 3 | +"@objectstack/service-package": patch |
| 4 | +"@objectstack/trigger-schedule": patch |
| 5 | +"@objectstack/trigger-record-change": patch |
| 6 | +"@objectstack/embedder-openai": patch |
| 7 | +"@objectstack/driver-sqlite-wasm": patch |
| 8 | +"@objectstack/spec": patch |
| 9 | +--- |
| 10 | + |
| 11 | +docs: name packages that exist in seven published documents, and gate the class (#10893) |
| 12 | + |
| 13 | +A published README ships inside the npm tarball, so an install instruction in one |
| 14 | +reaches every reader of the package. Nine `@objectstack/` names across seven |
| 15 | +published documents named a package that is in **no directory of this repo**, and |
| 16 | +five of those sat on `import` lines inside runnable fences. |
| 17 | + |
| 18 | +`check:published-readme-exports` could not see any of it, by construction. It |
| 19 | +resolves a documented import against the package's built type surface through the |
| 20 | +workspace member map, so a specifier that is not a member has no type entry to |
| 21 | +compare against and the gate reads no further — strict about a member that exists, |
| 22 | +silent about one that does not. The gate now makes the member-existence claim |
| 23 | +first: an `@objectstack/`-scoped specifier that names no workspace member is a |
| 24 | +finding, and the run header prints the scoped population as `N/N` so a recogniser |
| 25 | +that stops matching shows up as a denominator that fell. |
| 26 | + |
| 27 | +What each dead claim now says, and why: |
| 28 | + |
| 29 | +- **`@objectstack/trigger-schedule`** and **`@objectstack/trigger-record-change`** |
| 30 | + each misnamed **themselves**. Both READMEs — including their `# ` titles and |
| 31 | + every fenced import — said `@objectstack/plugin-trigger-…`, a name that has |
| 32 | + never been published. The exported class names (`ScheduleTriggerPlugin`, |
| 33 | + `TimeRelativeTriggerPlugin`, `RecordChangeTriggerPlugin`) were correct all |
| 34 | + along; only the package name was wrong, so this is a rename pinned by each |
| 35 | + package's own `name` field. |
| 36 | +- **`@objectstack/plugin-security`** told readers to `install |
| 37 | + @objectstack/plugin-org-scoping` and register an `OrgScopingPlugin` from it. No |
| 38 | + such package exists. The organization wall ships as the enterprise |
| 39 | + `@objectstack/organizations` runtime, whose `OrganizationsPlugin` registers the |
| 40 | + `org-scoping` service this plugin probes — the name `objectstack serve` and |
| 41 | + `objectstack doctor` both print. Asking for the wall without it is a refusal to |
| 42 | + boot (ADR-0093 D5), not a silent downgrade, and the page now says so. The |
| 43 | + tenant-isolation bullet pointed at `@objectstack/service-tenant`, which is the |
| 44 | + cloud control-plane runtime from the separate `cloud` repository and not where |
| 45 | + the wall comes from either. |
| 46 | +- **`@objectstack/service-package`** described packages being "delivered to |
| 47 | + runtime kernels that load them through `@objectstack/service-marketplace`". That |
| 48 | + package was never built: ADR-0003, ADR-0016 and ADR-0025 all name it as future |
| 49 | + work. The loading half that does exist here is |
| 50 | + `@objectstack/cloud-connection`'s `MarketplaceInstallLocalPlugin`. |
| 51 | +- **`@objectstack/embedder-openai`** had a fenced example importing |
| 52 | + `KnowledgeTursoPlugin` from `@objectstack/knowledge-turso` — the worst shape, |
| 53 | + because a reader pastes it. No knowledge adapter in this repository consumes an |
| 54 | + `IEmbedder` at all: `knowledge-memory` and `knowledge-ragflow` take no embedder |
| 55 | + option, and the adapters the contract is written for are not here. The example |
| 56 | + is now the `embed()` surface that does exist, with the gap stated rather than |
| 57 | + papered over with a substitute package name. |
| 58 | +- **`@objectstack/driver-sqlite-wasm`**'s "When to use" table compared it against |
| 59 | + `@objectstack/driver-sqlite` and `@objectstack/driver-postgres`. Neither has |
| 60 | + ever existed; `@objectstack/driver-sql` covers PostgreSQL, MySQL and SQLite |
| 61 | + through Knex, choosing the client from its optional peers. |
| 62 | +- **`@objectstack/spec`**'s published `prompts/architecture.md` instructed code |
| 63 | + generators to write `import { User } from '@objectstack/protocol'`. The package |
| 64 | + is `@objectstack/spec`, which the same sentence names as the path being |
| 65 | + replaced. |
| 66 | + |
| 67 | +Four `@objectstack/` names that are **not** in this repo are deliberately left as |
| 68 | +they are, because prose may name a package this repo does not build and a runnable |
| 69 | +import may not: `@objectstack/security-enterprise` (the enterprise edition, whose |
| 70 | +install hint the CLI prints and a CLI test pins), `@objectstack/service-tenant` |
| 71 | +(the cloud runtime), `@objectstack/framework` (the umbrella install name), and the |
| 72 | +two names `service-datasource`'s README recalls as its own past. |
0 commit comments