chore: version packages#2216
Merged
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
June 22, 2026 15:05
0666bdf to
db82ab3
Compare
68 tasks
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/cli@10.1.0
Minor Changes
49da36e: feat(datasource): reject field.columnName on external objects + drop showcase onEnable bridge (ADR-0062 Phase 4, D7/D8)
D7 — reconcile column mapping.
os compile/build(validateStackExpressions)now rejects
field.columnNameon a federated (external) object with a correctivemessage: the driver's query pipeline ignores
field.columnNamefor externalobjects, so
external.columnMapis the single authoritative mechanism. Managedobjects are untouched.
D8 — drop the canonical example's driver bridge.
examples/app-showcasedeclares its external datasource with no
onEnabledriver registration — thedeclared datasource auto-connects at boot (ADR-0062 D1).
onEnablenow onlyprovisions the "remote" fixture tables. To cover this end-to-end, the
@objectstack/verifyharness wires the datasource-admin plugin (registering the'datasource-connection'service) when an app declares datasources, so it mirrorsobjectstack dev/serve; a new dogfood test reads the federated objects through thereal REST stack (incl. the
remoteNameremap).onEnable+ctx.drivers.registerremains supported as an escape hatch for drivers built dynamically at runtime.
7cf283a: Make
os validatethe author-time verification gate and steer scaffolds toward it.os validatenow runs the same CEL/predicate gate asos build/os compile(ADR-0032): every
visible/disabled/requiredWhen/validation/flow/sharingpredicate is checked for CEL syntax and
record.<field>existence on the targetobject. It already ran the protocol schema and widget-binding checks; the
expression gate closes the gap so a bare field ref (
doneinstead ofrecord.done) — which silently hides an action on every record at runtime(fix(showcase): hide Mark Done once the task is complete #2183/feat(cli): validate action visible/disabled predicates at build time #2185) — fails validation instead of shipping.
os validateis now aread-only superset of the build's checks (no artifact emitted).
create-objectstacknow emits anAGENTS.md(and.github/copilot-instructions.md)into every generated project instructing coding agents to run
npm run validateafter editing metadata, aligns the blank template's
dev/startscripts with theexample apps (
objectstack dev/objectstack start), and sharpens the post-create"Next steps" output.
517dad9: Schema drift detection +
os migratefor non-additive metadata changes (Schema sync is additive-only: non-additive metadata changes (required→optional, type, drop, rename) silently diverge from existing DBs; need drift detection + os migrate #2186).The metadata→DB schema sync was additive-only: it created tables and added
columns but never altered/dropped existing ones, so relaxing
required,changing a type/length, or dropping a field silently diverged from an existing
database. The physical column won at write time, surfacing a misleading
organization_id is required400 even though/metareported the fieldoptional.
the source of truth) and categorises each divergence
safe/needs_confirm/
destructive.initObjectswarns once per divergence with an actionablehint. A new opt-in
SqlDriverConfig.autoMigrate: 'safe'auto-applies theloosening subset (relax
NOT NULL, widen varchar) so an existing dev DBself-heals on restart — never destructive, force-disabled under
NODE_ENV=production. New public methodsdetectManagedDrift()/applyMigrationEntries(). SQLite reconciles via the official table-rebuild(copy → swap), preserving data; Postgres/MySQL alter in place.
os migrate plan(dry-run, categorised diff) andos migrate apply(--allow-destructivefor drops/tightenings, confirm gate,--json).os dev/servenow passautoMigrate: 'safe'in dev only.NOT NULLviolation that reaches the driver (metadata validationalready passed) now carries a drift-aware
hintpointing atos migrate,instead of only the misleading "field is required" message. The
VALIDATION_FAILED/fieldsenvelope is unchanged for back-compat.Patch Changes
create-objectstack@10.1.0
Minor Changes
7cf283a: Make
os validatethe author-time verification gate and steer scaffolds toward it.os validatenow runs the same CEL/predicate gate asos build/os compile(ADR-0032): every
visible/disabled/requiredWhen/validation/flow/sharingpredicate is checked for CEL syntax and
record.<field>existence on the targetobject. It already ran the protocol schema and widget-binding checks; the
expression gate closes the gap so a bare field ref (
doneinstead ofrecord.done) — which silently hides an action on every record at runtime(fix(showcase): hide Mark Done once the task is complete #2183/feat(cli): validate action visible/disabled predicates at build time #2185) — fails validation instead of shipping.
os validateis now aread-only superset of the build's checks (no artifact emitted).
create-objectstacknow emits anAGENTS.md(and.github/copilot-instructions.md)into every generated project instructing coding agents to run
npm run validateafter editing metadata, aligns the blank template's
dev/startscripts with theexample apps (
objectstack dev/objectstack start), and sharpens the post-create"Next steps" output.
@objectstack/driver-sql@10.1.0
Minor Changes
517dad9: Schema drift detection +
os migratefor non-additive metadata changes (Schema sync is additive-only: non-additive metadata changes (required→optional, type, drop, rename) silently diverge from existing DBs; need drift detection + os migrate #2186).The metadata→DB schema sync was additive-only: it created tables and added
columns but never altered/dropped existing ones, so relaxing
required,changing a type/length, or dropping a field silently diverged from an existing
database. The physical column won at write time, surfacing a misleading
organization_id is required400 even though/metareported the fieldoptional.
the source of truth) and categorises each divergence
safe/needs_confirm/
destructive.initObjectswarns once per divergence with an actionablehint. A new opt-in
SqlDriverConfig.autoMigrate: 'safe'auto-applies theloosening subset (relax
NOT NULL, widen varchar) so an existing dev DBself-heals on restart — never destructive, force-disabled under
NODE_ENV=production. New public methodsdetectManagedDrift()/applyMigrationEntries(). SQLite reconciles via the official table-rebuild(copy → swap), preserving data; Postgres/MySQL alter in place.
os migrate plan(dry-run, categorised diff) andos migrate apply(--allow-destructivefor drops/tightenings, confirm gate,--json).os dev/servenow passautoMigrate: 'safe'in dev only.NOT NULLviolation that reaches the driver (metadata validationalready passed) now carries a drift-aware
hintpointing atos migrate,instead of only the misleading "field is required" message. The
VALIDATION_FAILED/fieldsenvelope is unchanged for back-compat.Patch Changes
@objectstack/runtime@10.1.0
Minor Changes
ac79f16: feat(datasource): auto-connect declared external datasources (ADR-0062 Phase 1, D1/D2/D5)
A declared external datasource is now connected to a live ObjectQL driver and its
federated objects are queryable with zero app code — no
onEnabledriverwiring. Implements ADR-0062 Phase 1.
DatasourceConnectionServicein@objectstack/service-datasourceowns the single "definition → live driver"path: build via the injected driver factory → resolve
external.credentialsRefvia the
SecretBinder→ connect →engine.registerDriverunder the datasourcename → register the datasource def → sync each bound federated object's read
metadata (DDL-free). Both origins converge on it: the runtime-admin
registerPoolnow delegates here, andAppPluginauto-connects code-defineddatasources. Exposed as the
'datasource-connection'kernel service.external, an object explicitly binds to it viaobject.datasource, or itsets the new
autoConnect: trueflag. A managed datasource that nothingexplicitly binds (incl. ones referenced only by a
datasourceMappingrule, e.g.examples/app-crm's:memory:datasources) stays metadata-only — existing appsare byte-for-byte unchanged. See the ADR-0062 D2 implementation note.
AppPlugin.start()(before the
kernel:readyvalidation gate, relying on the kernel'sinit-all-then-start-all ordering). Fail-fast for a declared
externaldatasourcewith
validation.onMismatch: 'fail'; degrade-with-warning otherwise (and alwaysfor runtime-admin/rehydrate, so a UI action or replica blip never bricks the
server). Adds a host-injectable
DatasourceConnectPolicy(open-core defaultallows; a multi-tenant host binds a stricter fail-closed policy for egress
isolation) consulted before every connect — one connect path, no cloud fork.
Adds
datasource.autoConnectto the spec. The legacyonEnable+ctx.drivers.registerbridge remains supported as an escape hatch (idempotent vs.auto-connect). No behavior change for managed apps.
Patch Changes
94d2161: refactor(runtime): build the standalone default driver via the shared datasource factory (ADR-0062 follow-up)
createStandaloneStacknow constructs itsdefaultdriver for the user-facingkinds (memory / better-sqlite3 / postgres / mongodb) through the same
createDefaultDatasourceDriverFactoryused for declared and runtime-admindatasources — one "driver kind → instance" construction path instead of two
hand-mirrored ones. Adding a dialect or changing connection/pool defaults now
happens in a single place. URL→config translation, filesystem prep (
mkdir),and pre-engine
DriverPluginregistration stay in the stack (unchanged); thefactory only constructs the driver. The pure-JS WASM sqlite driver stays bespoke
in the stack — it's the standalone-specific, CI-safe default and not a
user-creatable datasource type, so it has a single construction site already.
No behavior change: the same driver instances are built for the same inputs
(verified by a per-kind connect + CRUD round-trip test and a real
os devboot).Adds
@objectstack/service-datasourceas a runtime dependency (no cycle — thatpackage depends only on core/spec).
Updated dependencies [49da36e]
Updated dependencies [49da36e]
Updated dependencies [ac79f16]
Updated dependencies [517dad9]
@objectstack/service-analytics@10.1.0
Minor Changes
49da36e: feat(analytics): correct analytics over federated objects (ADR-0062 Phase 3, D6)
Analytics over an external (federated) object now aggregates against the
correct remote table instead of silently querying the wrong one. The
NativeSQLStrategyhand-compilesFROM "<object>"and bare column references,which bypass the driver's physical-table resolution (
external.remoteName/remoteSchema/columnMap). It now declines any query whose base or joinedobject is federated, routing it to the
ObjectQLStrategy— whoseengine.aggregate()goes through the driver'sgetBuilderand already honoursremoteName/remoteSchema(fix(driver-sql,objectql): honor external.remoteName/remoteSchema in the federation read path (ADR-0015) #2138/feat(driver-sql): honor external.columnMap on federated objects (ADR-0015) #2149). This "reuses the driver's resolution"(D6) rather than re-implementing it.
Adds an optional
StrategyContext.isExternalObject(objectName)hook (reported bythe analytics plugin from the object's
externalblock). Purely additive — withno hook, behavior is unchanged for managed objects.
Patch Changes
@objectstack/service-datasource@10.1.0
Minor Changes
49da36e: feat(datasource): fail-closed credential resolution at connect (ADR-0062 Phase 2, D3)
DatasourceConnectionServicenow treats a declaredexternal.credentialsRefasfail-closed: the credential must resolve to a cleartext secret (via the
host's
SecretBinderoverICryptoProvider) before the driver is built. Anabsent secret store, or a ref that cannot be resolved/decrypted (missing
sys_secretrow, rotated key, or a throwing resolver), leaves the datasourceunconnected with a clear message — never a silent build-without-secret that
would connect with no/wrong auth or fail later with a confusing driver error.
The same policy as connect failures applies: a code-defined
externaldatasourcewith
validation.onMismatch: 'fail'auto-connected at boot fails fast (bricksboot); runtime-admin create/update + boot rehydration degrade-with-warning. Code-
and runtime-origin secrets converge on the one connection path (the same
SecretBinderis threaded through the shared service). Newfailed-credentialsconnect status.
ac79f16: feat(datasource): auto-connect declared external datasources (ADR-0062 Phase 1, D1/D2/D5)
A declared external datasource is now connected to a live ObjectQL driver and its
federated objects are queryable with zero app code — no
onEnabledriverwiring. Implements ADR-0062 Phase 1.
DatasourceConnectionServicein@objectstack/service-datasourceowns the single "definition → live driver"path: build via the injected driver factory → resolve
external.credentialsRefvia the
SecretBinder→ connect →engine.registerDriverunder the datasourcename → register the datasource def → sync each bound federated object's read
metadata (DDL-free). Both origins converge on it: the runtime-admin
registerPoolnow delegates here, andAppPluginauto-connects code-defineddatasources. Exposed as the
'datasource-connection'kernel service.external, an object explicitly binds to it viaobject.datasource, or itsets the new
autoConnect: trueflag. A managed datasource that nothingexplicitly binds (incl. ones referenced only by a
datasourceMappingrule, e.g.examples/app-crm's:memory:datasources) stays metadata-only — existing appsare byte-for-byte unchanged. See the ADR-0062 D2 implementation note.
AppPlugin.start()(before the
kernel:readyvalidation gate, relying on the kernel'sinit-all-then-start-all ordering). Fail-fast for a declared
externaldatasourcewith
validation.onMismatch: 'fail'; degrade-with-warning otherwise (and alwaysfor runtime-admin/rehydrate, so a UI action or replica blip never bricks the
server). Adds a host-injectable
DatasourceConnectPolicy(open-core defaultallows; a multi-tenant host binds a stricter fail-closed policy for egress
isolation) consulted before every connect — one connect path, no cloud fork.
Adds
datasource.autoConnectto the spec. The legacyonEnable+ctx.drivers.registerbridge remains supported as an escape hatch (idempotent vs.auto-connect). No behavior change for managed apps.
Patch Changes
@objectstack/spec@10.1.0
Minor Changes
49da36e: feat(analytics): correct analytics over federated objects (ADR-0062 Phase 3, D6)
Analytics over an external (federated) object now aggregates against the
correct remote table instead of silently querying the wrong one. The
NativeSQLStrategyhand-compilesFROM "<object>"and bare column references,which bypass the driver's physical-table resolution (
external.remoteName/remoteSchema/columnMap). It now declines any query whose base or joinedobject is federated, routing it to the
ObjectQLStrategy— whoseengine.aggregate()goes through the driver'sgetBuilderand already honoursremoteName/remoteSchema(fix(driver-sql,objectql): honor external.remoteName/remoteSchema in the federation read path (ADR-0015) #2138/feat(driver-sql): honor external.columnMap on federated objects (ADR-0015) #2149). This "reuses the driver's resolution"(D6) rather than re-implementing it.
Adds an optional
StrategyContext.isExternalObject(objectName)hook (reported bythe analytics plugin from the object's
externalblock). Purely additive — withno hook, behavior is unchanged for managed objects.
ac79f16: feat(datasource): auto-connect declared external datasources (ADR-0062 Phase 1, D1/D2/D5)
A declared external datasource is now connected to a live ObjectQL driver and its
federated objects are queryable with zero app code — no
onEnabledriverwiring. Implements ADR-0062 Phase 1.
DatasourceConnectionServicein@objectstack/service-datasourceowns the single "definition → live driver"path: build via the injected driver factory → resolve
external.credentialsRefvia the
SecretBinder→ connect →engine.registerDriverunder the datasourcename → register the datasource def → sync each bound federated object's read
metadata (DDL-free). Both origins converge on it: the runtime-admin
registerPoolnow delegates here, andAppPluginauto-connects code-defineddatasources. Exposed as the
'datasource-connection'kernel service.external, an object explicitly binds to it viaobject.datasource, or itsets the new
autoConnect: trueflag. A managed datasource that nothingexplicitly binds (incl. ones referenced only by a
datasourceMappingrule, e.g.examples/app-crm's:memory:datasources) stays metadata-only — existing appsare byte-for-byte unchanged. See the ADR-0062 D2 implementation note.
AppPlugin.start()(before the
kernel:readyvalidation gate, relying on the kernel'sinit-all-then-start-all ordering). Fail-fast for a declared
externaldatasourcewith
validation.onMismatch: 'fail'; degrade-with-warning otherwise (and alwaysfor runtime-admin/rehydrate, so a UI action or replica blip never bricks the
server). Adds a host-injectable
DatasourceConnectPolicy(open-core defaultallows; a multi-tenant host binds a stricter fail-closed policy for egress
isolation) consulted before every connect — one connect path, no cloud fork.
Adds
datasource.autoConnectto the spec. The legacyonEnable+ctx.drivers.registerbridge remains supported as an escape hatch (idempotent vs.auto-connect). No behavior change for managed apps.
@objectstack/verify@10.1.0
Minor Changes
49da36e: feat(datasource): reject field.columnName on external objects + drop showcase onEnable bridge (ADR-0062 Phase 4, D7/D8)
D7 — reconcile column mapping.
os compile/build(validateStackExpressions)now rejects
field.columnNameon a federated (external) object with a correctivemessage: the driver's query pipeline ignores
field.columnNamefor externalobjects, so
external.columnMapis the single authoritative mechanism. Managedobjects are untouched.
D8 — drop the canonical example's driver bridge.
examples/app-showcasedeclares its external datasource with no
onEnabledriver registration — thedeclared datasource auto-connects at boot (ADR-0062 D1).
onEnablenow onlyprovisions the "remote" fixture tables. To cover this end-to-end, the
@objectstack/verifyharness wires the datasource-admin plugin (registering the'datasource-connection'service) when an app declares datasources, so it mirrorsobjectstack dev/serve; a new dogfood test reads the federated objects through thereal REST stack (incl. the
remoteNameremap).onEnable+ctx.drivers.registerremains supported as an escape hatch for drivers built dynamically at runtime.
Patch Changes
@objectstack/express@10.1.0
Patch Changes
@objectstack/fastify@10.1.0
Patch Changes
@objectstack/hono@10.1.0
Patch Changes
@objectstack/nestjs@10.1.0
Patch Changes
@objectstack/nextjs@10.1.0
Patch Changes
@objectstack/nuxt@10.1.0
Patch Changes
@objectstack/sveltekit@10.1.0
Patch Changes
@objectstack/account@10.1.0
Patch Changes
@objectstack/setup@10.1.0
Patch Changes
@objectstack/studio@10.1.0
Patch Changes
@objectstack/client@10.1.0
Patch Changes
@objectstack/client-react@10.1.0
Patch Changes
@objectstack/cloud-connection@10.1.0
Patch Changes
@objectstack/connector-mcp@10.1.0
Patch Changes
@objectstack/connector-openapi@10.1.0
Patch Changes
@objectstack/connector-rest@10.1.0
Patch Changes
@objectstack/connector-slack@10.1.0
Patch Changes
@objectstack/core@10.1.0
Patch Changes
@objectstack/formula@10.1.0
Patch Changes
@objectstack/mcp@10.1.0
Patch Changes
@objectstack/metadata@10.1.0
Patch Changes
@objectstack/metadata-core@10.1.0
Patch Changes
@objectstack/metadata-fs@10.1.0
Patch Changes
@objectstack/objectql@10.1.0
Patch Changes
@objectstack/observability@10.1.0
Patch Changes
@objectstack/platform-objects@10.1.0
Patch Changes
@objectstack/driver-memory@10.1.0
Patch Changes
@objectstack/driver-mongodb@10.1.0
Patch Changes
@objectstack/driver-sqlite-wasm@10.1.0
Patch Changes
@objectstack/embedder-openai@10.1.0
Patch Changes
@objectstack/knowledge-memory@10.1.0
Patch Changes
@objectstack/knowledge-ragflow@10.1.0
Patch Changes
@objectstack/plugin-approvals@10.1.0
Patch Changes
@objectstack/plugin-audit@10.1.0
Patch Changes
@objectstack/plugin-auth@10.1.0
Patch Changes
@objectstack/plugin-dev@10.1.0
Patch Changes
@objectstack/plugin-email@10.1.0
Patch Changes
@objectstack/plugin-hono-server@10.1.0
Patch Changes
@objectstack/plugin-msw@10.1.0
Patch Changes
@objectstack/plugin-org-scoping@10.1.0
Patch Changes
@objectstack/plugin-reports@10.1.0
Patch Changes
@objectstack/plugin-security@10.1.0
Patch Changes
@objectstack/plugin-sharing@10.1.0
Patch Changes
@objectstack/plugin-webhooks@10.1.0
Patch Changes
@objectstack/rest@10.1.0
Patch Changes
517dad9: Schema drift detection +
os migratefor non-additive metadata changes (Schema sync is additive-only: non-additive metadata changes (required→optional, type, drop, rename) silently diverge from existing DBs; need drift detection + os migrate #2186).The metadata→DB schema sync was additive-only: it created tables and added
columns but never altered/dropped existing ones, so relaxing
required,changing a type/length, or dropping a field silently diverged from an existing
database. The physical column won at write time, surfacing a misleading
organization_id is required400 even though/metareported the fieldoptional.
the source of truth) and categorises each divergence
safe/needs_confirm/
destructive.initObjectswarns once per divergence with an actionablehint. A new opt-in
SqlDriverConfig.autoMigrate: 'safe'auto-applies theloosening subset (relax
NOT NULL, widen varchar) so an existing dev DBself-heals on restart — never destructive, force-disabled under
NODE_ENV=production. New public methodsdetectManagedDrift()/applyMigrationEntries(). SQLite reconciles via the official table-rebuild(copy → swap), preserving data; Postgres/MySQL alter in place.
os migrate plan(dry-run, categorised diff) andos migrate apply(--allow-destructivefor drops/tightenings, confirm gate,--json).os dev/servenow passautoMigrate: 'safe'in dev only.NOT NULLviolation that reaches the driver (metadata validationalready passed) now carries a drift-aware
hintpointing atos migrate,instead of only the misleading "field is required" message. The
VALIDATION_FAILED/fieldsenvelope is unchanged for back-compat.Updated dependencies [49da36e]
Updated dependencies [ac79f16]
@objectstack/service-ai@10.1.0
Patch Changes
@objectstack/service-automation@10.1.0
Patch Changes
@objectstack/service-cache@10.1.0
Patch Changes
@objectstack/service-cluster@10.1.0
Patch Changes
@objectstack/service-cluster-redis@10.1.0
Patch Changes
@objectstack/service-i18n@10.1.0
Patch Changes
@objectstack/service-job@10.1.0
Patch Changes
@objectstack/service-knowledge@10.1.0
Patch Changes
@objectstack/service-messaging@10.1.0
Patch Changes
@objectstack/service-package@10.1.0
Patch Changes
@objectstack/service-queue@10.1.0
Patch Changes
@objectstack/service-realtime@10.1.0
Patch Changes
@objectstack/service-settings@10.1.0
Patch Changes
@objectstack/service-storage@10.1.0
Patch Changes
@objectstack/trigger-api@10.1.0
Patch Changes
@objectstack/trigger-record-change@10.1.0
Patch Changes
@objectstack/trigger-schedule@10.1.0
Patch Changes
@objectstack/types@10.1.0
Patch Changes
@objectstack/console@10.1.0
objectstack-vscode@10.1.0
@objectstack/example-crm@4.0.56
Patch Changes
@objectstack/example-showcase@0.2.2
Patch Changes
@objectstack/example-todo@4.0.56
Patch Changes
@objectstack/dogfood@0.0.4
Patch Changes
@objectstack/downstream-contract@0.0.2
Patch Changes