You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 6496714
Browse filesBrowse the repository at this point in the historyBrowse files
test(cli): pin that every always-on slate token has a serve mount; boot-level proof for package-registry
The vocabulary pin turns the prose that declined to assert the
package-registry absence into the assertion it was waiting for: every
PLATFORM_ALWAYS_ON_CAPABILITIES token keys a CAPABILITY_PROVIDERS entry
or a CAPABILITY_TO_TIER tier. The identity table gains the new row, and
a nightly e2e boots serve twice on one database to show an API-created
package survives a restart, plus a marketplace declarer mounting one
PackageServicePlugin.
Co-authored-by: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TnPAC1UsTGfHPXVUCL6iLn
fix(cli): `objectstack serve` mounts the always-on `package-registry` capability, so a package created through the API survives a restart on a stock boot (#19387)
6
+
7
+
Clause-②: no
8
+
9
+
`package-registry` has been on the always-on slate (`PLATFORM_ALWAYS_ON_CAPABILITIES`) since the `marketplace` / `package-registry` split, and `serve` appended it to every app's `requires`. But `Serve.CAPABILITY_PROVIDERS` did not key it, and the resolver's no-provider branch says nothing about a token the app did not declare itself. So an app that did not declare `requires: ['marketplace']` got no `package` service. `POST /api/v1/packages` answered `201`, printed `no 'package' service — '…' registered in-memory only (will not survive a restart)`, and `GET /api/v1/packages/:id` answered `404` after a restart.
10
+
11
+
-**`package-registry` now mounts `PackageServicePlugin`** from `@objectstack/service-package`, the provider the spec's `PLATFORM_CAPABILITY_PROVIDERS` row declares for it. A stock boot creates `sys_packages` and replays it at start, so installs and manifest edits made through the API persist.
12
+
-**Apps that declare `marketplace` boot as before, with one `PackageServicePlugin`.**`marketplace` resolves to the same provider. The capability resolver now remembers the providers it has mounted itself, so the always-on token does not mount a second copy. Without that change, a declarer's boot would print `Plugin superseded: 'package-service'`.
13
+
-**A stock database gains one table, `sys_packages`.**`PackageServicePlugin` creates it with raw DDL, as it already did for `marketplace` declarers. On the in-memory driver (`memory://`), which has no raw SQL, the boot now logs that the DDL was not run and that package hydration was skipped. Packages there last only as long as the process, as before.
14
+
-`--preset minimal` still opts out of the whole slate. `protocol.installPackage` keeps its in-memory-only branch as the documented degraded path for hosts that mount no provider.
0 commit comments