chore: version packages#1549
Open
github-actions[bot] wants to merge 1 commit into
Open
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
6452eef to
8a14479
Compare
8a14479 to
b3d3ef3
Compare
b3d3ef3 to
771775d
Compare
771775d to
785b89a
Compare
785b89a to
9196786
Compare
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 free
to 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.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
@objectstack/objectql@7.8.0
Minor Changes
a75823a: feat(metadata): expose pending DRAFT metadata (ADR-0033 draft discoverability)
AI-authored metadata lands as drafts (
sys_metadatarows withstate='draft', bound to an app package), but the only list path —getMetaItems— reads the active registry, so drafts were invisible: a just-built app package looked empty and there was no "pending changes" surface.SysMetadataRepository.listDrafts({type?, packageId?})lists draft rows (mirrorslist()but scoped tostate='draft', optionally narrowed by package), returning a light header projection (no body) withpackageId.protocol.listDrafts({packageId?, type?, organizationId?})exposes it over the overlay repo.GET /api/v1/meta/_drafts?packageId=&type=surfaces it to the console. Registered in the REST server before the greedy/meta/:typeroute (and mirrored in the dispatcher) so_draftsis never captured as a metadata type name.Read-only; no behavior change to existing list/publish paths. Powers the upcoming Studio "drafts/pending changes" view and draft-aware package contents.
4fbb86a: feat(packages): consolidate the package subsystem so AI-built app packages surface in Studio
The package subsystem was split across two stores that never met: the in-memory
SchemaRegistry(what the dispatcher's/api/v1/packageslist/detail andgetMetaItems({type:'package'})read — i.e. Studio's package selector) and the durablesys_packagestable (where the AI's auto app package, and anypackage-service publish,were written). Nothing reconciled the two, so an AI-created
app.<name>package neverappeared in Studio.
This unifies them around one write primitive and one read source:
protocol.installPackageis now implemented (it was declared-but-missing). It is thesingle canonical write path: it registers the package in the in-memory registry and
best-effort persists it to
sys_packagesvia thepackageservice. Non-fatal when nopackageservice is wired (registry write still succeeds).POST /api/v1/packagesroutes throughprotocol.installPackage(fallingback to the bare registry write when the protocol is unavailable), so HTTP installs are
durable too.
@objectstack/service-packagereconcilessys_packagesback into the registry onboot, without clobbering filesystem-registered packages — so persisted packages survive a
restart and stay visible in the registry-backed read paths.
@objectstack/service-aiapply_blueprintnow homes an app viaprotocol.installPackage(falling back to the legacypackage-service publish), so theapp package lands where Studio reads it.
Still the legacy
package_idplane — sealedsys_package_versionversioning andcross-environment promotion remain ADR-0027 follow-ups.
e631f1e: feat(metadata): publish a whole app's drafts in one shot (ADR-0033)
After an AI builds an app, its metadata is drafted (bound to an app package) and
had to be published one item at a time. The package-level
POST /packages/:id/publishneeds the
metadataservice (503 when absent, e.g. the showcase) and reads thein-memory registry, not the drafts.
protocol.publishPackageDrafts({ packageId })promotes everysys_metadatadraft row bound to the package to active by reusing the per-item
publishMetaItemprimitive (overridable/lock guards + runtime registryrefresh). Per-item failures are collected, not fatal. No
metadata-servicedependency.
POST /api/v1/packages/:id/publish-draftsexposes it (distinct from theregistry-based
/publish), returning{ success, publishedCount, failedCount, published, failed }.Verified live: an AI-built
app.asset_management(4 drafts) published in one call —all 4 promoted to active, drafts cleared, draft objects became queryable.
Patch Changes
@objectstack/service-ai@7.8.0
Minor Changes
6b82e68: feat(ai): zero-package app building — auto-home a blueprint's app in a writable package
When the AI blueprint flow builds an app, it now silently gives that app a writable "home" package (one app ⇒ one
app.<name>package) and binds every drafted artifact (objects, views, dashboards, the app) to it — so a business user never has to create a "package" to start building (the mainstream AI-builder UX: Power Apps' default solution, Salesforce orgs). Packaging/versioning stays an opt-in, later concern.apply_blueprintensures the app package up front (idempotent: reuse if it exists, else create via the runtimepackageservice) and threads itspackageIdthrough everystageDraft→sys_metadata.package_id. The result envelope gainspackage: { id, name, created }.packageservice is resolved lazily (per call, not at plugin-init time) so it works regardless of service-init order and picks up the opt-inmarketplacecapability when present.packageservice is wired, drafting proceeds package-less exactly as before — the build never fails on packaging.Scope/caveats: this stamps the legacy
sys_metadata.package_id(a real grouping + the foundation for later version/export/promote), not the sealedsys_package_versionmodel — full cross-environment promotion and Studio package-selector visibility depend on finishing the runtime package subsystem (ADR-0027), tracked separately. (The showcase example enables themarketplacecapability to exercise this.)Patch Changes
06f2bbb: fix(ai): make ADR-0033 blueprint authoring work with OpenAI structured outputs
Two bugs surfaced by a live end-to-end run (Studio chat → blueprint → draft → review → publish) against a real model (OpenAI via the Vercel AI Gateway) — both invisible to the existing unit tests:
propose_blueprintfailed against OpenAI strict structured outputs.SolutionBlueprintSchemauses optional fields and a free-formseedDatarecord; OpenAI's strict mode requires every property listed inrequiredand rejects openadditionalProperties, sogenerateObjecterrored ('required' … must include every key in properties) and the agent silently fell back to free-text. AddsSolutionBlueprintStrictSchema— a strict-compatible mirror (optional → nullable, noz.record) used only as thegenerateObjectoutput contract. The lenientSolutionBlueprintSchema(and every existing consumer/test) is unchanged; the blueprint tools strip thenulls the strict contract emits so downstream stays clean.Tool-only assistant turns failed to persist.
ai_messages.contentis required, but an assistant turn that only calls a tool has no text, so the insert failed, the turn was dropped, and the next turn lost context (the agent re-proposed instead of applying the confirmed blueprint).ObjectQLConversationService.addMessagenow synthesizes a readable placeholder from the tool names ((called propose_blueprint)) plus a defensive non-empty fallback.With both fixes the full plan-first loop runs end-to-end on OpenAI models: propose → confirm → batch-draft objects/views/dashboards/app → review/diff → publish.
4fbb86a: feat(packages): consolidate the package subsystem so AI-built app packages surface in Studio
The package subsystem was split across two stores that never met: the in-memory
SchemaRegistry(what the dispatcher's/api/v1/packageslist/detail andgetMetaItems({type:'package'})read — i.e. Studio's package selector) and the durablesys_packagestable (where the AI's auto app package, and anypackage-service publish,were written). Nothing reconciled the two, so an AI-created
app.<name>package neverappeared in Studio.
This unifies them around one write primitive and one read source:
protocol.installPackageis now implemented (it was declared-but-missing). It is thesingle canonical write path: it registers the package in the in-memory registry and
best-effort persists it to
sys_packagesvia thepackageservice. Non-fatal when nopackageservice is wired (registry write still succeeds).POST /api/v1/packagesroutes throughprotocol.installPackage(fallingback to the bare registry write when the protocol is unavailable), so HTTP installs are
durable too.
@objectstack/service-packagereconcilessys_packagesback into the registry onboot, without clobbering filesystem-registered packages — so persisted packages survive a
restart and stay visible in the registry-backed read paths.
@objectstack/service-aiapply_blueprintnow homes an app viaprotocol.installPackage(falling back to the legacypackage-service publish), so theapp package lands where Studio reads it.
Still the legacy
package_idplane — sealedsys_package_versionversioning andcross-environment promotion remain ADR-0027 follow-ups.
Updated dependencies [06f2bbb]
@objectstack/express@7.8.0
Patch Changes
@objectstack/fastify@7.8.0
Patch Changes
@objectstack/hono@7.8.0
Patch Changes
@objectstack/nestjs@7.8.0
Patch Changes
@objectstack/nextjs@7.8.0
Patch Changes
@objectstack/nuxt@7.8.0
Patch Changes
@objectstack/sveltekit@7.8.0
Patch Changes
@objectstack/cli@7.8.0
Patch Changes
@objectstack/client@7.8.0
Patch Changes
@objectstack/client-react@7.8.0
Patch Changes
@objectstack/connector-mcp@7.8.0
Patch Changes
@objectstack/connector-openapi@7.8.0
Patch Changes
@objectstack/connector-rest@7.8.0
Patch Changes
@objectstack/connector-slack@7.8.0
Patch Changes
@objectstack/core@7.8.0
Patch Changes
@objectstack/formula@7.8.0
Patch Changes
@objectstack/metadata@7.8.0
Patch Changes
@objectstack/metadata-core@7.8.0
Patch Changes
@objectstack/metadata-fs@7.8.0
Patch Changes
@objectstack/observability@7.8.0
Patch Changes
@objectstack/platform-objects@7.8.0
Patch Changes
@objectstack/driver-memory@7.8.0
Patch Changes
@objectstack/driver-mongodb@7.8.0
Patch Changes
@objectstack/driver-sql@7.8.0
Patch Changes
@objectstack/driver-sqlite-wasm@7.8.0
Patch Changes
@objectstack/embedder-openai@7.8.0
Patch Changes
@objectstack/knowledge-memory@7.8.0
Patch Changes
@objectstack/knowledge-ragflow@7.8.0
Patch Changes
@objectstack/plugin-approvals@7.8.0
Patch Changes
@objectstack/plugin-audit@7.8.0
Patch Changes
@objectstack/plugin-auth@7.8.0
Patch Changes
@objectstack/plugin-dev@7.8.0
Patch Changes
@objectstack/plugin-email@7.8.0
Patch Changes
@objectstack/plugin-hono-server@7.8.0
Patch Changes
@objectstack/plugin-mcp-server@7.8.0
Patch Changes
@objectstack/plugin-msw@7.8.0
Patch Changes
@objectstack/plugin-org-scoping@7.8.0
Patch Changes
@objectstack/plugin-reports@7.8.0
Patch Changes
@objectstack/plugin-security@7.8.0
Patch Changes
@objectstack/plugin-sharing@7.8.0
Patch Changes
@objectstack/plugin-trigger-record-change@7.8.0
Patch Changes
@objectstack/plugin-trigger-schedule@7.8.0
Patch Changes
@objectstack/plugin-webhooks@7.8.0
Patch Changes
@objectstack/rest@7.8.0
Patch Changes
a75823a: feat(metadata): expose pending DRAFT metadata (ADR-0033 draft discoverability)
AI-authored metadata lands as drafts (
sys_metadatarows withstate='draft', bound to an app package), but the only list path —getMetaItems— reads the active registry, so drafts were invisible: a just-built app package looked empty and there was no "pending changes" surface.SysMetadataRepository.listDrafts({type?, packageId?})lists draft rows (mirrorslist()but scoped tostate='draft', optionally narrowed by package), returning a light header projection (no body) withpackageId.protocol.listDrafts({packageId?, type?, organizationId?})exposes it over the overlay repo.GET /api/v1/meta/_drafts?packageId=&type=surfaces it to the console. Registered in the REST server before the greedy/meta/:typeroute (and mirrored in the dispatcher) so_draftsis never captured as a metadata type name.Read-only; no behavior change to existing list/publish paths. Powers the upcoming Studio "drafts/pending changes" view and draft-aware package contents.
Updated dependencies [06f2bbb]
Updated dependencies [4fbb86a]
@objectstack/runtime@7.8.0
Patch Changes
a75823a: feat(metadata): expose pending DRAFT metadata (ADR-0033 draft discoverability)
AI-authored metadata lands as drafts (
sys_metadatarows withstate='draft', bound to an app package), but the only list path —getMetaItems— reads the active registry, so drafts were invisible: a just-built app package looked empty and there was no "pending changes" surface.SysMetadataRepository.listDrafts({type?, packageId?})lists draft rows (mirrorslist()but scoped tostate='draft', optionally narrowed by package), returning a light header projection (no body) withpackageId.protocol.listDrafts({packageId?, type?, organizationId?})exposes it over the overlay repo.GET /api/v1/meta/_drafts?packageId=&type=surfaces it to the console. Registered in the REST server before the greedy/meta/:typeroute (and mirrored in the dispatcher) so_draftsis never captured as a metadata type name.Read-only; no behavior change to existing list/publish paths. Powers the upcoming Studio "drafts/pending changes" view and draft-aware package contents.
4fbb86a: feat(packages): consolidate the package subsystem so AI-built app packages surface in Studio
The package subsystem was split across two stores that never met: the in-memory
SchemaRegistry(what the dispatcher's/api/v1/packageslist/detail andgetMetaItems({type:'package'})read — i.e. Studio's package selector) and the durablesys_packagestable (where the AI's auto app package, and anypackage-service publish,were written). Nothing reconciled the two, so an AI-created
app.<name>package neverappeared in Studio.
This unifies them around one write primitive and one read source:
protocol.installPackageis now implemented (it was declared-but-missing). It is thesingle canonical write path: it registers the package in the in-memory registry and
best-effort persists it to
sys_packagesvia thepackageservice. Non-fatal when nopackageservice is wired (registry write still succeeds).POST /api/v1/packagesroutes throughprotocol.installPackage(fallingback to the bare registry write when the protocol is unavailable), so HTTP installs are
durable too.
@objectstack/service-packagereconcilessys_packagesback into the registry onboot, without clobbering filesystem-registered packages — so persisted packages survive a
restart and stay visible in the registry-backed read paths.
@objectstack/service-aiapply_blueprintnow homes an app viaprotocol.installPackage(falling back to the legacypackage-service publish), so theapp package lands where Studio reads it.
Still the legacy
package_idplane — sealedsys_package_versionversioning andcross-environment promotion remain ADR-0027 follow-ups.
e631f1e: feat(metadata): publish a whole app's drafts in one shot (ADR-0033)
After an AI builds an app, its metadata is drafted (bound to an app package) and
had to be published one item at a time. The package-level
POST /packages/:id/publishneeds the
metadataservice (503 when absent, e.g. the showcase) and reads thein-memory registry, not the drafts.
protocol.publishPackageDrafts({ packageId })promotes everysys_metadatadraft row bound to the package to active by reusing the per-item
publishMetaItemprimitive (overridable/lock guards + runtime registryrefresh). Per-item failures are collected, not fatal. No
metadata-servicedependency.
POST /api/v1/packages/:id/publish-draftsexposes it (distinct from theregistry-based
/publish), returning{ success, publishedCount, failedCount, published, failed }.Verified live: an AI-built
app.asset_management(4 drafts) published in one call —all 4 promoted to active, drafts cleared, draft objects became queryable.
Updated dependencies [06f2bbb]
Updated dependencies [a75823a]
Updated dependencies [4fbb86a]
Updated dependencies [e631f1e]
@objectstack/service-analytics@7.8.0
Patch Changes
@objectstack/service-automation@7.8.0
Patch Changes
@objectstack/service-cache@7.8.0
Patch Changes
@objectstack/service-cluster@7.8.0
Patch Changes
@objectstack/service-cluster-redis@7.8.0
Patch Changes
@objectstack/service-datasource@7.8.0
Patch Changes
@objectstack/service-feed@7.8.0
Patch Changes
@objectstack/service-i18n@7.8.0
Patch Changes
@objectstack/service-job@7.8.0
Patch Changes
@objectstack/service-knowledge@7.8.0
Patch Changes
@objectstack/service-messaging@7.8.0
Patch Changes
@objectstack/service-package@7.8.0
Patch Changes
4fbb86a: feat(packages): consolidate the package subsystem so AI-built app packages surface in Studio
The package subsystem was split across two stores that never met: the in-memory
SchemaRegistry(what the dispatcher's/api/v1/packageslist/detail andgetMetaItems({type:'package'})read — i.e. Studio's package selector) and the durablesys_packagestable (where the AI's auto app package, and anypackage-service publish,were written). Nothing reconciled the two, so an AI-created
app.<name>package neverappeared in Studio.
This unifies them around one write primitive and one read source:
protocol.installPackageis now implemented (it was declared-but-missing). It is thesingle canonical write path: it registers the package in the in-memory registry and
best-effort persists it to
sys_packagesvia thepackageservice. Non-fatal when nopackageservice is wired (registry write still succeeds).POST /api/v1/packagesroutes throughprotocol.installPackage(fallingback to the bare registry write when the protocol is unavailable), so HTTP installs are
durable too.
@objectstack/service-packagereconcilessys_packagesback into the registry onboot, without clobbering filesystem-registered packages — so persisted packages survive a
restart and stay visible in the registry-backed read paths.
@objectstack/service-aiapply_blueprintnow homes an app viaprotocol.installPackage(falling back to the legacypackage-service publish), so theapp package lands where Studio reads it.
Still the legacy
package_idplane — sealedsys_package_versionversioning andcross-environment promotion remain ADR-0027 follow-ups.
Updated dependencies [06f2bbb]
@objectstack/service-queue@7.8.0
Patch Changes
@objectstack/service-realtime@7.8.0
Patch Changes
@objectstack/service-settings@7.8.0
Patch Changes
@objectstack/service-storage@7.8.0
Patch Changes
@objectstack/spec@7.8.0
Patch Changes
06f2bbb: fix(ai): make ADR-0033 blueprint authoring work with OpenAI structured outputs
Two bugs surfaced by a live end-to-end run (Studio chat → blueprint → draft → review → publish) against a real model (OpenAI via the Vercel AI Gateway) — both invisible to the existing unit tests:
propose_blueprintfailed against OpenAI strict structured outputs.SolutionBlueprintSchemauses optional fields and a free-formseedDatarecord; OpenAI's strict mode requires every property listed inrequiredand rejects openadditionalProperties, sogenerateObjecterrored ('required' … must include every key in properties) and the agent silently fell back to free-text. AddsSolutionBlueprintStrictSchema— a strict-compatible mirror (optional → nullable, noz.record) used only as thegenerateObjectoutput contract. The lenientSolutionBlueprintSchema(and every existing consumer/test) is unchanged; the blueprint tools strip thenulls the strict contract emits so downstream stays clean.Tool-only assistant turns failed to persist.
ai_messages.contentis required, but an assistant turn that only calls a tool has no text, so the insert failed, the turn was dropped, and the next turn lost context (the agent re-proposed instead of applying the confirmed blueprint).ObjectQLConversationService.addMessagenow synthesizes a readable placeholder from the tool names ((called propose_blueprint)) plus a defensive non-empty fallback.With both fixes the full plan-first loop runs end-to-end on OpenAI models: propose → confirm → batch-draft objects/views/dashboards/app → review/diff → publish.
@objectstack/types@7.8.0
Patch Changes
@objectstack/account@7.8.0
@objectstack/console@7.8.0
create-objectstack@7.8.0
objectstack-vscode@7.8.0
@objectstack/example-crm@4.0.36
Patch Changes
@objectstack/example-showcase@0.1.6
Patch Changes
@example/app-todo@4.0.36
Patch Changes