Skip to content

Latest commit

 

History

History
2550 lines (1976 loc) · 81.2 KB

File metadata and controls

2550 lines (1976 loc) · 81.2 KB

@objectstack/metadata

16.1.0

Patch Changes

  • Updated dependencies [212b66a]
  • Updated dependencies [d10c4dc]
  • Updated dependencies [9e45b63]
  • Updated dependencies [b20201f]
    • @objectstack/platform-objects@16.1.0
    • @objectstack/spec@16.1.0
    • @objectstack/core@16.1.0
    • @objectstack/metadata-core@16.1.0
    • @objectstack/types@16.1.0
    • @objectstack/metadata-fs@16.1.0

16.0.0

Patch Changes

  • fdc244e: Dev-loop DX fixes from the 15.1 third-party evaluation (P2 batch):

    • Hot-added objects are now queryable without a restart. Adding a *.object.ts under os dev used to recompile "green" while every query answered no such table (or not registered) until a manual restart: the artifact reload never notified the ObjectQL registry, tables were only created at boot, and seeds only loaded from the boot-time bundle. The metadata:reloaded payload now carries the parsed artifact; ObjectQL ingests the object definitions and re-runs the idempotent schema sync (same skipSchemaSync opt-out as boot), and the runtime loads seeds for first-seen objects (dev, single-tenant). os dev also prints ✚ new object(s): … on recompile.
    • Dev admin credentials stay visible. The os dev startup banner only showed admin@objectos.ai / admin123 on the boot that actually seeded it; with the persistent default DB every later boot hid it, and the Console login page never knew it existed. The hint now re-arms on every dev boot for as long as the account still verifies against the default password, and GET /api/v1/auth/config exposes a dev-gated devSeedAdmin field (never present outside NODE_ENV=development) so the login page can show it.
    • os doctor reference analysis understands current metadata shapes. Objects bound through defineView containers (list/listViews/form/formViewsdata.object, subform childObject, lookup form fields) and app navigation (objectName, nested children, areas) were reported as "defined but not referenced". The collector now walks the canonical shapes (plus flow node config.object/objectName) and the orphan-view check descends into containers.
  • d2723e2: MetadataManager.register() / unregister() now announce to subscribe() watchers. Both updated the registry, persisted to writable loaders and published to realtime, but never fired the watch callbacks — so subscribe() looked like it covered every write while silently missing all of them. Only the saveMetaItem path (via the repository watch stream) and the filesystem watcher ever reached a subscriber. Runtime consumers that cache metadata — notably ObjectQL's SchemaRegistry bridge, the component that decides what is queryable — went stale on every other write until the process restarted.

    Announcing is now the default, so a new call site is correct without knowing this contract exists. This is a contract fix rather than a bug fix: the one live behavior change is that runtime datasource writes (datasource-admin) now reach the HMR SSE stream, which subscribes to every registered type. unregisterPackage() / bulkUnregister() also announce their deletes now — correct, but latent, since neither has a production caller today.

    Bulk ingest opts out explicitly with the new MetadataWriteOptions ({ notify: false }) — boot-time filesystem priming, artifact ingest, and ObjectQL's registry bridge, each of which either runs before consumers cache anything or announces the whole batch once (as the artifact reload path does via metadata:reloaded). The bridge in particular MUST stay silent: it copies objects out of the SchemaRegistry, and announcing would feed them back through a handler that re-registers under _packageId ?? 'metadata-service', overwriting the true package provenance of every object whose body carries no _packageId.

    Additive only — register(type, name, data) and unregister(type, name) keep working unchanged.

    Fixes #3112.

  • Updated dependencies [f972574]

  • Updated dependencies [6289ec3]

  • Updated dependencies [22013aa]

  • Updated dependencies [3ad3dd5]

  • Updated dependencies [8efa395]

  • Updated dependencies [3a18b60]

  • Updated dependencies [a8aa34c]

  • Updated dependencies [e057f42]

  • Updated dependencies [a3823b2]

  • Updated dependencies [bc65105]

  • Updated dependencies [43a3efb]

  • Updated dependencies [524696a]

  • Updated dependencies [bfa3c3f]

  • Updated dependencies [5e3301d]

  • Updated dependencies [dd9f223]

  • Updated dependencies [46e876c]

  • Updated dependencies [5f05de2]

  • Updated dependencies [021ba4c]

  • Updated dependencies [158aa14]

  • Updated dependencies [62a2117]

  • Updated dependencies [83e8f7d]

  • Updated dependencies [d2723e2]

  • Updated dependencies [fefcd54]

  • Updated dependencies [beaf2de]

  • Updated dependencies [06cb319]

  • Updated dependencies [369eb6e]

  • Updated dependencies [06ff734]

  • Updated dependencies [b659111]

  • Updated dependencies [5754a23]

  • Updated dependencies [6c270a6]

  • Updated dependencies [290e2f0]

  • Updated dependencies [668dd17]

  • Updated dependencies [8abf133]

  • Updated dependencies [e0859b1]

  • Updated dependencies [92f5f19]

  • Updated dependencies [32899e6]

  • Updated dependencies [04ecd4e]

  • Updated dependencies [4d5a892]

  • Updated dependencies [16cebeb]

  • Updated dependencies [86d30af]

  • Updated dependencies [8923843]

  • Updated dependencies [a2795f6]

  • Updated dependencies [f16b492]

  • Updated dependencies [4b6fde8]

  • Updated dependencies [2018df9]

  • Updated dependencies [fc5a3a2]

  • Updated dependencies [8ff9210]

    • @objectstack/spec@16.0.0
    • @objectstack/platform-objects@16.0.0
    • @objectstack/core@16.0.0
    • @objectstack/metadata-core@16.0.0
    • @objectstack/types@16.0.0
    • @objectstack/metadata-fs@16.0.0

16.0.0-rc.1

Patch Changes

  • Updated dependencies [6289ec3]
  • Updated dependencies [8efa395]
  • Updated dependencies [bfa3c3f]
  • Updated dependencies [62a2117]
  • Updated dependencies [06ff734]
    • @objectstack/spec@16.0.0-rc.1
    • @objectstack/platform-objects@16.0.0-rc.1
    • @objectstack/metadata-core@16.0.0-rc.1
    • @objectstack/core@16.0.0-rc.1
    • @objectstack/types@16.0.0-rc.1
    • @objectstack/metadata-fs@16.0.0-rc.1

16.0.0-rc.0

Patch Changes

  • fdc244e: Dev-loop DX fixes from the 15.1 third-party evaluation (P2 batch):

    • Hot-added objects are now queryable without a restart. Adding a *.object.ts under os dev used to recompile "green" while every query answered no such table (or not registered) until a manual restart: the artifact reload never notified the ObjectQL registry, tables were only created at boot, and seeds only loaded from the boot-time bundle. The metadata:reloaded payload now carries the parsed artifact; ObjectQL ingests the object definitions and re-runs the idempotent schema sync (same skipSchemaSync opt-out as boot), and the runtime loads seeds for first-seen objects (dev, single-tenant). os dev also prints ✚ new object(s): … on recompile.
    • Dev admin credentials stay visible. The os dev startup banner only showed admin@objectos.ai / admin123 on the boot that actually seeded it; with the persistent default DB every later boot hid it, and the Console login page never knew it existed. The hint now re-arms on every dev boot for as long as the account still verifies against the default password, and GET /api/v1/auth/config exposes a dev-gated devSeedAdmin field (never present outside NODE_ENV=development) so the login page can show it.
    • os doctor reference analysis understands current metadata shapes. Objects bound through defineView containers (list/listViews/form/formViewsdata.object, subform childObject, lookup form fields) and app navigation (objectName, nested children, areas) were reported as "defined but not referenced". The collector now walks the canonical shapes (plus flow node config.object/objectName) and the orphan-view check descends into containers.
  • d2723e2: MetadataManager.register() / unregister() now announce to subscribe() watchers. Both updated the registry, persisted to writable loaders and published to realtime, but never fired the watch callbacks — so subscribe() looked like it covered every write while silently missing all of them. Only the saveMetaItem path (via the repository watch stream) and the filesystem watcher ever reached a subscriber. Runtime consumers that cache metadata — notably ObjectQL's SchemaRegistry bridge, the component that decides what is queryable — went stale on every other write until the process restarted.

    Announcing is now the default, so a new call site is correct without knowing this contract exists. This is a contract fix rather than a bug fix: the one live behavior change is that runtime datasource writes (datasource-admin) now reach the HMR SSE stream, which subscribes to every registered type. unregisterPackage() / bulkUnregister() also announce their deletes now — correct, but latent, since neither has a production caller today.

    Bulk ingest opts out explicitly with the new MetadataWriteOptions ({ notify: false }) — boot-time filesystem priming, artifact ingest, and ObjectQL's registry bridge, each of which either runs before consumers cache anything or announces the whole batch once (as the artifact reload path does via metadata:reloaded). The bridge in particular MUST stay silent: it copies objects out of the SchemaRegistry, and announcing would feed them back through a handler that re-registers under _packageId ?? 'metadata-service', overwriting the true package provenance of every object whose body carries no _packageId.

    Additive only — register(type, name, data) and unregister(type, name) keep working unchanged.

    Fixes #3112.

  • Updated dependencies [f972574]

  • Updated dependencies [22013aa]

  • Updated dependencies [3ad3dd5]

  • Updated dependencies [3a18b60]

  • Updated dependencies [a8aa34c]

  • Updated dependencies [e057f42]

  • Updated dependencies [a3823b2]

  • Updated dependencies [bc65105]

  • Updated dependencies [43a3efb]

  • Updated dependencies [524696a]

  • Updated dependencies [5e3301d]

  • Updated dependencies [dd9f223]

  • Updated dependencies [46e876c]

  • Updated dependencies [5f05de2]

  • Updated dependencies [021ba4c]

  • Updated dependencies [158aa14]

  • Updated dependencies [83e8f7d]

  • Updated dependencies [d2723e2]

  • Updated dependencies [fefcd54]

  • Updated dependencies [beaf2de]

  • Updated dependencies [06cb319]

  • Updated dependencies [369eb6e]

  • Updated dependencies [b659111]

  • Updated dependencies [5754a23]

  • Updated dependencies [6c270a6]

  • Updated dependencies [290e2f0]

  • Updated dependencies [668dd17]

  • Updated dependencies [8abf133]

  • Updated dependencies [e0859b1]

  • Updated dependencies [92f5f19]

  • Updated dependencies [32899e6]

  • Updated dependencies [04ecd4e]

  • Updated dependencies [4d5a892]

  • Updated dependencies [16cebeb]

  • Updated dependencies [86d30af]

  • Updated dependencies [8923843]

  • Updated dependencies [a2795f6]

  • Updated dependencies [f16b492]

  • Updated dependencies [4b6fde8]

  • Updated dependencies [2018df9]

  • Updated dependencies [fc5a3a2]

    • @objectstack/spec@16.0.0-rc.0
    • @objectstack/platform-objects@16.0.0-rc.0
    • @objectstack/core@16.0.0-rc.0
    • @objectstack/types@16.0.0-rc.0
    • @objectstack/metadata-core@16.0.0-rc.0
    • @objectstack/metadata-fs@16.0.0-rc.0

15.1.1

Patch Changes

  • @objectstack/spec@15.1.1
  • @objectstack/core@15.1.1
  • @objectstack/types@15.1.1
  • @objectstack/metadata-core@15.1.1
  • @objectstack/metadata-fs@15.1.1
  • @objectstack/platform-objects@15.1.1

15.1.0

Patch Changes

  • Updated dependencies [f531a26]
  • Updated dependencies [f531a26]
  • Updated dependencies [f531a26]
  • Updated dependencies [f531a26]
  • Updated dependencies [f531a26]
  • Updated dependencies [f531a26]
  • Updated dependencies [3fe9df1]
  • Updated dependencies [f531a26]
  • Updated dependencies [f531a26]
  • Updated dependencies [f531a26]
  • Updated dependencies [f531a26]
  • Updated dependencies [f531a26]
  • Updated dependencies [f531a26]
  • Updated dependencies [f531a26]
  • Updated dependencies [f531a26]
  • Updated dependencies [f531a26]
  • Updated dependencies [f531a26]
  • Updated dependencies [f531a26]
  • Updated dependencies [f531a26]
  • Updated dependencies [f531a26]
  • Updated dependencies [f531a26]
  • Updated dependencies [f531a26]
  • Updated dependencies [4109153]
  • Updated dependencies [f531a26]
  • Updated dependencies [f531a26]
  • Updated dependencies [f531a26]
  • Updated dependencies [f531a26]
  • Updated dependencies [f531a26]
  • Updated dependencies [f531a26]
  • Updated dependencies [f531a26]
  • Updated dependencies [f531a26]
  • Updated dependencies [627f225]
  • Updated dependencies [f531a26]
  • Updated dependencies [f531a26]
  • Updated dependencies [f531a26]
    • @objectstack/spec@15.1.0
    • @objectstack/platform-objects@15.1.0
    • @objectstack/core@15.1.0
    • @objectstack/types@15.1.0
    • @objectstack/metadata-core@15.1.0
    • @objectstack/metadata-fs@15.1.0

15.0.0

Patch Changes

  • Updated dependencies [02a014b]
  • Updated dependencies [28b7c28]
  • Updated dependencies [13749ec]
  • Updated dependencies [e62c233]
  • Updated dependencies [ed61c9b]
  • Updated dependencies [31d04d4]
    • @objectstack/platform-objects@15.0.0
    • @objectstack/spec@15.0.0
    • @objectstack/core@15.0.0
    • @objectstack/metadata-core@15.0.0
    • @objectstack/types@15.0.0
    • @objectstack/metadata-fs@15.0.0

14.8.0

Patch Changes

  • Updated dependencies [16b4bf6]
  • Updated dependencies [16b4bf6]
  • Updated dependencies [10e8983]
  • Updated dependencies [607aaf4]
  • Updated dependencies [bb71321]
    • @objectstack/spec@14.8.0
    • @objectstack/platform-objects@14.8.0
    • @objectstack/core@14.8.0
    • @objectstack/metadata-core@14.8.0
    • @objectstack/types@14.8.0
    • @objectstack/metadata-fs@14.8.0

14.7.0

Patch Changes

  • Updated dependencies [d6a72eb]
  • Updated dependencies [824a395]
    • @objectstack/spec@14.7.0
    • @objectstack/types@14.7.0
    • @objectstack/core@14.7.0
    • @objectstack/metadata-core@14.7.0
    • @objectstack/platform-objects@14.7.0
    • @objectstack/metadata-fs@14.7.0

14.6.0

Patch Changes

  • Updated dependencies [609cb13]
  • Updated dependencies [ce6d151]
    • @objectstack/spec@14.6.0
    • @objectstack/platform-objects@14.6.0
    • @objectstack/core@14.6.0
    • @objectstack/metadata-core@14.6.0
    • @objectstack/types@14.6.0
    • @objectstack/metadata-fs@14.6.0

14.5.0

Patch Changes

  • Updated dependencies [526805e]
  • Updated dependencies [d79ca07]
  • Updated dependencies [33ebd34]
  • Updated dependencies [c044f08]
  • Updated dependencies [01274eb]
  • Updated dependencies [8f23746]
  • Updated dependencies [b97af7e]
  • Updated dependencies [6da03ee]
    • @objectstack/spec@14.5.0
    • @objectstack/platform-objects@14.5.0
    • @objectstack/core@14.5.0
    • @objectstack/metadata-core@14.5.0
    • @objectstack/types@14.5.0
    • @objectstack/metadata-fs@14.5.0

14.4.0

Patch Changes

  • Updated dependencies [7953832]
  • Updated dependencies [82e745e]
  • Updated dependencies [f3035bd]
  • Updated dependencies [82c0d94]
  • Updated dependencies [7449476]
    • @objectstack/spec@14.4.0
    • @objectstack/platform-objects@14.4.0
    • @objectstack/metadata-core@14.4.0
    • @objectstack/core@14.4.0
    • @objectstack/types@14.4.0
    • @objectstack/metadata-fs@14.4.0

14.3.0

Minor Changes

  • 02f6af4: ADR-0090 follow-through wave: enforce book audience at the read layer; finish the D2/D3 cleanup the P1 rename missed.

    • rest: /meta/book, /meta/doc, and /meta/book/:name/tree now ENFORCE the ADR-0046 §6.7 audience model (ADR-0049 — no unenforced security properties): anonymous callers see only public books/docs; { permissionSet }-gated books require the caller to hold the named set; a doc's effective audience is the union over the books that CLAIM it (unclaimed docs default to org; orphan rendering never inherits public). Gated evaluation fails CLOSED when holdings cannot be resolved. doc/book single-item reads bypass the shared meta cache (per-caller gate vs shared ETag).
    • spec: new pure helpers powering that gate — audienceAllows, resolveDocAudiences, docAudienceAllows, resolveBookClaimedDocs (+ AudienceCaller/AudienceBook types). BREAKING but ships as a minor per the launch-window convention (pre-1.0 semantics — breaking changes do not burn a major version number while the whole stack is in lockstep): METADATA_FORM_REGISTRY keys role/profile are gone — position is the registered form (the position type had LOST its form layout in the P1 rename); EnvironmentArtifactMetadataSchema declares positions instead of retired roles/profiles.
    • plugin-security: the security service exposes resolvePermissionSetNames(ctx) — the same resolution as data-plane enforcement, for the docs gate.
    • metadata: artifact ingestion maps positions → 'position' (the stale roles → 'role' mapping matched nothing since the P1 rename, silently dropping compiled positions from metadata registration).
    • lint: books join the D3 role-word scan (their audience is a permission-model reference now), and a new advisory rule security-book-audience-unknown-set flags a { permissionSet } audience naming a set the stack does not declare (runtime fails closed — the typo cost is "nobody can read the book", so say it at author time).
    • platform-objects: metadata-form translations regain position (all four locales) and drop the retired role/profile groups, with a vocabulary regression test.

Patch Changes

  • Updated dependencies [2a71f48]
  • Updated dependencies [02f6af4]
  • Updated dependencies [c1064f1]
    • @objectstack/platform-objects@14.3.0
    • @objectstack/spec@14.3.0
    • @objectstack/core@14.3.0
    • @objectstack/metadata-core@14.3.0
    • @objectstack/types@14.3.0
    • @objectstack/metadata-fs@14.3.0

14.2.0

Patch Changes

  • Updated dependencies [ac8f029]
  • Updated dependencies [4ab9958]
    • @objectstack/spec@14.2.0
    • @objectstack/platform-objects@14.2.0
    • @objectstack/core@14.2.0
    • @objectstack/metadata-core@14.2.0
    • @objectstack/types@14.2.0
    • @objectstack/metadata-fs@14.2.0

14.1.0

Patch Changes

  • Updated dependencies [5a8465f]
  • Updated dependencies [7f8620b]
  • Updated dependencies [82ba3a6]
    • @objectstack/spec@14.1.0
    • @objectstack/core@14.1.0
    • @objectstack/metadata-core@14.1.0
    • @objectstack/platform-objects@14.1.0
    • @objectstack/types@14.1.0
    • @objectstack/metadata-fs@14.1.0

14.0.0

Patch Changes

  • Updated dependencies [0a8e685]
  • Updated dependencies [afa8115]
  • Updated dependencies [80f12ca]
  • Updated dependencies [332b711]
  • Updated dependencies [e2fa074]
  • Updated dependencies [23c8668]
  • Updated dependencies [29f017d]
  • Updated dependencies [216fa9a]
  • Updated dependencies [6c22b12]
  • Updated dependencies [d0531c4]
  • Updated dependencies [cff5aac]
    • @objectstack/spec@14.0.0
    • @objectstack/platform-objects@14.0.0
    • @objectstack/core@14.0.0
    • @objectstack/metadata-core@14.0.0
    • @objectstack/types@14.0.0
    • @objectstack/metadata-fs@14.0.0

13.0.0

Major Changes

  • 6d83431: ADR-0090 P1 breaking wave — permission model v2 concept convergence.

    Pre-launch one-step renames and secure defaults (no compatibility aliases, per ADR-0090 D3/D4 superseding ADR-0057 D5/D7's alias discipline):

    • sys_rolesys_position, sys_user_rolesys_user_position (field roleposition), sys_role_permission_setsys_position_permission_set (field role_idposition_id); RoleSchema/defineRolePositionSchema/definePosition with no parent (positions are flat; hierarchy lives on the business-unit tree).
    • ExecutionContext.roles[]positions[]; the EvalUser/CEL contract current_user.rolescurrent_user.positions (formula validators updated); stack property roles:positions:; metadata kinds role/profileposition (profile kind removed).
    • isProfile removed from PermissionSetSchema (ADR-0090 D2); isDefault narrows to an install-time suggestion; appDefaultProfileNameappDefaultPermissionSetName (isDefault-only).
    • OWD enum drops legacy aliases read/read_write/full; new optional externalSharingModel (external dial, private default) lands as P1 spec shape (ADR-0090 D11).
    • Secure default (D1): a custom object with an owner field and NO sharingModel now resolves private (was: fully public). System objects keep their explicit posture. Unrecognised stored values fail closed.
    • ExecutionContext gains the P1 principal-taxonomy shape (D10): principalKind / audience / onBehalfOf (optional, semantics phase in later).
    • Sharing recipients: roleposition (expanded via sys_user_position ∪ the better-auth membership transition source); role_and_subordinates removed — unit_and_subordinates now expands the business-unit subtree (finishes ADR-0057 D5's re-homing).

Patch Changes

  • Updated dependencies [6d83431]
  • Updated dependencies [01917c2]
  • Updated dependencies [b271691]
  • Updated dependencies [a5a1e41]
  • Updated dependencies [466adf6]
  • Updated dependencies [57b89b4]
  • Updated dependencies [5be00c3]
  • Updated dependencies [466adf6]
  • Updated dependencies [2bee609]
  • Updated dependencies [9fa84f9]
  • Updated dependencies [fc7e7f7]
    • @objectstack/spec@13.0.0
    • @objectstack/core@13.0.0
    • @objectstack/platform-objects@13.0.0
    • @objectstack/types@13.0.0
    • @objectstack/metadata-core@13.0.0
    • @objectstack/metadata-fs@13.0.0

12.6.0

Patch Changes

  • Updated dependencies [6cebf22]
  • Updated dependencies [21420d9]
    • @objectstack/spec@12.6.0
    • @objectstack/core@12.6.0
    • @objectstack/metadata-core@12.6.0
    • @objectstack/platform-objects@12.6.0
    • @objectstack/types@12.6.0
    • @objectstack/metadata-fs@12.6.0

12.5.0

Patch Changes

  • Updated dependencies [8b3d363]
    • @objectstack/spec@12.5.0
    • @objectstack/core@12.5.0
    • @objectstack/metadata-core@12.5.0
    • @objectstack/platform-objects@12.5.0
    • @objectstack/types@12.5.0
    • @objectstack/metadata-fs@12.5.0

12.4.0

Patch Changes

  • Updated dependencies [60dc3ba]
    • @objectstack/spec@12.4.0
    • @objectstack/metadata-core@12.4.0
    • @objectstack/core@12.4.0
    • @objectstack/platform-objects@12.4.0
    • @objectstack/types@12.4.0
    • @objectstack/metadata-fs@12.4.0

12.3.0

Patch Changes

  • Updated dependencies [e7eceec]
    • @objectstack/spec@12.3.0
    • @objectstack/core@12.3.0
    • @objectstack/metadata-core@12.3.0
    • @objectstack/platform-objects@12.3.0
    • @objectstack/types@12.3.0
    • @objectstack/metadata-fs@12.3.0

12.2.0

Patch Changes

  • Updated dependencies [fce8ff4]
  • Updated dependencies [3962023]
  • Updated dependencies [2bb193d]
  • Updated dependencies [0426d27]
  • Updated dependencies [da807f7]
  • Updated dependencies [4f5b791]
    • @objectstack/spec@12.2.0
    • @objectstack/metadata-core@12.2.0
    • @objectstack/core@12.2.0
    • @objectstack/platform-objects@12.2.0
    • @objectstack/types@12.2.0
    • @objectstack/metadata-fs@12.2.0

12.1.0

Patch Changes

  • Updated dependencies [93e6d02]
    • @objectstack/spec@12.1.0
    • @objectstack/core@12.1.0
    • @objectstack/metadata-core@12.1.0
    • @objectstack/platform-objects@12.1.0
    • @objectstack/types@12.1.0
    • @objectstack/metadata-fs@12.1.0

12.0.0

Patch Changes

  • 9860de4: Surface view-key collisions during view container expansion instead of renaming silently.

    expandViewContainer keeps its backward-compatible rename behaviour (<object>.<key><object>.<key>_2 on collision) but now stamps a machine-readable _diagnostics.warnings entry on the renamed ExpandedViewItem, explaining that references targeting the requested name (form action targets, navigation viewNames) will resolve to the other view. Both flattening loaders — the ObjectQL engine and the MetadataPlugin — log these warnings at boot so the collision is visible instead of manifesting as a form action opening a list view (#2554).

  • Updated dependencies [a8df396]

  • Updated dependencies [e695fe0]

  • Updated dependencies [07f055c]

  • Updated dependencies [7c09621]

  • Updated dependencies [7709db4]

  • Updated dependencies [2082109]

  • Updated dependencies [7c09621]

  • Updated dependencies [9860de4]

  • Updated dependencies [069c205]

    • @objectstack/spec@12.0.0
    • @objectstack/platform-objects@12.0.0
    • @objectstack/core@12.0.0
    • @objectstack/metadata-core@12.0.0
    • @objectstack/types@12.0.0
    • @objectstack/metadata-fs@12.0.0

11.10.0

Patch Changes

  • Updated dependencies [6a9397e]
  • Updated dependencies [c0efe5d]
    • @objectstack/spec@11.10.0
    • @objectstack/core@11.10.0
    • @objectstack/metadata-core@11.10.0
    • @objectstack/platform-objects@11.10.0
    • @objectstack/types@11.10.0
    • @objectstack/metadata-fs@11.10.0

11.9.0

Patch Changes

  • Updated dependencies [d3595d9]
    • @objectstack/spec@11.9.0
    • @objectstack/core@11.9.0
    • @objectstack/metadata-core@11.9.0
    • @objectstack/platform-objects@11.9.0
    • @objectstack/types@11.9.0
    • @objectstack/metadata-fs@11.9.0

11.8.0

Patch Changes

  • Updated dependencies [53d491a]
  • Updated dependencies [b84726b]
    • @objectstack/platform-objects@11.8.0
    • @objectstack/spec@11.8.0
    • @objectstack/core@11.8.0
    • @objectstack/types@11.8.0
    • @objectstack/metadata-core@11.8.0
    • @objectstack/metadata-fs@11.8.0

11.7.0

Patch Changes

  • Updated dependencies [5178906]
    • @objectstack/spec@11.7.0
    • @objectstack/platform-objects@11.7.0
    • @objectstack/core@11.7.0
    • @objectstack/metadata-core@11.7.0
    • @objectstack/types@11.7.0
    • @objectstack/metadata-fs@11.7.0

11.6.0

Patch Changes

  • @objectstack/spec@11.6.0
  • @objectstack/core@11.6.0
  • @objectstack/types@11.6.0
  • @objectstack/metadata-core@11.6.0
  • @objectstack/metadata-fs@11.6.0
  • @objectstack/platform-objects@11.6.0

11.5.0

Patch Changes

  • Updated dependencies [6ee4f04]
  • Updated dependencies [c1e3a65]
    • @objectstack/spec@11.5.0
    • @objectstack/core@11.5.0
    • @objectstack/metadata-core@11.5.0
    • @objectstack/platform-objects@11.5.0
    • @objectstack/types@11.5.0
    • @objectstack/metadata-fs@11.5.0

11.4.0

Patch Changes

  • Updated dependencies [5821c51]
  • Updated dependencies [a0fce3f]
    • @objectstack/spec@11.4.0
    • @objectstack/core@11.4.0
    • @objectstack/metadata-core@11.4.0
    • @objectstack/platform-objects@11.4.0
    • @objectstack/types@11.4.0
    • @objectstack/metadata-fs@11.4.0

11.3.0

Patch Changes

  • Updated dependencies [58e8e31]
  • Updated dependencies [b4a5df0]
    • @objectstack/spec@11.3.0
    • @objectstack/core@11.3.0
    • @objectstack/metadata-core@11.3.0
    • @objectstack/platform-objects@11.3.0
    • @objectstack/types@11.3.0
    • @objectstack/metadata-fs@11.3.0

11.2.0

Patch Changes

  • Updated dependencies [d0f4b13]
  • Updated dependencies [302bdab]
    • @objectstack/spec@11.2.0
    • @objectstack/core@11.2.0
    • @objectstack/metadata-core@11.2.0
    • @objectstack/platform-objects@11.2.0
    • @objectstack/types@11.2.0
    • @objectstack/metadata-fs@11.2.0

11.1.0

Patch Changes

  • Updated dependencies [cbc8c02]
  • Updated dependencies [07c2773]
  • Updated dependencies [d7a88df]
  • Updated dependencies [4f8f108]
  • Updated dependencies [ce0b4f6]
  • Updated dependencies [90bce88]
  • Updated dependencies [3209ec6]
  • Updated dependencies [e011d42]
  • Updated dependencies [6e5bdd5]
  • Updated dependencies [9ccfcd6]
  • Updated dependencies [ecf193f]
  • Updated dependencies [51bec81]
  • Updated dependencies [3e593a7]
  • Updated dependencies [fdb41c0]
  • Updated dependencies [63d5403]
    • @objectstack/platform-objects@11.1.0
    • @objectstack/core@11.1.0
    • @objectstack/spec@11.1.0
    • @objectstack/types@11.1.0
    • @objectstack/metadata-core@11.1.0
    • @objectstack/metadata-fs@11.1.0

11.0.0

Patch Changes

  • 4b5ec6e: fix(automation): re-bind scheduled-flow jobs on os dev hot-reload

    Editing a schedule-triggered flow under objectstack dev silently kept firing the OLD definition until a full server restart. The dev watcher recompiles dist/objectstack.json and MetadataPlugin reloads it into the MetadataManager (so GET /meta reads + UI HMR are fresh), but the AutomationEngine pulls its flow definitions and trigger/job bindings ONCE at boot — nothing re-registered them on reload. So the scheduled job bound at boot kept running the pre-edit flow (old runAs, schedule, or logic) on its timer, with no signal that the edit had no effect.

    Fix: MetadataPlugin now fires a generic metadata:reloaded hook after each artifact reload (the HMR POST handler and the server-side artifact-file watcher; never on the initial boot load). AutomationServicePlugin subscribes and re-syncs the engine from the metadata service — re-registering every current flow (idempotent: registerFlow re-binds the trigger, and ScheduleTrigger.start cancels + reschedules the job) and unregistering flows removed from the artifact so their jobs stop firing. This covers all auto-triggered flow types (schedule / record-change / api), not just scheduled ones, since record-change flows were also executing their boot-time definitions after an edit. Production deployments are unaffected — nothing reloads the artifact there.

  • Updated dependencies [4d99a5c]

  • Updated dependencies [9b5bf3d]

  • Updated dependencies [cb5b393]

  • Updated dependencies [ab5718a]

  • Updated dependencies [4845c12]

  • Updated dependencies [c1a754a]

  • Updated dependencies [6fbe91f]

  • Updated dependencies [715d667]

  • Updated dependencies [5eef4cf]

  • Updated dependencies [72759e1]

  • Updated dependencies [6c4fbd9]

  • Updated dependencies [ef3ed67]

  • Updated dependencies [cd51229]

  • Updated dependencies [7697a0e]

  • Updated dependencies [e7e04f1]

  • Updated dependencies [cfd5ac4]

  • Updated dependencies [2be5c1f]

  • Updated dependencies [ad143ce]

  • Updated dependencies [5c4a8c8]

  • Updated dependencies [3afaeed]

  • Updated dependencies [5737261]

  • Updated dependencies [a619a3a]

  • Updated dependencies [f44c1bd]

  • Updated dependencies [795b6d1]

  • Updated dependencies [8801c02]

  • Updated dependencies [3d04e06]

  • Updated dependencies [4a84c98]

  • Updated dependencies [c715d25]

  • Updated dependencies [aa33b02]

  • Updated dependencies [d980f0d]

  • Updated dependencies [a658523]

  • Updated dependencies [82ff91c]

  • Updated dependencies [638f472]

    • @objectstack/metadata-core@11.0.0
    • @objectstack/platform-objects@11.0.0
    • @objectstack/spec@11.0.0
    • @objectstack/types@11.0.0
    • @objectstack/core@11.0.0
    • @objectstack/metadata-fs@11.0.0

10.3.0

Patch Changes

  • @objectstack/spec@10.3.0
  • @objectstack/core@10.3.0
  • @objectstack/types@10.3.0
  • @objectstack/metadata-core@10.3.0
  • @objectstack/metadata-fs@10.3.0
  • @objectstack/platform-objects@10.3.0

10.2.0

Patch Changes

  • Updated dependencies [b496498]
    • @objectstack/spec@10.2.0
    • @objectstack/core@10.2.0
    • @objectstack/metadata-core@10.2.0
    • @objectstack/platform-objects@10.2.0
    • @objectstack/types@10.2.0
    • @objectstack/metadata-fs@10.2.0

10.1.0

Patch Changes

  • Updated dependencies [49da36e]
  • Updated dependencies [ac79f16]
    • @objectstack/spec@10.1.0
    • @objectstack/core@10.1.0
    • @objectstack/metadata-core@10.1.0
    • @objectstack/platform-objects@10.1.0
    • @objectstack/types@10.1.0
    • @objectstack/metadata-fs@10.1.0

10.0.0

Patch Changes

  • Updated dependencies [d7ff626]
  • Updated dependencies [2a1b16b]
  • Updated dependencies [2256e93]
  • Updated dependencies [7108ff3]
  • Updated dependencies [30c0313]
  • Updated dependencies [e16f2a8]
  • Updated dependencies [e411a82]
  • Updated dependencies [ae271d0]
  • Updated dependencies [61ed5c7]
  • Updated dependencies [a581385]
  • Updated dependencies [d5f6d29]
  • Updated dependencies [220ce5b]
  • Updated dependencies [3efe334]
  • Updated dependencies [0df063e]
  • Updated dependencies [ce13bb8]
  • Updated dependencies [feead7e]
  • Updated dependencies [6ca20b3]
  • Updated dependencies [5f875fe]
  • Updated dependencies [b469950]
  • Updated dependencies [47d978a]
    • @objectstack/spec@10.0.0
    • @objectstack/platform-objects@10.0.0
    • @objectstack/core@10.0.0
    • @objectstack/metadata-core@10.0.0
    • @objectstack/types@10.0.0
    • @objectstack/metadata-fs@10.0.0

9.11.0

Patch Changes

  • Updated dependencies [e7f6539]
  • Updated dependencies [2365d07]
  • Updated dependencies [6595b53]
  • Updated dependencies [fa8964d]
  • Updated dependencies [36138c7]
  • Updated dependencies [a8e4f3b]
  • Updated dependencies [4c213c2]
  • Updated dependencies [2afb612]
    • @objectstack/spec@9.11.0
    • @objectstack/core@9.11.0
    • @objectstack/metadata-core@9.11.0
    • @objectstack/platform-objects@9.11.0
    • @objectstack/types@9.11.0
    • @objectstack/metadata-fs@9.11.0

9.10.0

Patch Changes

  • Updated dependencies [db02bd5]
  • Updated dependencies [641675d]
  • Updated dependencies [94e9040]
  • Updated dependencies [4331adb]
  • Updated dependencies [1f88fd9]
  • Updated dependencies [1f88fd9]
    • @objectstack/spec@9.10.0
    • @objectstack/platform-objects@9.10.0
    • @objectstack/core@9.10.0
    • @objectstack/metadata-core@9.10.0
    • @objectstack/types@9.10.0
    • @objectstack/metadata-fs@9.10.0

9.9.1

Patch Changes

  • @objectstack/spec@9.9.1
  • @objectstack/core@9.9.1
  • @objectstack/types@9.9.1
  • @objectstack/metadata-core@9.9.1
  • @objectstack/metadata-fs@9.9.1
  • @objectstack/platform-objects@9.9.1

9.9.0

Patch Changes

  • Updated dependencies [84249a4]
  • Updated dependencies [11af299]
  • Updated dependencies [d5774b5]
  • Updated dependencies [134043a]
  • Updated dependencies [90108e0]
  • Updated dependencies [9afeb2d]
  • Updated dependencies [6bec07e]
  • Updated dependencies [601cc11]
  • Updated dependencies [575448d]
    • @objectstack/spec@9.9.0
    • @objectstack/core@9.9.0
    • @objectstack/metadata-core@9.9.0
    • @objectstack/platform-objects@9.9.0
    • @objectstack/types@9.9.0
    • @objectstack/metadata-fs@9.9.0

9.8.0

Patch Changes

  • Updated dependencies [97c55b3]
  • Updated dependencies [1b1f490]
    • @objectstack/spec@9.8.0
    • @objectstack/core@9.8.0
    • @objectstack/metadata-core@9.8.0
    • @objectstack/platform-objects@9.8.0
    • @objectstack/types@9.8.0
    • @objectstack/metadata-fs@9.8.0

9.7.0

Patch Changes

  • @objectstack/spec@9.7.0
  • @objectstack/core@9.7.0
  • @objectstack/types@9.7.0
  • @objectstack/metadata-core@9.7.0
  • @objectstack/metadata-fs@9.7.0
  • @objectstack/platform-objects@9.7.0

9.6.0

Patch Changes

  • Updated dependencies [d1e930a]
  • Updated dependencies [71578f2]
  • Updated dependencies [5e3a301]
  • Updated dependencies [5db2742]
    • @objectstack/spec@9.6.0
    • @objectstack/core@9.6.0
    • @objectstack/metadata-core@9.6.0
    • @objectstack/platform-objects@9.6.0
    • @objectstack/types@9.6.0
    • @objectstack/metadata-fs@9.6.0

9.5.1

Patch Changes

  • Updated dependencies [ee72aae]
    • @objectstack/spec@9.5.1
    • @objectstack/core@9.5.1
    • @objectstack/metadata-core@9.5.1
    • @objectstack/platform-objects@9.5.1
    • @objectstack/types@9.5.1
    • @objectstack/metadata-fs@9.5.1

9.5.0

Patch Changes

  • Updated dependencies [d08551c]
  • Updated dependencies [5be7102]
  • Updated dependencies [707aeed]
  • Updated dependencies [7a103d4]
  • Updated dependencies [4b01250]
    • @objectstack/spec@9.5.0
    • @objectstack/platform-objects@9.5.0
    • @objectstack/core@9.5.0
    • @objectstack/metadata-core@9.5.0
    • @objectstack/types@9.5.0
    • @objectstack/metadata-fs@9.5.0

9.4.0

Patch Changes

  • 2c8e607: fix(ADR-0046): serve package docs at runtime, not just in the compiled artifact

    Package docs (src/docs/*.md) compiled into a bundle were never reaching the runtime, so GET /meta/doc returned an empty list and the docs were invisible even though os build produced them.

    Two gaps:

    • os dev / os serve (config-load path) re-derives metadata from defineStack(...), which never carries the markdown docs — those are collected only at compile time. serve.ts now collects src/docs/*.md into the stack on the config-load path too (collection only — additive, never blocks boot), so docs serve in dev exactly as from a built artifact.
    • The MetadataPlugin artifact loader (ARTIFACT_FIELD_TO_TYPE) omitted the docsdoc mapping, so the bundle's docs array was skipped when loading through that path. Added the mapping (with a regression test) for parity with the ObjectQL engine's metadataArrayKeys.
  • Updated dependencies [060467a]

  • Updated dependencies [0856476]

  • Updated dependencies [fef38ec]

  • Updated dependencies [b678d8c]

  • Updated dependencies [b678d8c]

  • Updated dependencies [b678d8c]

    • @objectstack/spec@9.4.0
    • @objectstack/metadata-core@9.4.0
    • @objectstack/core@9.4.0
    • @objectstack/platform-objects@9.4.0
    • @objectstack/types@9.4.0
    • @objectstack/metadata-fs@9.4.0

9.3.0

Minor Changes

  • b10aa78: Metadata registered through the metadata-service path now carries package provenance. loadMetadataFromService and MetadataFacade.register pass each item's own _packageId through to registry.registerItem so applyProtection stamps _packageId/_provenance: 'package' (never a synthetic id — isArtifactBacked() write authorization keys off _packageId). New MetadataPluginOptions.packageId lets hosts running the filesystem scanner declare the owning package id for scanned source-file metadata, closing the same gap for hand-wired kernels. GET /api/v1/meta/:type consumers (e.g. objectui NavigationSyncEffect) can now distinguish package-shipped items from user-authored rows without name heuristics.

Patch Changes

  • Updated dependencies [1ada658]
  • Updated dependencies [3219191]
  • Updated dependencies [290f631]
  • Updated dependencies [50b7b47]
  • Updated dependencies [f15d6f6]
  • Updated dependencies [f8684ea]
  • Updated dependencies [c802327]
  • Updated dependencies [b4765be]
    • @objectstack/spec@9.3.0
    • @objectstack/platform-objects@9.3.0
    • @objectstack/core@9.3.0
    • @objectstack/metadata-core@9.3.0
    • @objectstack/types@9.3.0
    • @objectstack/metadata-fs@9.3.0

9.2.0

Patch Changes

  • Updated dependencies [2f57b75]
  • Updated dependencies [2f57b75]
    • @objectstack/spec@9.2.0
    • @objectstack/core@9.2.0
    • @objectstack/metadata-core@9.2.0
    • @objectstack/platform-objects@9.2.0
    • @objectstack/types@9.2.0
    • @objectstack/metadata-fs@9.2.0

9.1.0

Patch Changes

  • Updated dependencies [b9062c9]
    • @objectstack/spec@9.1.0
    • @objectstack/core@9.1.0
    • @objectstack/metadata-core@9.1.0
    • @objectstack/platform-objects@9.1.0
    • @objectstack/types@9.1.0
    • @objectstack/metadata-fs@9.1.0

9.0.1

Patch Changes

  • Updated dependencies [1817845]
    • @objectstack/spec@9.0.1
    • @objectstack/core@9.0.1
    • @objectstack/metadata-core@9.0.1
    • @objectstack/platform-objects@9.0.1
    • @objectstack/types@9.0.1
    • @objectstack/metadata-fs@9.0.1

9.0.0

Patch Changes

  • Updated dependencies [4c3f693]
  • Updated dependencies [0bf39f1]
  • Updated dependencies [f533f42]
  • Updated dependencies [1c83ee8]
    • @objectstack/spec@9.0.0
    • @objectstack/core@9.0.0
    • @objectstack/metadata-core@9.0.0
    • @objectstack/platform-objects@9.0.0
    • @objectstack/types@9.0.0
    • @objectstack/metadata-fs@9.0.0

8.0.1

Patch Changes

  • @objectstack/spec@8.0.1
  • @objectstack/core@8.0.1
  • @objectstack/types@8.0.1
  • @objectstack/metadata-core@8.0.1
  • @objectstack/metadata-fs@8.0.1
  • @objectstack/platform-objects@8.0.1

8.0.0

Patch Changes

  • Updated dependencies [a46c017]
  • Updated dependencies [b990b89]
  • Updated dependencies [99111ec]
  • Updated dependencies [d5a8161]
  • Updated dependencies [5cf1f1b]
  • Updated dependencies [9ef89d4]
  • Updated dependencies [3306d2f]
  • Updated dependencies [c262301]
  • Updated dependencies [bc44195]
  • Updated dependencies [9e2e229]
    • @objectstack/spec@8.0.0
    • @objectstack/core@8.0.0
    • @objectstack/metadata-core@8.0.0
    • @objectstack/platform-objects@8.0.0
    • @objectstack/types@8.0.0
    • @objectstack/metadata-fs@8.0.0

7.9.0

Patch Changes

  • @objectstack/spec@7.9.0
  • @objectstack/core@7.9.0
  • @objectstack/types@7.9.0
  • @objectstack/metadata-core@7.9.0
  • @objectstack/metadata-fs@7.9.0
  • @objectstack/platform-objects@7.9.0

7.8.0

Patch Changes

  • Updated dependencies [06f2bbb]
  • Updated dependencies [36719db]
  • Updated dependencies [424ab26]
    • @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

7.7.0

Patch Changes

  • 764c747: fix(metadata): home the metadata-storage objects in metadata-core and register them from ObjectQL

    Standalone "host config" apps boot without @objectstack/metadata's MetadataPlugin, so nobody registered the metadata-storage objects (sys_metadata, _history, _audit, sys_view_definition) into ObjectQL — their tables were never schema-synced and ObjectQL's own protocol (loadMetaFromDb / getMetaItems) failed with no such table: sys_metadata on every read.

    • Move the four storage-object definitions from @objectstack/platform-objects/metadata to @objectstack/metadata-core (the lowest package shared by their real consumers); platform-objects/metadata now re-exports them for back-compat.
    • ObjectQLPlugin registers these objects itself (gated on environmentId === undefined, mirroring restoreMetadataFromDb) so their tables always sync on platform/standalone kernels.
    • Gate the SQL driver's tenant-audit warning on actual multi-tenant mode — organization_id now exists on every table, so column presence alone no longer implies "tenant-scoped"; single-tenant boots no longer spam the warning for system writes.
  • Updated dependencies [b391955]

  • Updated dependencies [f06b64e]

  • Updated dependencies [023bf93]

  • Updated dependencies [764c747]

    • @objectstack/spec@7.7.0
    • @objectstack/platform-objects@7.7.0
    • @objectstack/metadata-core@7.7.0
    • @objectstack/core@7.7.0
    • @objectstack/types@7.7.0
    • @objectstack/metadata-fs@7.7.0

7.6.0

Patch Changes

  • Updated dependencies [955d4c8]
  • Updated dependencies [c4a4cbd]
  • Updated dependencies [b046ec2]
  • Updated dependencies [2170ad9]
  • Updated dependencies [02d6359]
  • Updated dependencies [7648242]
  • Updated dependencies [8fa1e7f]
  • Updated dependencies [7ae6abc]
  • Updated dependencies [55866f5]
  • Updated dependencies [60f9c45]
    • @objectstack/spec@7.6.0
    • @objectstack/platform-objects@7.6.0
    • @objectstack/core@7.6.0
    • @objectstack/types@7.6.0
    • @objectstack/metadata-core@7.6.0
    • @objectstack/metadata-fs@7.6.0

7.5.0

Patch Changes

  • @objectstack/spec@7.5.0
  • @objectstack/core@7.5.0
  • @objectstack/types@7.5.0
  • @objectstack/metadata-core@7.5.0
  • @objectstack/metadata-fs@7.5.0
  • @objectstack/platform-objects@7.5.0

7.4.1

Patch Changes

  • @objectstack/spec@7.4.1
  • @objectstack/core@7.4.1
  • @objectstack/types@7.4.1
  • @objectstack/metadata-core@7.4.1
  • @objectstack/metadata-fs@7.4.1
  • @objectstack/platform-objects@7.4.1

7.4.0

Minor Changes

  • 13632b1: ADR-0030 P0 (framework) — converge notifications onto a single ingress and the layered model. Every producer now publishes through NotificationService.emit(EmitInput); the in-app inbox is a materialization of delivery, not a row producers write.

    Single ingress (@objectstack/service-messaging) — breaking

    • MessagingService.emit takes the new EmitInput contract (topic / audience / payload / severity / dedupKey / source / actorId / organizationId / channels) instead of the flat Notification shape. It writes the L2 sys_notification event (idempotent on dedupKey), resolves the audience, then fans out; it returns { notificationId, deduped, deliveries, delivered, failed }.
    • New sys_notification_receipt object — the read-state spine (delivered|read|clicked|dismissed), keyed (notification_id, user_id, channel). The inbox channel writes a delivered receipt on materialization.
    • sys_inbox_message: adds notification_id / delivery_id, drops read (read-state moved to the receipt), adds the user mine list view.

    Event re-model (@objectstack/platform-objects) — breaking

    • sys_notification is re-modeled from a per-user inbox into the L2 event (topic, payload, severity, dedup_key, source_*, actor_id). Removes recipient_id / is_read / read_at / type / title / body / url / actor_name and the inbox actions/views. App-nav: the account inbox points at sys_inbox_message; Setup shows the notification event log.

    Producers routed through emit()

    • @objectstack/service-automation: the notify node maps its config to EmitInput.
    • @objectstack/plugin-audit: collaboration @mentioncollab.mention and assignment → collab.assignment (both with a dedupKey); no more direct sys_notification writes. Collaboration notifications now require MessagingServicePlugin (they degrade to a warn otherwise).

    Migration (@objectstack/metadata)

    • Idempotent migrateSysNotificationToEvent splits legacy sys_notification inbox rows into sys_inbox_message + receipts and rewrites the event row.

    Startup (@objectstack/cli, @objectstack/runtime)

    • messaging is now a foundational capability. On objectstack serve it is added to ALWAYS_ON_CAPABILITIES (every non-minimal preset starts it); on cloud per-project kernels the capability loader expands requires to add messaging whenever audit is present. This keeps collaboration @mention / assignment notifications (which now flow through the pipeline) working out of the box on both paths. --preset minimal opts out.

    The Console bell repoint (objectui) and phases P1–P3 are tracked in docs/handoff/adr-0030-notification-convergence.md.

Patch Changes

  • Updated dependencies [23c7107]
  • Updated dependencies [c72daad]
  • Updated dependencies [4404572]
  • Updated dependencies [eea3f1b]
  • Updated dependencies [e478e0c]
  • Updated dependencies [4cc2ced]
  • Updated dependencies [13632b1]
  • Updated dependencies [f115182]
  • Updated dependencies [2faf9f2]
  • Updated dependencies [2faf9f2]
  • Updated dependencies [2faf9f2]
  • Updated dependencies [58b450b]
  • Updated dependencies [82eb6cf]
  • Updated dependencies [c381977]
  • Updated dependencies [13d8653]
  • Updated dependencies [ff3d006]
  • Updated dependencies [5e831de]
    • @objectstack/spec@7.4.0
    • @objectstack/platform-objects@7.4.0
    • @objectstack/core@7.4.0
    • @objectstack/types@7.4.0
    • @objectstack/metadata-core@7.4.0
    • @objectstack/metadata-fs@7.4.0

7.3.0

Patch Changes

  • Updated dependencies [5e7c554]
    • @objectstack/spec@7.3.0
    • @objectstack/core@7.3.0
    • @objectstack/platform-objects@7.3.0
    • @objectstack/types@7.3.0
    • @objectstack/metadata-core@7.3.0
    • @objectstack/metadata-fs@7.3.0

7.2.1

Patch Changes

  • Updated dependencies [9096dfe]
    • @objectstack/types@7.2.1
    • @objectstack/spec@7.2.1
    • @objectstack/core@7.2.1
    • @objectstack/metadata-core@7.2.1
    • @objectstack/metadata-fs@7.2.1
    • @objectstack/platform-objects@7.2.1

7.2.0

Patch Changes

  • @objectstack/spec@7.2.0
  • @objectstack/core@7.2.0
  • @objectstack/types@7.2.0
  • @objectstack/metadata-core@7.2.0
  • @objectstack/metadata-fs@7.2.0
  • @objectstack/platform-objects@7.2.0

7.1.0

Patch Changes

  • 47a92f4: Promote email_template to a first-class metadata type using the canonical EmailTemplateDefinitionSchema.

    Previously email_template had two competing Zod schemas (Prime Directive #8 violation): the legacy EmailTemplateSchema (a sub-shape of Notification) and the richer EmailTemplateDefinitionSchema. The runtime metadata protocol (packages/objectql/src/protocol.ts) and Studio's property panel registered the legacy one, which is why all the new fields (name, label, category, locale, bodyHtml, bodyText, …) were reported as “declared in form layout but missing from schema”.

    This change:

    • Repoints the email_template entry in TYPE_TO_SCHEMA (packages/objectql/src/protocol.ts) and in BUILTIN_METADATA_TYPE_SCHEMAS (packages/spec/src/kernel/metadata-type-schemas.ts) to EmailTemplateDefinitionSchema. The legacy EmailTemplateSchema is kept only as an inline sub-shape inside Notification.
    • Adds an emailTemplates collection to defineStack() input (packages/spec/src/stack.zod.ts), registers it in MAP_SUPPORTED_FIELDS/PLURAL_TO_SINGULAR (packages/spec/src/shared/metadata-collection.zod.ts), wires it into ARTIFACT_FIELD_TO_TYPE (packages/metadata/src/plugin.ts) and APP_CATEGORY_KEYS (packages/runtime/src/app-plugin.ts).
    • Rewrites packages/spec/src/system/email-template.form.ts for the new schema with sections for Identity, Subject, HTML body, Plain-text body, Variables, Delivery overrides, Status.
    • Ships three reference templates in examples/app-crm/src/emails/: crm.deal_won (rewritten to canonical shape), crm.welcome (new), crm.lead_followup (new), and wires them into the CRM stack via emailTemplates: Object.values(emails).

    End-to-end verified in Studio: list view at /_console/apps/studio/metadata/email_template shows all three entries; the detail view renders the EmailTemplatePreview iframe and the property panel cleanly renders every canonical field (no missing-schema warnings). GET /api/v1/meta now returns the new properties set (name, label, category, locale, subject, bodyHtml, bodyText, variables, fromOverride, replyTo, active, isSystem, description).

  • Updated dependencies [6228609]

  • Updated dependencies [47a92f4]

    • @objectstack/platform-objects@7.1.0
    • @objectstack/spec@7.1.0
    • @objectstack/core@7.1.0
    • @objectstack/types@7.1.0
    • @objectstack/metadata-core@7.1.0
    • @objectstack/metadata-fs@7.1.0

7.0.0

Patch Changes

  • Updated dependencies [74470ad]
  • Updated dependencies [d29617e]
  • Updated dependencies [dc72172]
  • Updated dependencies [d29617e]
  • Updated dependencies [010757b]
  • Updated dependencies [257954d]
    • @objectstack/spec@7.0.0
    • @objectstack/platform-objects@7.0.0
    • @objectstack/core@7.0.0
    • @objectstack/types@7.0.0
    • @objectstack/metadata-core@7.0.0
    • @objectstack/metadata-fs@7.0.0

6.9.0

Patch Changes

  • @objectstack/spec@6.9.0
  • @objectstack/core@6.9.0
  • @objectstack/types@6.9.0
  • @objectstack/metadata-core@6.9.0
  • @objectstack/metadata-fs@6.9.0
  • @objectstack/platform-objects@6.9.0

6.8.1

Patch Changes

  • @objectstack/spec@6.8.1
  • @objectstack/core@6.8.1
  • @objectstack/types@6.8.1
  • @objectstack/metadata-core@6.8.1
  • @objectstack/metadata-fs@6.8.1
  • @objectstack/platform-objects@6.8.1

6.8.0

Patch Changes

  • Updated dependencies [6e88f77]
  • Updated dependencies [c8b9f57]
  • Updated dependencies [45d27c5]
    • @objectstack/spec@6.8.0
    • @objectstack/platform-objects@6.8.0
    • @objectstack/core@6.8.0
    • @objectstack/types@6.8.0
    • @objectstack/metadata-core@6.8.0
    • @objectstack/metadata-fs@6.8.0

6.7.1

Patch Changes

  • @objectstack/spec@6.7.1
  • @objectstack/core@6.7.1
  • @objectstack/types@6.7.1
  • @objectstack/metadata-core@6.7.1
  • @objectstack/metadata-fs@6.7.1
  • @objectstack/platform-objects@6.7.1

6.7.0

Patch Changes

  • Updated dependencies [430067b]
  • Updated dependencies [4f9e9d4]
  • Updated dependencies [4f9e9d4]
    • @objectstack/spec@6.7.0
    • @objectstack/platform-objects@6.7.0
    • @objectstack/core@6.7.0
    • @objectstack/types@6.7.0
    • @objectstack/metadata-core@6.7.0
    • @objectstack/metadata-fs@6.7.0

6.6.0

Patch Changes

  • Updated dependencies [a49cfc2]
    • @objectstack/spec@6.6.0
    • @objectstack/core@6.6.0
    • @objectstack/platform-objects@6.6.0
    • @objectstack/types@6.6.0
    • @objectstack/metadata-core@6.6.0
    • @objectstack/metadata-fs@6.6.0

6.5.1

Patch Changes

  • @objectstack/spec@6.5.1
  • @objectstack/core@6.5.1
  • @objectstack/types@6.5.1
  • @objectstack/metadata-core@6.5.1
  • @objectstack/metadata-fs@6.5.1
  • @objectstack/platform-objects@6.5.1

6.5.0

Patch Changes

  • @objectstack/spec@6.5.0
  • @objectstack/core@6.5.0
  • @objectstack/types@6.5.0
  • @objectstack/metadata-core@6.5.0
  • @objectstack/metadata-fs@6.5.0
  • @objectstack/platform-objects@6.5.0

6.4.0

Patch Changes

  • Updated dependencies [f8651cc]
  • Updated dependencies [f8651cc]
  • Updated dependencies [0bf6f9a]
    • @objectstack/spec@6.4.0
    • @objectstack/core@6.4.0
    • @objectstack/platform-objects@6.4.0
    • @objectstack/types@6.4.0
    • @objectstack/metadata-core@6.4.0
    • @objectstack/metadata-fs@6.4.0

6.3.0

Patch Changes

  • @objectstack/spec@6.3.0
  • @objectstack/core@6.3.0
  • @objectstack/types@6.3.0
  • @objectstack/metadata-core@6.3.0
  • @objectstack/metadata-fs@6.3.0
  • @objectstack/platform-objects@6.3.0

6.2.0

Patch Changes

  • Updated dependencies [b4c74a9]
    • @objectstack/spec@6.2.0
    • @objectstack/core@6.2.0
    • @objectstack/platform-objects@6.2.0
    • @objectstack/types@6.2.0
    • @objectstack/metadata-core@6.2.0
    • @objectstack/metadata-fs@6.2.0

6.1.1

Patch Changes

  • @objectstack/spec@6.1.1
  • @objectstack/core@6.1.1
  • @objectstack/types@6.1.1
  • @objectstack/metadata-core@6.1.1
  • @objectstack/metadata-fs@6.1.1
  • @objectstack/platform-objects@6.1.1

6.1.0

Patch Changes

  • Updated dependencies [93c0589]
    • @objectstack/spec@6.1.0
    • @objectstack/core@6.1.0
    • @objectstack/platform-objects@6.1.0
    • @objectstack/types@6.1.0
    • @objectstack/metadata-core@6.1.0
    • @objectstack/metadata-fs@6.1.0

6.0.0

Major Changes

  • 944f187: # v5.0 — projectenvironment hard rename

    The runtime concept previously called "project" (per-tenant business workspace; Org → Project → Branch hierarchy; per-project ObjectKernel, per-project DB, per-project artifact) is now uniformly called "environment".

    This is a hard rename with no aliases, deprecation shims, or compatibility layer. Upgrade requires a coordinated update of CLI, runtime, server, and any clients calling the REST API.

    Note: "project" in the npm / monorepo sense (the framework itself, package.json, tsconfig project references, vitest projects config) is unchanged.

    Breaking changes

    CLI

    • Flags renamed:
      • --project / -p--environment / -e (os publish, os rollback)
      • --project-id--environment-id (os dev)
    • Default local env id: proj_localenv_local.
    • Env var: OS_PROJECT_IDOS_ENVIRONMENT_ID.
    • Command group renamed: os projects ...os environments ... (bind, create, list, show, switch).
    • Persisted auth-config key: activeProjectIdactiveEnvironmentId.

    HTTP / REST

    • Scoped routes: /api/v1/projects/:projectId/.../api/v1/environments/:environmentId/....
    • Cloud control-plane routes: /api/v1/cloud/projects/.../api/v1/cloud/environments/... (including /cloud/environments/:id/artifact, /cloud/environments/:id/metadata, /cloud/environments/:id/credentials/rotate, etc.).
    • Header: X-Project-Id (and lowercase x-project-id) → X-Environment-Id (x-environment-id).
    • Route param name in handlers: req.params.projectIdreq.params.environmentId.
    • Hostname-routing and tenant-resolution code-paths use environmentId end-to-end.

    Runtime / spec

    • Exported symbols (no aliases):
      • createSystemProjectPlugincreateSystemEnvironmentPlugin
      • SYSTEM_PROJECT_IDSYSTEM_ENVIRONMENT_ID
      • ProjectArtifactSchemaEnvironmentArtifactSchema
      • PROJECT_ARTIFACT_SCHEMA_VERSIONENVIRONMENT_ARTIFACT_SCHEMA_VERSION
      • ObjectOSProjectPluginObjectOSEnvironmentPlugin
      • createSingleProjectPlugincreateSingleEnvironmentPlugin
    • Plugin identifier strings:
      • com.objectstack.runtime.objectos-projectobjectos-environment
      • com.objectstack.studio.single-projectsingle-environment
      • com.objectstack.multi-projectmulti-environment
      • com.objectstack.runtime.system-projectsystem-environment
    • Provisioning hook: provisionSystemProjectprovisionSystemEnvironment.

    Database / schemas

    • Column renames on sys_metadata and sys_metadata_history: project_idenvironment_id.
    • Column renames on sys_activity: project_idenvironment_id (plus index).
    • Object renames in platform-objects metadata: sys_projectsys_environment (lookup targets), sys_project_membersys_environment_member, sys_project_credentialsys_environment_credential.
    • Auth-context field: active_project_idactive_environment_id.
    • JSON schemas under packages/spec/json-schema/system/: ProjectArtifact*.jsonEnvironmentArtifact*.json (regenerated at build).

    Automatic forward migration

    A new migration migrateProjectIdToEnvironmentId (packages/metadata/src/migrations/migrate-project-id-to-environment-id.ts) auto-runs from DatabaseLoader.ensureSchema() on bootstrap and rewrites any existing project_id column on sys_metadata / sys_metadata_history to environment_id (idempotent, best-effort). Existing rows are preserved.

    The legacy reverse migration migrateEnvIdToProjectId is retained verbatim for historical / disaster-recovery use; it is not auto-run.

    Migration guide

    -os publish --project proj_xyz
    +os publish --environment env_xyz
    
    -curl -H "X-Project-Id: env_xyz" https://api.example.com/api/v1/data/customer
    +curl -H "X-Environment-Id: env_xyz" https://api.example.com/api/v1/data/customer
    
    -OS_PROJECT_ID=env_xyz os dev
    +OS_ENVIRONMENT_ID=env_xyz os dev
    
    -import { createSystemProjectPlugin, SYSTEM_PROJECT_ID } from "@objectstack/runtime";
    +import { createSystemEnvironmentPlugin, SYSTEM_ENVIRONMENT_ID } from "@objectstack/runtime";
    
    -import { ProjectArtifactSchema } from "@objectstack/spec";
    +import { EnvironmentArtifactSchema } from "@objectstack/spec";

    If you maintain a Cloud control-plane deployment, the cloud repository must be updated in lockstep to pick up the new plugin identifier strings (single-environment, multi-environment, objectos-environment).

Patch Changes

  • Updated dependencies [629a716]
  • Updated dependencies [dbc4f7d]
  • Updated dependencies [944f187]
    • @objectstack/spec@6.0.0
    • @objectstack/platform-objects@6.0.0
    • @objectstack/core@6.0.0
    • @objectstack/types@6.0.0
    • @objectstack/metadata-core@6.0.0
    • @objectstack/metadata-fs@6.0.0

5.2.0

Patch Changes

  • Updated dependencies [bab2b20]
  • Updated dependencies [fa011d8]
  • Updated dependencies [f0f7c27]
  • Updated dependencies [b806f58]
    • @objectstack/platform-objects@5.2.0
    • @objectstack/spec@5.2.0
    • @objectstack/metadata-core@5.2.0
    • @objectstack/core@5.2.0
    • @objectstack/types@5.2.0
    • @objectstack/metadata-fs@5.2.0

5.1.0

Patch Changes

  • 75f4ee6: feat(metadata): introduce executionPinned capability for runtime version pinning (ADR-0009)

    Adds a new capability flag on the metadata type registry so that types whose runtime transaction rows reference a specific historical version (flow, workflow, approval) get unified pinning behavior — instead of every business table re-implementing its own snapshot column.

    • MetadataTypeRegistryEntrySchema gains executionPinned: boolean, enforced invariant executionPinned ⇒ supportsVersioning.
    • flow, workflow, approval flipped to executionPinned: true. approval also corrected to supportsVersioning: true (it was wrongly false).
    • MetadataRepository.getByHash(ref, hash) added to the interface. Production implementation in SysMetadataRepository resolves historical bodies through sys_metadata_history keyed by (organization_id, type, name, checksum). In-memory and FS repositories serve HEAD-only matches.
    • sys_metadata_history gains an index on (organization_id, type, name, checksum) to keep hash lookups O(log n).
    • HistoryCleanupManager skips pinned types entirely (both age-based and count-based retention) — pinned-type history must never be GC'd.

    See docs/adr/0009-execution-pinned-metadata.md for full rationale and the list of rejected alternatives (no shared snapshot table, no inlined snapshot column).

  • 823d559: Remove sys_metadata_history.metadata_id column.

    The column was originally a Field.lookup FK into sys_metadata.id, then downgraded to plain text during the M1 history-writes work so that DELETE tombstones could keep an orphaned ref. After M1 we concluded the column carries no business value:

    • Audit-time joins use (organization_id, type, name, version), which is already a UNIQUE composite key.
    • The physical row id is a database-internal detail with no logical identity — it cannot follow an item through delete + recreate.
    • No code reader was ever added.

    This release removes the column outright:

    • Dropped metadata_id from SysMetadataHistoryObject (@objectstack/platform-objects).
    • Dropped metadataId from MetadataHistoryRecordSchema (@objectstack/spec).
    • SysMetadataRepository.put/delete no longer write the column.
    • Legacy DatabaseLoader.createHistoryRecord no longer writes it; getHistoryRecord/queryHistory filter by (type, name) directly (no parent-row lookup needed).
    • MetadataHistoryCleanup maxVersions policy groups by (type, name) instead of metadata_id.

    Migration: Drop the column from existing sys_metadata_history tables in a follow-up SQL migration. Existing history rows remain queryable since (organization_id, type, name, version) is already the canonical lookup key. No consumer code should be reading metadata_id — if you are, switch to (organization_id, type, name, version).

    See ADR-0008 §14 for the full rationale.

  • Updated dependencies [75f4ee6]

  • Updated dependencies [823d559]

    • @objectstack/spec@5.1.0
    • @objectstack/metadata-core@5.1.0
    • @objectstack/platform-objects@5.1.0
    • @objectstack/metadata-fs@5.1.0
    • @objectstack/core@5.1.0
    • @objectstack/types@5.1.0

5.0.0

Minor Changes

  • 5e9dcb4: BREAKING — metadata: remove project and branch from MetaRef

    The metadata layer no longer models project or branch. Customisation is now scoped purely to organisation. Project remains exclusively as an artifact packaging concept (the objectstack.json bundle envelope); branching is left to Git.

    What changed:

    • MetaRef is now { org, type, name, version? } (was { org, project, branch, type, name, version? }). refKey() is the two segment string ${org}/${type}/${name} (was five segments).
    • MetadataItem.seq is monotonic per org (was per branch).
    • BranchRef, MergeStrategy, MergeResult types and the optional fork/merge methods on MetadataRepository are removed.
    • ListFilter / WatchFilter / HistoryOptions no longer accept project or branch.
    • FileSystemRepository disk layout simplified to <root>/<type>/<name>.json (was <root>/<project>/<branch>/<type>/<name>.json); change-log path is now .objectstack/.log/main.jsonl regardless of any branch concept. Constructor no longer accepts project / branch.
    • SysMetadataRepository: removed projectLabel / branchLabel options; the sys_metadata schema's project_id / branch columns (if present) are ignored. A future major release will DROP them.
    • MetadataManager.setRepository(repo, opts) no longer takes an opts object with branch.

    Migration:

    -const ref = { org: 'acme', project: 'crm', branch: 'main', type: 'view', name: 'home' };
    +const ref = { org: 'acme', type: 'view', name: 'home' };
    
    -new FileSystemRepository({ root, org: 'acme', project: 'crm', branch: 'main' });
    +new FileSystemRepository({ root, org: 'acme' });

    Existing sys_metadata rows continue to load; the deprecated columns are ignored at read time.

  • 8b298c7: Attach an @objectstack/metadata-core MetadataRepository as a supplementary event source on MetadataManager (ADR-0008 M0 PR-6).

    When a repository is configured via manager.setRepository(repo):

    • the manager subscribes to repo.watch({ branch: 'main' }) and re-emits each event through the legacy MetadataWatchEvent channel that manager.subscribe(type, cb) already exposes, so existing HMR / SSE pipelines pick up changes from the new layer automatically;
    • each event also invalidates the in-memory registry entry and the list() cache for the affected type, so subsequent reads fall through to the repository / loaders instead of returning stale data;
    • a new manager.dispose() method drains the watch loop and the FS watcher cleanly. MetadataPlugin.stop() calls it.

    MetadataPlugin.start() now instantiates a FileSystemRepository rooted at <rootDir>/.objectstack/metadata/ (separate from user source files) and attaches it automatically when not in artifact-only mode.

    No write-mirroring yet — register() / unregister() / save() keep their existing semantics; the canonical write path migrates in PR-10.

  • 9e51868: Server-side artifact-file watcher; CLI no longer posts to the HMR endpoint on recompile (ADR-0008 M0 PR-8).

    MetadataPlugin.start() now attaches a chokidar watcher on the artifactSource.path when running in local-file mode with watch !== false. On every artifact change it re-invokes _loadFromLocalFile and broadcasts a reload event through the HMR hub. This replaces the previous arrangement where os dev's watch-recompile loop POSTed /api/v1/dev/metadata-events to trigger a reload — the server is now autonomous.

    The CLI dev command's recompile loop drops the POST call; the /api/v1/dev/metadata-events route remains available for external trigger sources (cloud webhooks, git hooks, ad-hoc curl).

    MetadataPlugin.stop() closes the artifact watcher cleanly.

  • ddf8080: ADR-0008 M0 PR-9: thread the canonical server-side change-log seq from MetadataRepository events through to the Studio HMR badge. The useMetadataHmr() hook now exposes lastSeq alongside the local version counter, and the badge tooltip renders "Repo seq: #N" so operators can correlate Studio reloads with what other replicas observe. Legacy chokidar-driven events still work — they simply leave seq undefined and consumers fall back to the local counter.

Patch Changes

  • 96ad4df: Fix dev-mode HMR data-reload for *.view.ts / *.flow.ts source-file edits.

    Three coordinated fixes close the long-standing gap where editing a declarative-metadata source file in dev (e.g. case.view.ts) would recompile dist/objectstack.json but the running server kept serving the stale boot-time value:

    1. @objectstack/objectqlObjectStackProtocolImplementation.getMetaItem now consults MetadataService (HMR-aware) before the in-memory SchemaRegistry (boot-time cache). Previously the registry shadowed freshly-registered values: manager.register('view','case',newDef) updated MetadataManager but getMetaItem returned the stale registry copy because step 2 (registry) ran before step 3 (service). Reordered to "1. sys_metadata overlay → 2. MetadataService → 3. SchemaRegistry".

    2. @objectstack/runtimecreateStandaloneStack now enables the MetadataPlugin artifact-file watcher in non-production environments (NODE_ENV !== 'production'). Previously hard-coded to watch: false, leaving nothing watching dist/objectstack.json when the CLI dev mode recompiled it.

    3. @objectstack/metadata & @objectstack/metadata-fs — Both chokidar watchers now use usePolling: true to avoid fs.watch EMFILE on macOS / busy dev hosts where the native file-descriptor pool can be exhausted by other long-running node processes.

    With these three changes:

    • CLI edits source → recompile artifact (~400ms)
    • Server's polling chokidar detects artifact change → _loadFromLocalFile
    • _loadFromLocalFile calls manager.register(type, name, item)
    • MetadataService now has the fresh value
    • Read path returns the fresh value via the new step-2 lookup
    • Studio SSE listeners re-render
  • df18ae9: Fix dev-mode HMR data-reload for view metadata.

    MetadataPlugin._parseAndRegisterArtifact previously required a top-level name on every artifact item and silently skipped those without one. View bundles in the compiled artifact carry no top-level name (their identity is the target object, encoded under list.data.object / form.data.object — same pattern used by ObjectQL.SchemaRegistry's resolveMetadataItemName). As a result, artifact-loaded views never reached MetadataManager, and HMR file pushes never affected the read path: API responses kept returning the boot-time SchemaRegistry copy.

    This change derives the registration key from list.data.object (or form.data.object) when no top-level name is present, mirroring the ObjectQL convention.

    Also splits the MetadataPlugin watch flag into two independent options so dev mode can enable artifact-file HMR without paying the cost of the source-file scanner:

    • watch — controls NodeMetadataManager's recursive source scan (default false; turning it on in artifact mode would polling-scan the entire project root including node_modules).
    • artifactWatch — controls the cheap single-file polling watcher on the compiled artifact (dist/objectstack.json). The standalone stack enables this automatically when NODE_ENV !== 'production'.
  • Updated dependencies [5e9dcb4]

  • Updated dependencies [4150fe4]

  • Updated dependencies [8337cdb]

  • Updated dependencies [58835a6]

  • Updated dependencies [8cc30b4]

  • Updated dependencies [32ce912]

  • Updated dependencies [888a5c1]

  • Updated dependencies [96ad4df]

  • Updated dependencies [2f9073a]

    • @objectstack/metadata-core@5.0.0
    • @objectstack/metadata-fs@5.0.0
    • @objectstack/platform-objects@5.0.0
    • @objectstack/spec@5.0.0
    • @objectstack/core@5.0.0
    • @objectstack/types@5.0.0

4.2.0

Patch Changes

  • 3a99239: Metadata HMR via SSE — close the agent-edits → preview-refresh loop.

    • @objectstack/metadata: register /api/v1/dev/metadata-events SSE endpoint unconditionally; add POST trigger that reloads the artifact and broadcasts a reload event to all listeners.
    • @objectstack/cli (os dev): chokidar-based watch on objectstack.config.ts and src/; debounced recompile + POST to the HMR endpoint so the server reloads without restart.
    • @objectstack/studio: useMetadataHmr provider opens an EventSource, exposes a version counter; previews include it in their query deps, and a top-bar badge surfaces connection state and event counts for diagnostics.
  • Updated dependencies [2869891]

    • @objectstack/spec@4.2.0
    • @objectstack/core@4.2.0
    • @objectstack/platform-objects@4.2.0
    • @objectstack/types@4.2.0

4.1.1

Patch Changes

  • @objectstack/spec@4.1.1
  • @objectstack/core@4.1.1
  • @objectstack/types@4.1.1
  • @objectstack/platform-objects@4.1.1

4.1.0

Minor Changes

  • 1234920: v3.1 — Runtime controls & read-through cache.

    • Generic LRUCache (lazy TTL, promote-on-get, size cap, hits/misses/hitRate stats) wired into DatabaseLoader.{load,loadMany,list,stat} with write invalidation. Configured via cache.databaseLoader.
    • MetadataPluginConfig.bootstrap modes: eager (default), lazy, artifact-only. artifact-only requires artifactSource.mode = 'local-file'.
    • MetadataManagerConfig.persistence two-axis write gates: writable (gates register()) and overlayWritable (gates saveOverlay()). Both default true; either becomes a throw under validation.throwOnError.
    • Single-source schema discipline: canonical MetadataManagerConfigSchema / MetadataFallbackStrategySchema live in kernel/metadata-loader.zod.ts and are re-exported from system/metadata-persistence.zod.ts.

Patch Changes

  • Updated dependencies [2108c30]
  • Updated dependencies [23db640]
    • @objectstack/spec@4.1.0
    • @objectstack/core@4.1.0
    • @objectstack/platform-objects@4.1.0
    • @objectstack/types@4.1.0

4.0.5

Patch Changes

  • 15e0df6: chore: unify all package versions to a single patch release
  • Updated dependencies [15e0df6]
    • @objectstack/spec@4.0.5
    • @objectstack/core@4.0.5
    • @objectstack/types@4.0.5
    • @objectstack/platform-objects@4.0.5

4.0.4

Patch Changes

  • Updated dependencies [326b66b]
    • @objectstack/spec@4.0.4
    • @objectstack/core@4.0.4
    • @objectstack/types@4.0.4

4.0.3

Patch Changes

  • @objectstack/spec@4.0.3
  • @objectstack/core@4.0.3
  • @objectstack/types@4.0.3

4.0.2

Patch Changes

  • Updated dependencies [5f659e9]
    • @objectstack/spec@4.0.2
    • @objectstack/core@4.0.2
    • @objectstack/types@4.0.2

4.0.0

Patch Changes

  • Updated dependencies [f08ffc3]
  • Updated dependencies [e0b0a78]
    • @objectstack/spec@4.0.0
    • @objectstack/core@4.0.0
    • @objectstack/types@4.0.0

3.3.1

Patch Changes

  • @objectstack/spec@3.3.1
  • @objectstack/core@3.3.1
  • @objectstack/types@3.3.1

3.3.0

Patch Changes

  • Fix ERR_MODULE_NOT_FOUND on Vercel: add "type": "module" and update exports to use .js/.cjs pattern (consistent with @objectstack/core, @objectstack/runtime)
  • @objectstack/spec@3.3.0
  • @objectstack/core@3.3.0
  • @objectstack/types@3.3.0

3.2.9

Patch Changes

  • @objectstack/spec@3.2.9
  • @objectstack/core@3.2.9
  • @objectstack/types@3.2.9

3.2.8

Patch Changes

  • @objectstack/spec@3.2.8
  • @objectstack/core@3.2.8
  • @objectstack/types@3.2.8

3.2.7

Patch Changes

  • @objectstack/spec@3.2.7
  • @objectstack/core@3.2.7
  • @objectstack/types@3.2.7

3.2.6

Patch Changes

  • @objectstack/spec@3.2.6
  • @objectstack/core@3.2.6
  • @objectstack/types@3.2.6

3.2.5

Patch Changes

  • @objectstack/spec@3.2.5
  • @objectstack/core@3.2.5
  • @objectstack/types@3.2.5

3.2.4

Patch Changes

  • @objectstack/spec@3.2.4
  • @objectstack/core@3.2.4
  • @objectstack/types@3.2.4

3.2.3

Patch Changes

  • @objectstack/spec@3.2.3
  • @objectstack/core@3.2.3
  • @objectstack/types@3.2.3

3.2.2

Patch Changes

  • Updated dependencies [46defbb]
    • @objectstack/spec@3.2.2
    • @objectstack/core@3.2.2
    • @objectstack/types@3.2.2

3.2.1

Patch Changes

  • Updated dependencies [850b546]
    • @objectstack/spec@3.2.1
    • @objectstack/core@3.2.1
    • @objectstack/types@3.2.1

3.2.0

Patch Changes

  • Updated dependencies [5901c29]
    • @objectstack/spec@3.2.0
    • @objectstack/core@3.2.0
    • @objectstack/types@3.2.0

3.1.1

Patch Changes

  • Updated dependencies [953d667]
    • @objectstack/spec@3.1.1
    • @objectstack/core@3.1.1
    • @objectstack/types@3.1.1

3.1.0

Patch Changes

  • Updated dependencies [0088830]
    • @objectstack/spec@3.1.0
    • @objectstack/core@3.1.0
    • @objectstack/types@3.1.0

3.0.11

Patch Changes

  • Updated dependencies [92d9d99]
    • @objectstack/spec@3.0.11
    • @objectstack/core@3.0.11
    • @objectstack/types@3.0.11

3.0.10

Patch Changes

  • Updated dependencies [d1e5d31]
    • @objectstack/spec@3.0.10
    • @objectstack/core@3.0.10
    • @objectstack/types@3.0.10

3.0.9

Patch Changes

  • Updated dependencies [15e0df6]
    • @objectstack/spec@3.0.9
    • @objectstack/core@3.0.9
    • @objectstack/types@3.0.9

3.0.8

Patch Changes

  • Updated dependencies [5a968a2]
    • @objectstack/spec@3.0.8
    • @objectstack/core@3.0.8
    • @objectstack/types@3.0.8

3.0.7

Patch Changes

  • Updated dependencies [0119bd7]
  • Updated dependencies [5426bdf]
    • @objectstack/spec@3.0.7
    • @objectstack/core@3.0.7
    • @objectstack/types@3.0.7

3.0.6

Patch Changes

  • Updated dependencies [5df254c]
    • @objectstack/spec@3.0.6
    • @objectstack/core@3.0.6
    • @objectstack/types@3.0.6

3.0.5

Patch Changes

  • Updated dependencies [23a4a68]
    • @objectstack/spec@3.0.5
    • @objectstack/core@3.0.5
    • @objectstack/types@3.0.5

3.0.4

Patch Changes

  • Updated dependencies [d738987]
    • @objectstack/spec@3.0.4
    • @objectstack/core@3.0.4
    • @objectstack/types@3.0.4

3.0.3

Patch Changes

  • c7267f6: Patch release for maintenance updates and improvements.
  • Updated dependencies [c7267f6]
    • @objectstack/spec@3.0.3
    • @objectstack/core@3.0.3
    • @objectstack/types@3.0.3

3.0.2

Patch Changes

  • Updated dependencies [28985f5]
    • @objectstack/spec@3.0.2
    • @objectstack/core@3.0.2
    • @objectstack/types@3.0.2

3.0.1

Patch Changes

  • Updated dependencies [389725a]
    • @objectstack/spec@3.0.1
    • @objectstack/core@3.0.1
    • @objectstack/types@3.0.1

3.0.0

Major Changes

  • Release v3.0.0 — unified version bump for all ObjectStack packages.

Patch Changes

  • Updated dependencies
    • @objectstack/spec@3.0.0
    • @objectstack/core@3.0.0
    • @objectstack/types@3.0.0

2.0.7

Patch Changes

  • Updated dependencies
    • @objectstack/spec@2.0.7
    • @objectstack/core@2.0.7
    • @objectstack/types@2.0.7

2.0.6

Patch Changes

  • Patch release for maintenance and stability improvements
  • Updated dependencies
    • @objectstack/spec@2.0.6
    • @objectstack/core@2.0.6
    • @objectstack/types@2.0.6

2.0.5

Patch Changes

  • Updated dependencies
    • @objectstack/spec@2.0.5
    • @objectstack/core@2.0.5
    • @objectstack/types@2.0.5

2.0.4

Patch Changes

  • Patch release for maintenance and stability improvements
  • Updated dependencies
    • @objectstack/spec@2.0.4
    • @objectstack/core@2.0.4
    • @objectstack/types@2.0.4

2.0.3

Patch Changes

  • Patch release for maintenance and stability improvements
  • Updated dependencies
    • @objectstack/spec@2.0.3
    • @objectstack/core@2.0.3
    • @objectstack/types@2.0.3

2.0.2

Patch Changes

  • Updated dependencies [1db8559]
    • @objectstack/spec@2.0.2
    • @objectstack/core@2.0.2
    • @objectstack/types@2.0.2

2.0.1

Patch Changes

  • Patch release for maintenance and stability improvements
  • Updated dependencies
    • @objectstack/spec@2.0.1
    • @objectstack/core@2.0.1
    • @objectstack/types@2.0.1

2.0.0

Patch Changes

  • Updated dependencies [38e5dd5]
  • Updated dependencies [38e5dd5]
    • @objectstack/spec@2.0.0
    • @objectstack/core@2.0.0
    • @objectstack/types@2.0.0

1.0.12

Patch Changes

  • Updated dependencies
    • @objectstack/spec@1.0.12
    • @objectstack/core@1.0.12
    • @objectstack/types@1.0.12

1.0.11

Patch Changes

  • @objectstack/spec@1.0.11
  • @objectstack/core@1.0.11
  • @objectstack/types@1.0.11

1.0.10

Patch Changes

  • Updated dependencies [10f52e1]
    • @objectstack/core@1.0.10
    • @objectstack/spec@1.0.10
    • @objectstack/types@1.0.10

1.0.9

Patch Changes

  • @objectstack/spec@1.0.9
  • @objectstack/core@1.0.9
  • @objectstack/types@1.0.9

1.0.8

Patch Changes

  • @objectstack/spec@1.0.8
  • @objectstack/core@1.0.8
  • @objectstack/types@1.0.8

1.0.7

Patch Changes

  • @objectstack/spec@1.0.7
  • @objectstack/core@1.0.7
  • @objectstack/types@1.0.7

1.0.6

Patch Changes

  • Updated dependencies [a7f7b9d]
    • @objectstack/spec@1.0.6
    • @objectstack/core@1.0.6
    • @objectstack/types@1.0.6

1.0.5

Patch Changes

  • b1d24bd: refactor: migrate build system from tsc to tsup for faster builds
    • Replaced tsc with tsup (using esbuild) across all packages
    • Added shared tsup.config.ts in workspace root
    • Added tsup as workspace dev dependency
    • significantly improved build performance
  • Updated dependencies [b1d24bd]
    • @objectstack/core@1.0.5
    • @objectstack/types@1.0.5
    • @objectstack/spec@1.0.5

1.0.4

Patch Changes

  • @objectstack/spec@1.0.4
  • @objectstack/core@1.0.4
  • @objectstack/types@1.0.4

1.0.3

Patch Changes

  • Updated dependencies [fb2eabd]
    • @objectstack/core@1.0.3
    • @objectstack/spec@1.0.3
    • @objectstack/types@1.0.3

1.0.2

Patch Changes

  • a0a6c85: Infrastructure and development tooling improvements

    • Add changeset configuration for automated version management
    • Add comprehensive GitHub Actions workflows (CI, CodeQL, linting, releases)
    • Add development configuration files (.cursorrules, .github/prompts)
    • Add documentation files (ARCHITECTURE.md, CONTRIBUTING.md, workflows docs)
    • Update test script configuration in package.json
    • Add @objectstack/cli to devDependencies for better development experience
  • 109fc5b: Unified patch release to align all package versions.

  • Updated dependencies [a0a6c85]

  • Updated dependencies [109fc5b]

    • @objectstack/spec@1.0.2
    • @objectstack/core@1.0.2
    • @objectstack/types@1.0.2

1.0.1

Patch Changes

  • @objectstack/spec@1.0.1
  • @objectstack/core@1.0.1
  • @objectstack/types@1.0.1

1.0.0

Major Changes

  • Major version release for ObjectStack Protocol v1.0.
    • Stabilized Protocol Definitions
    • Enhanced Runtime Plugin Support
    • Fixed Type Compliance across Monorepo

Patch Changes

  • Updated dependencies
    • @objectstack/spec@1.0.0
    • @objectstack/core@1.0.0
    • @objectstack/types@1.0.0

0.9.2

Patch Changes

  • Updated dependencies
    • @objectstack/spec@0.9.2
    • @objectstack/core@0.9.2
    • @objectstack/types@0.9.2

0.9.1

Patch Changes

  • Patch release for maintenance and stability improvements. All packages updated with unified versioning.
  • Updated dependencies
    • @objectstack/spec@0.9.1
    • @objectstack/core@0.9.1
    • @objectstack/types@0.9.1

0.8.2

Patch Changes

  • Updated dependencies [555e6a7]
    • @objectstack/spec@0.8.2
    • @objectstack/core@0.8.2
    • @objectstack/types@0.8.2

0.8.1

Patch Changes

  • @objectstack/spec@0.8.1
  • @objectstack/core@0.8.1
  • @objectstack/types@0.8.1

1.0.0

Minor Changes

  • Upgrade to Zod v4 and Protocol Improvements

    This release includes a major upgrade to the core validation engine (Zod v4) and aligns all protocol definitions with stricter type safety.

Patch Changes

  • Updated dependencies
    • @objectstack/spec@1.0.0
    • @objectstack/core@1.0.0
    • @objectstack/types@1.0.0

0.7.2

Patch Changes

  • Updated dependencies [fb41cc0]
    • @objectstack/spec@0.7.2
    • @objectstack/core@0.7.2
    • @objectstack/types@0.7.2

0.7.1

Patch Changes

  • Updated dependencies
    • @objectstack/spec@0.7.1
    • @objectstack/types@0.7.1
    • @objectstack/core@0.7.1