Skip to content

chore: version packages#1549

Open
github-actions[bot] wants to merge 1 commit into
mainfrom
changeset-release/main
Open

chore: version packages#1549
github-actions[bot] wants to merge 1 commit into
mainfrom
changeset-release/main

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot commented Jun 2, 2026

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_metadata rows with state='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 (mirrors list() but scoped to state='draft', optionally narrowed by package), returning a light header projection (no body) with packageId.
    • 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/:type route (and mirrored in the dispatcher) so _drafts is 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/packages list/detail and
    getMetaItems({type:'package'}) read — i.e. Studio's package selector) and the durable
    sys_packages table (where the AI's auto app package, and any package-service publish,
    were written). Nothing reconciled the two, so an AI-created app.<name> package never
    appeared in Studio.

    This unifies them around one write primitive and one read source:

    • protocol.installPackage is now implemented (it was declared-but-missing). It is the
      single canonical write path: it registers the package in the in-memory registry and
      best-effort persists it to sys_packages via the package service. Non-fatal when no
      package service is wired (registry write still succeeds).
    • Dispatcher POST /api/v1/packages routes through protocol.installPackage (falling
      back to the bare registry write when the protocol is unavailable), so HTTP installs are
      durable too.
    • @objectstack/service-package reconciles sys_packages back into the registry on
      boot, without clobbering filesystem-registered packages — so persisted packages survive a
      restart and stay visible in the registry-backed read paths.
    • @objectstack/service-ai apply_blueprint now homes an app via
      protocol.installPackage (falling back to the legacy package-service publish), so the
      app package lands where Studio reads it.

    Still the legacy package_id plane — sealed sys_package_version versioning and
    cross-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/publish
    needs the metadata service (503 when absent, e.g. the showcase) and reads the
    in-memory registry, not the drafts.

    • protocol.publishPackageDrafts({ packageId }) promotes every sys_metadata
      draft row bound to the package to active by reusing the per-item
      publishMetaItem primitive (overridable/lock guards + runtime registry
      refresh). Per-item failures are collected, not fatal. No metadata-service
      dependency.
    • POST /api/v1/packages/:id/publish-drafts exposes it (distinct from the
      registry-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

  • Updated dependencies [06f2bbb]
    • @objectstack/spec@7.8.0
    • @objectstack/core@7.8.0
    • @objectstack/formula@7.8.0
    • @objectstack/metadata-core@7.8.0
    • @objectstack/types@7.8.0

@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_blueprint ensures the app package up front (idempotent: reuse if it exists, else create via the runtime package service) and threads its packageId through every stageDraftsys_metadata.package_id. The result envelope gains package: { id, name, created }.
    • The package service is resolved lazily (per call, not at plugin-init time) so it works regardless of service-init order and picks up the opt-in marketplace capability when present.
    • Best-effort, non-fatal: if no package service 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 sealed sys_package_version model — full cross-environment promotion and Studio package-selector visibility depend on finishing the runtime package subsystem (ADR-0027), tracked separately. (The showcase example enables the marketplace capability 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:

    1. propose_blueprint failed against OpenAI strict structured outputs. SolutionBlueprintSchema uses optional fields and a free-form seedData record; OpenAI's strict mode requires every property listed in required and rejects open additionalProperties, so generateObject errored ('required' … must include every key in properties) and the agent silently fell back to free-text. Adds SolutionBlueprintStrictSchema — a strict-compatible mirror (optional → nullable, no z.record) used only as the generateObject output contract. The lenient SolutionBlueprintSchema (and every existing consumer/test) is unchanged; the blueprint tools strip the nulls the strict contract emits so downstream stays clean.

    2. Tool-only assistant turns failed to persist. ai_messages.content is 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.addMessage now 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/packages list/detail and
    getMetaItems({type:'package'}) read — i.e. Studio's package selector) and the durable
    sys_packages table (where the AI's auto app package, and any package-service publish,
    were written). Nothing reconciled the two, so an AI-created app.<name> package never
    appeared in Studio.

    This unifies them around one write primitive and one read source:

    • protocol.installPackage is now implemented (it was declared-but-missing). It is the
      single canonical write path: it registers the package in the in-memory registry and
      best-effort persists it to sys_packages via the package service. Non-fatal when no
      package service is wired (registry write still succeeds).
    • Dispatcher POST /api/v1/packages routes through protocol.installPackage (falling
      back to the bare registry write when the protocol is unavailable), so HTTP installs are
      durable too.
    • @objectstack/service-package reconciles sys_packages back into the registry on
      boot, without clobbering filesystem-registered packages — so persisted packages survive a
      restart and stay visible in the registry-backed read paths.
    • @objectstack/service-ai apply_blueprint now homes an app via
      protocol.installPackage (falling back to the legacy package-service publish), so the
      app package lands where Studio reads it.

    Still the legacy package_id plane — sealed sys_package_version versioning and
    cross-environment promotion remain ADR-0027 follow-ups.

  • Updated dependencies [06f2bbb]

    • @objectstack/spec@7.8.0
    • @objectstack/core@7.8.0
    • @objectstack/formula@7.8.0
    • @objectstack/types@7.8.0

@objectstack/express@7.8.0

Patch Changes

  • Updated dependencies [a75823a]
  • Updated dependencies [4fbb86a]
  • Updated dependencies [e631f1e]
    • @objectstack/runtime@7.8.0

@objectstack/fastify@7.8.0

Patch Changes

  • Updated dependencies [a75823a]
  • Updated dependencies [4fbb86a]
  • Updated dependencies [e631f1e]
    • @objectstack/runtime@7.8.0

@objectstack/hono@7.8.0

Patch Changes

  • Updated dependencies [a75823a]
  • Updated dependencies [4fbb86a]
  • Updated dependencies [e631f1e]
    • @objectstack/runtime@7.8.0
    • @objectstack/plugin-hono-server@7.8.0
    • @objectstack/types@7.8.0

@objectstack/nestjs@7.8.0

Patch Changes

  • Updated dependencies [a75823a]
  • Updated dependencies [4fbb86a]
  • Updated dependencies [e631f1e]
    • @objectstack/runtime@7.8.0

@objectstack/nextjs@7.8.0

Patch Changes

  • Updated dependencies [a75823a]
  • Updated dependencies [4fbb86a]
  • Updated dependencies [e631f1e]
    • @objectstack/runtime@7.8.0

@objectstack/nuxt@7.8.0

Patch Changes

  • Updated dependencies [a75823a]
  • Updated dependencies [4fbb86a]
  • Updated dependencies [e631f1e]
    • @objectstack/runtime@7.8.0

@objectstack/sveltekit@7.8.0

Patch Changes

  • Updated dependencies [a75823a]
  • Updated dependencies [4fbb86a]
  • Updated dependencies [e631f1e]
    • @objectstack/runtime@7.8.0

@objectstack/cli@7.8.0

Patch Changes

  • Updated dependencies [6b82e68]
  • Updated dependencies [06f2bbb]
  • Updated dependencies [a75823a]
  • Updated dependencies [4fbb86a]
  • Updated dependencies [e631f1e]
    • @objectstack/service-ai@7.8.0
    • @objectstack/spec@7.8.0
    • @objectstack/objectql@7.8.0
    • @objectstack/rest@7.8.0
    • @objectstack/runtime@7.8.0
    • @objectstack/service-package@7.8.0
    • @objectstack/account@7.8.0
    • @objectstack/client@7.8.0
    • @objectstack/core@7.8.0
    • @objectstack/formula@7.8.0
    • @objectstack/observability@7.8.0
    • @objectstack/platform-objects@7.8.0
    • @objectstack/driver-memory@7.8.0
    • @objectstack/driver-mongodb@7.8.0
    • @objectstack/driver-sql@7.8.0
    • @objectstack/driver-sqlite-wasm@7.8.0
    • @objectstack/plugin-approvals@7.8.0
    • @objectstack/plugin-audit@7.8.0
    • @objectstack/plugin-auth@7.8.0
    • @objectstack/plugin-email@7.8.0
    • @objectstack/plugin-hono-server@7.8.0
    • @objectstack/plugin-mcp-server@7.8.0
    • @objectstack/plugin-org-scoping@7.8.0
    • @objectstack/plugin-reports@7.8.0
    • @objectstack/plugin-security@7.8.0
    • @objectstack/plugin-sharing@7.8.0
    • @objectstack/plugin-trigger-record-change@7.8.0
    • @objectstack/plugin-trigger-schedule@7.8.0
    • @objectstack/plugin-webhooks@7.8.0
    • @objectstack/service-analytics@7.8.0
    • @objectstack/service-automation@7.8.0
    • @objectstack/service-cache@7.8.0
    • @objectstack/service-datasource@7.8.0
    • @objectstack/service-feed@7.8.0
    • @objectstack/service-job@7.8.0
    • @objectstack/service-messaging@7.8.0
    • @objectstack/service-queue@7.8.0
    • @objectstack/service-realtime@7.8.0
    • @objectstack/service-settings@7.8.0
    • @objectstack/service-storage@7.8.0
    • @objectstack/types@7.8.0
    • @objectstack/console@7.8.0

@objectstack/client@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
    • @objectstack/spec@7.8.0
    • @objectstack/core@7.8.0

@objectstack/client-react@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
    • @objectstack/spec@7.8.0
    • @objectstack/client@7.8.0
    • @objectstack/core@7.8.0

@objectstack/connector-mcp@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
    • @objectstack/spec@7.8.0
    • @objectstack/core@7.8.0

@objectstack/connector-openapi@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
    • @objectstack/spec@7.8.0
    • @objectstack/core@7.8.0

@objectstack/connector-rest@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
    • @objectstack/spec@7.8.0
    • @objectstack/core@7.8.0

@objectstack/connector-slack@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
    • @objectstack/spec@7.8.0
    • @objectstack/core@7.8.0

@objectstack/core@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
    • @objectstack/spec@7.8.0

@objectstack/formula@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
    • @objectstack/spec@7.8.0

@objectstack/metadata@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
    • @objectstack/spec@7.8.0
    • @objectstack/core@7.8.0
    • @objectstack/metadata-core@7.8.0
    • @objectstack/platform-objects@7.8.0
    • @objectstack/types@7.8.0
    • @objectstack/metadata-fs@7.8.0

@objectstack/metadata-core@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
    • @objectstack/spec@7.8.0

@objectstack/metadata-fs@7.8.0

Patch Changes

  • @objectstack/metadata-core@7.8.0

@objectstack/observability@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
    • @objectstack/spec@7.8.0

@objectstack/platform-objects@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
    • @objectstack/spec@7.8.0
    • @objectstack/metadata-core@7.8.0

@objectstack/driver-memory@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
    • @objectstack/spec@7.8.0
    • @objectstack/core@7.8.0

@objectstack/driver-mongodb@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
    • @objectstack/spec@7.8.0
    • @objectstack/core@7.8.0

@objectstack/driver-sql@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
    • @objectstack/spec@7.8.0
    • @objectstack/core@7.8.0

@objectstack/driver-sqlite-wasm@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
    • @objectstack/spec@7.8.0
    • @objectstack/core@7.8.0
    • @objectstack/driver-sql@7.8.0

@objectstack/embedder-openai@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
    • @objectstack/spec@7.8.0

@objectstack/knowledge-memory@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
    • @objectstack/spec@7.8.0
    • @objectstack/core@7.8.0
    • @objectstack/service-knowledge@7.8.0

@objectstack/knowledge-ragflow@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
    • @objectstack/spec@7.8.0
    • @objectstack/core@7.8.0
    • @objectstack/service-knowledge@7.8.0

@objectstack/plugin-approvals@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
    • @objectstack/spec@7.8.0
    • @objectstack/core@7.8.0
    • @objectstack/formula@7.8.0
    • @objectstack/metadata-core@7.8.0
    • @objectstack/platform-objects@7.8.0

@objectstack/plugin-audit@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
    • @objectstack/spec@7.8.0
    • @objectstack/core@7.8.0
    • @objectstack/platform-objects@7.8.0

@objectstack/plugin-auth@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
    • @objectstack/spec@7.8.0
    • @objectstack/core@7.8.0
    • @objectstack/platform-objects@7.8.0
    • @objectstack/types@7.8.0

@objectstack/plugin-dev@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
  • Updated dependencies [a75823a]
  • Updated dependencies [4fbb86a]
  • Updated dependencies [e631f1e]
    • @objectstack/spec@7.8.0
    • @objectstack/objectql@7.8.0
    • @objectstack/rest@7.8.0
    • @objectstack/runtime@7.8.0
    • @objectstack/core@7.8.0
    • @objectstack/driver-memory@7.8.0
    • @objectstack/plugin-auth@7.8.0
    • @objectstack/plugin-hono-server@7.8.0
    • @objectstack/plugin-org-scoping@7.8.0
    • @objectstack/plugin-security@7.8.0
    • @objectstack/service-i18n@7.8.0
    • @objectstack/types@7.8.0

@objectstack/plugin-email@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
    • @objectstack/spec@7.8.0
    • @objectstack/core@7.8.0
    • @objectstack/platform-objects@7.8.0

@objectstack/plugin-hono-server@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
    • @objectstack/spec@7.8.0
    • @objectstack/core@7.8.0
    • @objectstack/types@7.8.0

@objectstack/plugin-mcp-server@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
    • @objectstack/spec@7.8.0
    • @objectstack/core@7.8.0
    • @objectstack/types@7.8.0

@objectstack/plugin-msw@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
  • Updated dependencies [a75823a]
  • Updated dependencies [4fbb86a]
  • Updated dependencies [e631f1e]
    • @objectstack/spec@7.8.0
    • @objectstack/objectql@7.8.0
    • @objectstack/runtime@7.8.0
    • @objectstack/core@7.8.0
    • @objectstack/types@7.8.0

@objectstack/plugin-org-scoping@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
    • @objectstack/spec@7.8.0
    • @objectstack/core@7.8.0
    • @objectstack/platform-objects@7.8.0

@objectstack/plugin-reports@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
    • @objectstack/spec@7.8.0
    • @objectstack/core@7.8.0
    • @objectstack/platform-objects@7.8.0

@objectstack/plugin-security@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
    • @objectstack/spec@7.8.0
    • @objectstack/core@7.8.0
    • @objectstack/platform-objects@7.8.0

@objectstack/plugin-sharing@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
  • Updated dependencies [a75823a]
  • Updated dependencies [4fbb86a]
  • Updated dependencies [e631f1e]
    • @objectstack/spec@7.8.0
    • @objectstack/objectql@7.8.0
    • @objectstack/core@7.8.0
    • @objectstack/platform-objects@7.8.0

@objectstack/plugin-trigger-record-change@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
    • @objectstack/spec@7.8.0
    • @objectstack/core@7.8.0

@objectstack/plugin-trigger-schedule@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
    • @objectstack/spec@7.8.0
    • @objectstack/core@7.8.0

@objectstack/plugin-webhooks@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
    • @objectstack/spec@7.8.0
    • @objectstack/core@7.8.0
    • @objectstack/service-messaging@7.8.0

@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_metadata rows with state='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 (mirrors list() but scoped to state='draft', optionally narrowed by package), returning a light header projection (no body) with packageId.
    • 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/:type route (and mirrored in the dispatcher) so _drafts is 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/spec@7.8.0
    • @objectstack/service-package@7.8.0
    • @objectstack/core@7.8.0

@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_metadata rows with state='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 (mirrors list() but scoped to state='draft', optionally narrowed by package), returning a light header projection (no body) with packageId.
    • 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/:type route (and mirrored in the dispatcher) so _drafts is 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/packages list/detail and
    getMetaItems({type:'package'}) read — i.e. Studio's package selector) and the durable
    sys_packages table (where the AI's auto app package, and any package-service publish,
    were written). Nothing reconciled the two, so an AI-created app.<name> package never
    appeared in Studio.

    This unifies them around one write primitive and one read source:

    • protocol.installPackage is now implemented (it was declared-but-missing). It is the
      single canonical write path: it registers the package in the in-memory registry and
      best-effort persists it to sys_packages via the package service. Non-fatal when no
      package service is wired (registry write still succeeds).
    • Dispatcher POST /api/v1/packages routes through protocol.installPackage (falling
      back to the bare registry write when the protocol is unavailable), so HTTP installs are
      durable too.
    • @objectstack/service-package reconciles sys_packages back into the registry on
      boot, without clobbering filesystem-registered packages — so persisted packages survive a
      restart and stay visible in the registry-backed read paths.
    • @objectstack/service-ai apply_blueprint now homes an app via
      protocol.installPackage (falling back to the legacy package-service publish), so the
      app package lands where Studio reads it.

    Still the legacy package_id plane — sealed sys_package_version versioning and
    cross-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/publish
    needs the metadata service (503 when absent, e.g. the showcase) and reads the
    in-memory registry, not the drafts.

    • protocol.publishPackageDrafts({ packageId }) promotes every sys_metadata
      draft row bound to the package to active by reusing the per-item
      publishMetaItem primitive (overridable/lock guards + runtime registry
      refresh). Per-item failures are collected, not fatal. No metadata-service
      dependency.
    • POST /api/v1/packages/:id/publish-drafts exposes it (distinct from the
      registry-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/spec@7.8.0
    • @objectstack/objectql@7.8.0
    • @objectstack/rest@7.8.0
    • @objectstack/core@7.8.0
    • @objectstack/formula@7.8.0
    • @objectstack/metadata@7.8.0
    • @objectstack/observability@7.8.0
    • @objectstack/driver-memory@7.8.0
    • @objectstack/driver-sql@7.8.0
    • @objectstack/driver-sqlite-wasm@7.8.0
    • @objectstack/plugin-auth@7.8.0
    • @objectstack/plugin-org-scoping@7.8.0
    • @objectstack/plugin-security@7.8.0
    • @objectstack/service-cluster@7.8.0
    • @objectstack/service-i18n@7.8.0
    • @objectstack/types@7.8.0

@objectstack/service-analytics@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
    • @objectstack/spec@7.8.0
    • @objectstack/core@7.8.0

@objectstack/service-automation@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
    • @objectstack/spec@7.8.0
    • @objectstack/core@7.8.0
    • @objectstack/formula@7.8.0

@objectstack/service-cache@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
    • @objectstack/spec@7.8.0
    • @objectstack/core@7.8.0
    • @objectstack/observability@7.8.0

@objectstack/service-cluster@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
    • @objectstack/spec@7.8.0
    • @objectstack/core@7.8.0

@objectstack/service-cluster-redis@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
    • @objectstack/spec@7.8.0
    • @objectstack/service-cluster@7.8.0

@objectstack/service-datasource@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
    • @objectstack/spec@7.8.0
    • @objectstack/core@7.8.0

@objectstack/service-feed@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
    • @objectstack/spec@7.8.0
    • @objectstack/core@7.8.0

@objectstack/service-i18n@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
    • @objectstack/spec@7.8.0
    • @objectstack/core@7.8.0

@objectstack/service-job@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
    • @objectstack/spec@7.8.0
    • @objectstack/core@7.8.0
    • @objectstack/platform-objects@7.8.0

@objectstack/service-knowledge@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
    • @objectstack/spec@7.8.0
    • @objectstack/core@7.8.0

@objectstack/service-messaging@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
    • @objectstack/spec@7.8.0
    • @objectstack/core@7.8.0

@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/packages list/detail and
    getMetaItems({type:'package'}) read — i.e. Studio's package selector) and the durable
    sys_packages table (where the AI's auto app package, and any package-service publish,
    were written). Nothing reconciled the two, so an AI-created app.<name> package never
    appeared in Studio.

    This unifies them around one write primitive and one read source:

    • protocol.installPackage is now implemented (it was declared-but-missing). It is the
      single canonical write path: it registers the package in the in-memory registry and
      best-effort persists it to sys_packages via the package service. Non-fatal when no
      package service is wired (registry write still succeeds).
    • Dispatcher POST /api/v1/packages routes through protocol.installPackage (falling
      back to the bare registry write when the protocol is unavailable), so HTTP installs are
      durable too.
    • @objectstack/service-package reconciles sys_packages back into the registry on
      boot, without clobbering filesystem-registered packages — so persisted packages survive a
      restart and stay visible in the registry-backed read paths.
    • @objectstack/service-ai apply_blueprint now homes an app via
      protocol.installPackage (falling back to the legacy package-service publish), so the
      app package lands where Studio reads it.

    Still the legacy package_id plane — sealed sys_package_version versioning and
    cross-environment promotion remain ADR-0027 follow-ups.

  • Updated dependencies [06f2bbb]

    • @objectstack/spec@7.8.0
    • @objectstack/core@7.8.0

@objectstack/service-queue@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
    • @objectstack/spec@7.8.0
    • @objectstack/core@7.8.0
    • @objectstack/platform-objects@7.8.0

@objectstack/service-realtime@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
    • @objectstack/spec@7.8.0
    • @objectstack/core@7.8.0
    • @objectstack/platform-objects@7.8.0

@objectstack/service-settings@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
    • @objectstack/spec@7.8.0
    • @objectstack/core@7.8.0
    • @objectstack/platform-objects@7.8.0
    • @objectstack/types@7.8.0

@objectstack/service-storage@7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
    • @objectstack/spec@7.8.0
    • @objectstack/core@7.8.0
    • @objectstack/observability@7.8.0

@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:

    1. propose_blueprint failed against OpenAI strict structured outputs. SolutionBlueprintSchema uses optional fields and a free-form seedData record; OpenAI's strict mode requires every property listed in required and rejects open additionalProperties, so generateObject errored ('required' … must include every key in properties) and the agent silently fell back to free-text. Adds SolutionBlueprintStrictSchema — a strict-compatible mirror (optional → nullable, no z.record) used only as the generateObject output contract. The lenient SolutionBlueprintSchema (and every existing consumer/test) is unchanged; the blueprint tools strip the nulls the strict contract emits so downstream stays clean.

    2. Tool-only assistant turns failed to persist. ai_messages.content is 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.addMessage now 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

  • Updated dependencies [06f2bbb]
    • @objectstack/spec@7.8.0

@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

  • Updated dependencies [06f2bbb]
  • Updated dependencies [a75823a]
  • Updated dependencies [4fbb86a]
  • Updated dependencies [e631f1e]
    • @objectstack/spec@7.8.0
    • @objectstack/runtime@7.8.0

@objectstack/example-showcase@0.1.6

Patch Changes

  • Updated dependencies [06f2bbb]
  • Updated dependencies [a75823a]
  • Updated dependencies [4fbb86a]
  • Updated dependencies [e631f1e]
    • @objectstack/spec@7.8.0
    • @objectstack/runtime@7.8.0
    • @objectstack/connector-rest@7.8.0
    • @objectstack/connector-slack@7.8.0

@example/app-todo@4.0.36

Patch Changes

  • Updated dependencies [6b82e68]
  • Updated dependencies [06f2bbb]
  • Updated dependencies [a75823a]
  • Updated dependencies [4fbb86a]
  • Updated dependencies [e631f1e]
    • @objectstack/service-ai@7.8.0
    • @objectstack/spec@7.8.0
    • @objectstack/objectql@7.8.0
    • @objectstack/runtime@7.8.0
    • @objectstack/client@7.8.0
    • @objectstack/metadata@7.8.0
    • @objectstack/driver-sqlite-wasm@7.8.0
    • @objectstack/knowledge-memory@7.8.0
    • @objectstack/service-knowledge@7.8.0

@vercel
Copy link
Copy Markdown

vercel Bot commented Jun 2, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
spec Ready Ready Preview, Comment Jun 3, 2026 5:12am

Request Review

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants