From 7e8096da14319405a6fa6289cb7b469e781ecf2f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 14 Jul 2026 15:11:31 +0000 Subject: [PATCH] chore: version packages --- .changeset/adr-0087-p1-conversion-layer.md | 22 --- .changeset/adr-0087-p2-migration-chain.md | 19 --- .changeset/adr-0089-visibility-lint.md | 13 -- .changeset/adr-0089-visible-when.md | 17 --- .../claim-seed-ownership-skip-external.md | 7 - .changeset/cli-spec-version-advisory.md | 19 --- .changeset/console-60610531013f.md | 26 ---- .../create-objectstack-current-major.md | 5 - .changeset/driver-sql-quiet-dlopen-probe.md | 5 - .../export-filename-and-system-field-i18n.md | 15 -- .changeset/hook-error-message-format.md | 6 - .changeset/permission-set-customized-flag.md | 8 -- .../permission-set-overlay-customization.md | 14 -- .changeset/permission-set-pure-projection.md | 13 -- .changeset/sys-tables-account-i18n.md | 26 ---- .../validate-security-posture-parity.md | 5 - .changeset/wasm-sqlite-durability.md | 9 -- examples/app-crm/CHANGELOG.md | 12 ++ examples/app-crm/package.json | 2 +- examples/app-showcase/CHANGELOG.md | 18 +++ examples/app-showcase/package.json | 2 +- examples/app-todo/CHANGELOG.md | 21 +++ examples/app-todo/package.json | 2 +- examples/embed-objectql/CHANGELOG.md | 13 ++ examples/embed-objectql/package.json | 2 +- packages/adapters/hono/CHANGELOG.md | 8 ++ packages/adapters/hono/package.json | 2 +- packages/apps/account/CHANGELOG.md | 12 ++ packages/apps/account/package.json | 2 +- packages/apps/setup/CHANGELOG.md | 12 ++ packages/apps/setup/package.json | 2 +- packages/apps/studio/CHANGELOG.md | 12 ++ packages/apps/studio/package.json | 2 +- packages/cli/CHANGELOG.md | 128 ++++++++++++++++++ packages/cli/package.json | 2 +- packages/client-react/CHANGELOG.md | 14 ++ packages/client-react/package.json | 2 +- packages/client/CHANGELOG.md | 13 ++ packages/client/package.json | 2 +- packages/cloud-connection/CHANGELOG.md | 14 ++ packages/cloud-connection/package.json | 2 +- .../connectors/connector-mcp/CHANGELOG.md | 12 ++ .../connectors/connector-mcp/package.json | 2 +- .../connectors/connector-openapi/CHANGELOG.md | 12 ++ .../connectors/connector-openapi/package.json | 2 +- .../connectors/connector-rest/CHANGELOG.md | 12 ++ .../connectors/connector-rest/package.json | 2 +- .../connectors/connector-slack/CHANGELOG.md | 12 ++ .../connectors/connector-slack/package.json | 2 +- packages/console/CHANGELOG.md | 27 ++++ packages/console/package.json | 2 +- packages/core/CHANGELOG.md | 11 ++ packages/core/package.json | 2 +- packages/create-objectstack/CHANGELOG.md | 6 + packages/create-objectstack/package.json | 4 +- packages/dogfood/CHANGELOG.md | 21 +++ packages/dogfood/package.json | 2 +- packages/downstream-contract/CHANGELOG.md | 11 ++ packages/downstream-contract/package.json | 2 +- packages/formula/CHANGELOG.md | 11 ++ packages/formula/package.json | 2 +- packages/lint/CHANGELOG.md | 24 ++++ packages/lint/package.json | 2 +- packages/mcp/CHANGELOG.md | 13 ++ packages/mcp/package.json | 2 +- packages/metadata-core/CHANGELOG.md | 11 ++ packages/metadata-core/package.json | 2 +- packages/metadata-fs/CHANGELOG.md | 6 + packages/metadata-fs/package.json | 2 +- packages/metadata-protocol/CHANGELOG.md | 26 ++++ packages/metadata-protocol/package.json | 2 +- packages/metadata/CHANGELOG.md | 16 +++ packages/metadata/package.json | 2 +- packages/objectql/CHANGELOG.md | 17 +++ packages/objectql/package.json | 2 +- packages/observability/CHANGELOG.md | 11 ++ packages/observability/package.json | 2 +- packages/platform-objects/CHANGELOG.md | 32 +++++ packages/platform-objects/package.json | 2 +- packages/plugins/driver-memory/CHANGELOG.md | 12 ++ packages/plugins/driver-memory/package.json | 2 +- packages/plugins/driver-mongodb/CHANGELOG.md | 12 ++ packages/plugins/driver-mongodb/package.json | 2 +- packages/plugins/driver-sql/CHANGELOG.md | 14 ++ packages/plugins/driver-sql/package.json | 2 +- .../plugins/driver-sqlite-wasm/CHANGELOG.md | 20 +++ .../plugins/driver-sqlite-wasm/package.json | 2 +- packages/plugins/embedder-openai/CHANGELOG.md | 11 ++ packages/plugins/embedder-openai/package.json | 2 +- .../plugins/knowledge-memory/CHANGELOG.md | 13 ++ .../plugins/knowledge-memory/package.json | 2 +- .../plugins/knowledge-ragflow/CHANGELOG.md | 13 ++ .../plugins/knowledge-ragflow/package.json | 2 +- .../plugins/plugin-approvals/CHANGELOG.md | 15 ++ .../plugins/plugin-approvals/package.json | 2 +- packages/plugins/plugin-audit/CHANGELOG.md | 13 ++ packages/plugins/plugin-audit/package.json | 2 +- packages/plugins/plugin-auth/CHANGELOG.md | 16 +++ packages/plugins/plugin-auth/package.json | 2 +- packages/plugins/plugin-dev/CHANGELOG.md | 28 ++++ packages/plugins/plugin-dev/package.json | 2 +- packages/plugins/plugin-email/CHANGELOG.md | 14 ++ packages/plugins/plugin-email/package.json | 2 +- .../plugins/plugin-hono-server/CHANGELOG.md | 14 ++ .../plugins/plugin-hono-server/package.json | 2 +- packages/plugins/plugin-reports/CHANGELOG.md | 23 ++++ packages/plugins/plugin-reports/package.json | 2 +- packages/plugins/plugin-security/CHANGELOG.md | 45 ++++++ packages/plugins/plugin-security/package.json | 2 +- packages/plugins/plugin-sharing/CHANGELOG.md | 15 ++ packages/plugins/plugin-sharing/package.json | 2 +- packages/plugins/plugin-webhooks/CHANGELOG.md | 13 ++ packages/plugins/plugin-webhooks/package.json | 2 +- packages/rest/CHANGELOG.md | 26 ++++ packages/rest/package.json | 2 +- packages/runtime/CHANGELOG.md | 33 +++++ packages/runtime/package.json | 2 +- packages/sdui-parser/CHANGELOG.md | 2 + packages/sdui-parser/package.json | 2 +- .../services/service-analytics/CHANGELOG.md | 12 ++ .../services/service-analytics/package.json | 2 +- .../services/service-automation/CHANGELOG.md | 33 +++++ .../services/service-automation/package.json | 2 +- packages/services/service-cache/CHANGELOG.md | 13 ++ packages/services/service-cache/package.json | 2 +- .../service-cluster-redis/CHANGELOG.md | 12 ++ .../service-cluster-redis/package.json | 2 +- .../services/service-cluster/CHANGELOG.md | 12 ++ .../services/service-cluster/package.json | 2 +- .../services/service-datasource/CHANGELOG.md | 12 ++ .../services/service-datasource/package.json | 2 +- packages/services/service-i18n/CHANGELOG.md | 12 ++ packages/services/service-i18n/package.json | 2 +- packages/services/service-job/CHANGELOG.md | 13 ++ packages/services/service-job/package.json | 2 +- .../services/service-knowledge/CHANGELOG.md | 12 ++ .../services/service-knowledge/package.json | 2 +- .../services/service-messaging/CHANGELOG.md | 34 +++++ .../services/service-messaging/package.json | 2 +- .../services/service-package/CHANGELOG.md | 12 ++ .../services/service-package/package.json | 2 +- packages/services/service-queue/CHANGELOG.md | 13 ++ packages/services/service-queue/package.json | 2 +- .../services/service-realtime/CHANGELOG.md | 13 ++ .../services/service-realtime/package.json | 2 +- .../services/service-settings/CHANGELOG.md | 14 ++ .../services/service-settings/package.json | 2 +- packages/services/service-sms/CHANGELOG.md | 12 ++ packages/services/service-sms/package.json | 2 +- .../services/service-storage/CHANGELOG.md | 14 ++ .../services/service-storage/package.json | 2 +- packages/spec/CHANGELOG.md | 83 ++++++++++++ packages/spec/package.json | 2 +- packages/triggers/trigger-api/CHANGELOG.md | 12 ++ packages/triggers/trigger-api/package.json | 2 +- .../trigger-record-change/CHANGELOG.md | 12 ++ .../trigger-record-change/package.json | 2 +- .../triggers/trigger-schedule/CHANGELOG.md | 12 ++ .../triggers/trigger-schedule/package.json | 2 +- packages/types/CHANGELOG.md | 11 ++ packages/types/package.json | 2 +- packages/verify/CHANGELOG.md | 30 ++++ packages/verify/package.json | 2 +- packages/vscode-objectstack/CHANGELOG.md | 2 + packages/vscode-objectstack/package.json | 2 +- 165 files changed, 1400 insertions(+), 304 deletions(-) delete mode 100644 .changeset/adr-0087-p1-conversion-layer.md delete mode 100644 .changeset/adr-0087-p2-migration-chain.md delete mode 100644 .changeset/adr-0089-visibility-lint.md delete mode 100644 .changeset/adr-0089-visible-when.md delete mode 100644 .changeset/claim-seed-ownership-skip-external.md delete mode 100644 .changeset/cli-spec-version-advisory.md delete mode 100644 .changeset/console-60610531013f.md delete mode 100644 .changeset/create-objectstack-current-major.md delete mode 100644 .changeset/driver-sql-quiet-dlopen-probe.md delete mode 100644 .changeset/export-filename-and-system-field-i18n.md delete mode 100644 .changeset/hook-error-message-format.md delete mode 100644 .changeset/permission-set-customized-flag.md delete mode 100644 .changeset/permission-set-overlay-customization.md delete mode 100644 .changeset/permission-set-pure-projection.md delete mode 100644 .changeset/sys-tables-account-i18n.md delete mode 100644 .changeset/validate-security-posture-parity.md delete mode 100644 .changeset/wasm-sqlite-durability.md diff --git a/.changeset/adr-0087-p1-conversion-layer.md b/.changeset/adr-0087-p1-conversion-layer.md deleted file mode 100644 index 327101bdd..000000000 --- a/.changeset/adr-0087-p1-conversion-layer.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -'@objectstack/spec': minor -'@objectstack/service-automation': minor ---- - -ADR-0087 P1:元数据转换层(conversion layer,D2)——大多数破坏性变更对使用方零操作。 - -`@objectstack/spec` 新增 `conversions/` 模块:一张按协议大版本组织、声明式、无损的转换表,在**加载时**(`normalizeStackInput` —— `defineStack` / `objectstack validate` / `lint` / `info` / `doctor` 共用的同一入口)把旧(N−1)形态的元数据改写为规范的 N 形态,并对每处改写发出结构化弃用通知(`OS_METADATA_CONVERTED`)。使用方仍按旧形态编写也能零操作加载,运行时只会看到规范形态。这是把 Kubernetes storage-version/conversion 模型套用到元数据上;它与 Prime Directive #12 禁止的“使用方侧方言兜底”在每个维度上都相反:一张集中、随 spec 版本化、声明化、显式(每次应用都发通知)、带测试(每条附 old→new fixture)、会过期(仅在一个大版本内加载期生效,之后退役并沉淀进 P2 迁移链)的表,而非散落的 `cfg.a ?? cfg.b`。 - -首批以已发布的 protocol 11 重命名回填播种: - -- `flow-node-http-callout-rename`:流程回调节点 `http_request` / `http_call` / `webhook` → `http`。 -- `page-kind-jsx-to-html`:页面 `kind: 'jsx'` → `'html'`(ADR-0080 规范拼写)。 -- `flow-node-crud-filter-alias`:CRUD 流程节点 `config.filters` → `config.filter`。 - -**运行时加载 seam(存量流程零回归的关键)。** 转换不仅接在构建/校验入口,也接到运行时 `AutomationEngine.registerFlow`(在 `FlowSchema.parse` 之前跑,新增 `applyConversionsToFlow`)。这样从数据库 rehydrate 的**存量流程**也会被规范化——否则删掉 `filters` 执行器兜底会让存量 `delete_record` / `update_record` 的过滤条件被静默清空(退化成作用于全表)。这才真正兑现 D2 “applied at load, the same seam”。 - -**开放命名空间的冲突守卫(第三方零静默误伤)。** `flow.node.type` 是开放命名空间(ADR-0018 移除了 enum gate),退役的官方名可能被第三方复用为自定义节点。转换层新增“保留名冲突”感知:运行时 seam 传入本环境已注册的执行器类型,若某退役别名(`http_request`/`http_call`/`webhook`)正被活的自定义执行器占用,则**拒绝改写并发出响亮的结构化告警 `OS_METADATA_CONVERSION_CONFLICT`**(带节点位置、conversion id、“请改名”的处置建议),而不是静默把它改成 `http` 破坏第三方节点。构建/校验入口无注册表上下文,历史别名照常转换。 - -并落实 PD #12 退役路径示范:`filters` → `filter` 别名从 `service-automation` 执行器的 `readAliasedConfig` 兜底中删除,提升为上面这条声明式转换条目;执行器改为直接读取规范键 `cfg.filter`。 - -新增导出(纯增量,无破坏):`applyConversions`、`applyConversionsToFlow`、`collectConversionNotices`、`ALL_CONVERSIONS`、`CONVERSIONS_BY_MAJOR`、`CONVERSION_NOTICE_CODE`、`CONVERSION_CONFLICT_CODE`,以及类型 `MetadataConversion`、`ConversionNotice`、`ConversionApplication`、`ConversionFixture`、`ConversionContext`、`ConversionConflictNotice`、`ConversionConflictDetail`、`ApplyConversionsOptions`、`NormalizeStackInputOptions`。`normalizeStackInput` 现接受可选第二参 `{ onConversionNotice, convert }`(向后兼容)。 diff --git a/.changeset/adr-0087-p2-migration-chain.md b/.changeset/adr-0087-p2-migration-chain.md deleted file mode 100644 index 09a19d191..000000000 --- a/.changeset/adr-0087-p2-migration-chain.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -'@objectstack/spec': minor -'@objectstack/cli': minor ---- - -ADR-0087 P2:可重放迁移链 + 机器可读变更清单(D3 / D4)。 - -**D3 —— 迁移链(`@objectstack/spec` 新增 `migrations/`)。** 一条永久、有序、按协议大版本组织的迁移链。每个大版本的步骤由两个来源合成:**已毕业的转换**(P1 的 D2 转换条目从加载路径退役后,以其 id 引用复用,作为该大版本的“机械变换”,转换与 fixture 不重复)和**语义变更**(无损映射无法表达的破坏,以结构化 TODO —— surface / 原因 / 验收标准 —— 呈现,而非静默或有损自动改写)。 - -- `applyMetaMigrations(stack, fromMajor, toMajor?)` 折叠 `fromMajor+1 … 当前` 的步骤,一次性把任意历史大版本的元数据迁到当前;跨大版本是设计主场景。每一跳(hop)都做检查点,便于逐跳验证与二分定位。**时效性从不承重** —— 迟到的使用方到达时重放链即可。 -- `composeMigrationChain`、`MigrationFloorError`,以及显式的发布策略旋钮 `MIGRATION_SUPPORT_FLOOR`(链能回溯到多久)。 -- 种子:protocol 11 步骤 —— 机械项为三条已毕业的 P1 转换;语义项为两个真实存量窗口:`titleFormat` 复合模板 → `nameField`(需公式字段,非无损)、SQL 式 RLS 谓词 → 规范 CEL。 -- CI 把整条链当作链来测:每条转换的 old-shape fixture 从支持下限重放到目标大版本,组合性破坏即发布阻断。 - -**D4 —— `spec-changes.json` 变更清单。** Zod 定义的机器可读记录 `{ from, to, added, converted, migrated, removed }`,由 `composeSpecChanges(from, to, surfaceDiff?)` 跨大版本折叠转换表(D2)与迁移集(D3),并与发布期 api-surface 差异连接。按大版本的清单可组合成单一 `from→to` 视图;后续生成式升级指南与 P3 的 MCP `spec_changes` 工具都是它的投影。 - -**CLI —— `objectstack migrate meta --from N`。** 重放迁移链:展示生成的、经 `ObjectStackDefinitionSchema` 校验的机械变更 diff(逐条 `path: 旧 → 新`)与需人工判断的语义 TODO;`--to`、`--step`(逐跳检查点)、`--out `(把规范化后的栈写为可 diff 的 JSON 快照)、`--json`。命令不静默改写 TS 配置源(AST 改写不安全且有损)—— 输出供使用方 agent 审阅采纳,这正是握手错误(P0)所指向的命令。 - -`normalizeStackInput` 新增可选 `convert: false`(仅做 map→array,不跑 D2 转换),供 `migrate meta` 对原始编写源重放链、把每处改写归因到对应链步。新增导出纯增量,无破坏性移除。 diff --git a/.changeset/adr-0089-visibility-lint.md b/.changeset/adr-0089-visibility-lint.md deleted file mode 100644 index d2c8f4152..000000000 --- a/.changeset/adr-0089-visibility-lint.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -"@objectstack/lint": minor -"@objectstack/cli": minor ---- - -ADR-0089 D3b: add the `validateVisibilityPredicates` lint rule for conditional-visibility keys, wired into `os validate` and `os compile` as advisory warnings. - -Two rules, both `warning` (never fail the build): - -- `visibility-alias-deprecated` — a `visibleOn` (view form section/field) or `visibility` (page component) key in authored source. It still works — the schema normalizes it to `visibleWhen` at parse — but the canonical key is `visibleWhen`. Fix: rename the key (same CEL value). -- `visibility-root-mislayered` — a runtime view/page visibility predicate rooted at `data.` (the metadata-editing-form root). Runtime record surfaces bind `record` + `current_user` (pages also expose `page.`), so a `data.`-rooted predicate here never matches and the element renders unconditionally. Fix: use `record.`/`page.`. - -The rule runs on the **pre-parse** stack (like `validate-list-view-mode`) so it can see the deprecated alias the author actually wrote before the schema folds it into `visibleWhen`. diff --git a/.changeset/adr-0089-visible-when.md b/.changeset/adr-0089-visible-when.md deleted file mode 100644 index bf2c39e90..000000000 --- a/.changeset/adr-0089-visible-when.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -"@objectstack/spec": minor ---- - -ADR-0089: unify the conditional-visibility predicate under one canonical key, `visibleWhen`, across every layer (data field, view form section/field, page component). This aligns visibility with the existing `readonlyWhen` / `requiredWhen` family and the `conditionalRequired → requiredWhen` precedent. - -**Canonical key:** `visibleWhen` — a CEL predicate; the element is shown only when it is TRUE. The binding *root* is still set by the layer: runtime record forms and pages bind `record` + `current_user` (pages also expose `page.`); metadata-editing forms (`*.form.ts`) bind `data`. - -**Deprecated aliases (still accepted):** the view key `visibleOn` and the page key `visibility` are now `@deprecated`. Both are folded into `visibleWhen` **once, at the schema boundary** (a zod `.transform()`), so consumers only ever read `visibleWhen`. When both a canonical and an alias key are present, the canonical wins. - -Migration (L1 — no consumer action required; existing metadata keeps working): - -- View form section/field: `visibleOn: ""` → `visibleWhen: ""` -- Page component: `visibility: ""` → `visibleWhen: ""` -- Data field / field option: already `visibleWhen` — unchanged. - -Out of scope (unchanged): the boolean `visible` (Tab on/off), field `hidden`, gallery `visibleFields`, and unrelated `visibility` *enums* (feed / package / environment / agent). Aliases remain for the standard deprecation window and are removed in a future major. diff --git a/.changeset/claim-seed-ownership-skip-external.md b/.changeset/claim-seed-ownership-skip-external.md deleted file mode 100644 index f5b8dec9f..000000000 --- a/.changeset/claim-seed-ownership-skip-external.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@objectstack/plugin-security": patch ---- - -`claimSeedOwnership` now skips **external (federated) objects** — those with an `external` remote-table binding (ADR-0015) — the same way it already skips `managedBy` and `sys_*` objects. - -The seed-ownership backfill walks every registered object that exposes an `owner_id` column and re-owns its unowned rows to the first admin. Federated objects get `owner_id` auto-injected into their schema, so they passed the filter and the backfill issued `select id from where owner_id is null` against a read-only remote datasource whose table may not be provisioned yet at boot — producing startup errors like `Find operation failed … no such table: customers`. External objects are read-only (DDL forbidden, writes double-opt-in) and their ownership is not the platform's to reassign, so they are excluded from the scan entirely. diff --git a/.changeset/cli-spec-version-advisory.md b/.changeset/cli-spec-version-advisory.md deleted file mode 100644 index 46d24abfa..000000000 --- a/.changeset/cli-spec-version-advisory.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -'@objectstack/cli': minor ---- - -feat(cli): surface the migration guide when an app's specVersion trails the installed platform - -`os validate`, `os build`/`os compile`, and `os doctor` now emit a non-blocking -advisory when the app's authored `manifest.specVersion` declares an OLDER major -than the `@objectstack/spec` actually installed in its `node_modules` — pointing -at the curated per-major migration guide (`https://docs.objectstack.ai/docs/releases/v`, -guaranteed to exist by `scripts/check-release-notes.mjs`). - -This closes a discoverability gap for downstream/third-party apps: on a platform -upgrade the release notes were only reachable by reverse-engineering per-package -`CHANGELOG.md` files. The advisory now surfaces the guide at the exact moment the -upgrade is exercised. It never fails a build/validate and is not gated by -`--strict`; it also appears in the `--json` output as `specVersionGap`. Logic -lives in a new shared `checkSpecVersionGap()` util (unit-tested; installed -version injectable for tests). diff --git a/.changeset/console-60610531013f.md b/.changeset/console-60610531013f.md deleted file mode 100644 index 57e15e929..000000000 --- a/.changeset/console-60610531013f.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -"@objectstack/console": patch ---- - -Console (objectui) refreshed to `60610531013f`. Frontend changes in this range: - -- fix @object-ui/console -- fix(plugin-chatbot): build-result summary truncates on mobile instead of overflowing (#2493) (#2495) -- feat(grid,list,core,i18n): 导出文件名本地化 + 导入模板中文化修复 (#2491) -- fix(app-shell): package-owned permission set delete reads as reset, not delete (ADR-0094) (#2494) -- fix(console-ai): Live Canvas is full-screen opt-in preview on mobile, not a broken split (#2481) (#2492) -- feat(react,types): read canonical visibleWhen in renderers (ADR-0089) (#2490) -- fix(i18n): localize profile page, inline label objects, managed-by badges and record quick actions (#2489) -- fix(plugin-gantt): #2482 删除冗余行定位图标;「→」详情按钮改独立操作槽(不压结束列、24px 热区) (#2487) -- fix(console-ai): clear plaintext chat cache on logout / user switch (#2485) -- fix(plugin-grid): pin the row-actions column right so it survives horizontal scroll (#2486) -- feat(console-ai): mobile chat sheet bridges to full-page /ai — cleanly (ADR-0057 UX #2477) (#2483) -- fix(plugin-grid): stop row-action buttons clipping in the list actions column (#2484) -- fix(plugin-gantt): #2473 抽屉拉真实记录+真实schema、写回失败toast、锁定连线菜单禁用 (#2479) -- fix(plugin-list): show active search keyword on the toolbar search button (#2472) -- fix(console-ai): Studio dock remembers a collapse; folded layout side-by-side at xl (ADR-0057 UX, #2477) (#2478) -- feat(console-ai): edit-mode empty state distinct from magic-flow build (ADR-0057 A1.b) (#2476) -- fix(console-ai): A1.b switcher hides platform built-in apps (setup/account) (#2474) -- feat(console-ai): ChatDock follow-ups — mobile sheet, wide side-by-side, exact collapse landing (ADR-0057 P3) (#2470) - -objectui range: `95835581f1d0...60610531013f` diff --git a/.changeset/create-objectstack-current-major.md b/.changeset/create-objectstack-current-major.md deleted file mode 100644 index ad8a28961..000000000 --- a/.changeset/create-objectstack-current-major.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"create-objectstack": patch ---- - -Scaffolded projects now install the current framework release instead of a stale major. The bundled `blank` template had `^6.0.0` ranges frozen in while the registry was publishing 14.x, so `npm create objectstack` produced a project eight majors behind the docs — and the template's code no longer compiled against 14.x anyway (`Field.longText` removed, `api.rest` no longer a `defineStack` key, `sharingModel` now required by the ADR-0090 security gate). The template is updated to the current API, and the scaffolder now rewrites every `@objectstack/*` range in the generated `package.json` to `^` (all packages version in lockstep), so generated projects track the release even if the committed template drifts again. A consistency test ratchets the template's major and the README's template table against the registry. The template README also documents the seeded dev-admin sign-in that data-API curls need. diff --git a/.changeset/driver-sql-quiet-dlopen-probe.md b/.changeset/driver-sql-quiet-dlopen-probe.md deleted file mode 100644 index cb9915144..000000000 --- a/.changeset/driver-sql-quiet-dlopen-probe.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@objectstack/driver-sql": patch ---- - -Log a concise one-liner instead of the full `ERR_DLOPEN_FAILED` stack trace when native `better-sqlite3` cannot load (an ABI / `NODE_MODULE_VERSION` mismatch after a Node upgrade, or the native addon was never built). The native → wasm SQLite step-down is unchanged — this only stops a handled, non-fatal fallback from reading like a fatal crash in the dev console, and points at `pnpm rebuild better-sqlite3` for native speed. Any other `PRAGMA` failure keeps its full warning. diff --git a/.changeset/export-filename-and-system-field-i18n.md b/.changeset/export-filename-and-system-field-i18n.md deleted file mode 100644 index f46f425e3..000000000 --- a/.changeset/export-filename-and-system-field-i18n.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -'@objectstack/spec': patch -'@objectstack/rest': patch -'@objectstack/plugin-reports': patch ---- - -导出文件名本地化 + 系统字段标签内置多语言回退。 - -**`@objectstack/rest` — 导出下载文件名**:`GET /data/:object/export` 的 `Content-Disposition` 不再是裸的 `<对象名>.<扩展名>`,改为「对象显示名-时间戳」:ASCII 兜底用 API 名(`filename="contracts-20260714-153045.xlsx"`),本地化标签(如中文)按 RFC 5987/6266 编码进 `filename*=UTF-8''…`(浏览器直接下载得到 `合同-20260714-153045.xlsx`)。新增导出 `exportContentDisposition(objectName, label, ext, now?)`。 - -**`@objectstack/spec` — 系统字段标签回退**:ObjectQL 注册表给每个对象注入的系统字段(`owner_id`/`created_at`/`created_by`/`updated_at`/`updated_by`)只带英文标签,自定义对象又没有对应的翻译条目,导致中文界面的列表表头、导出文件、导入模板里漏出 "Owner"/"Created At" 等英文。`translateObject` 现内置这五个字段的 en/zh-CN/ja-JP/es-ES 标签表(措辞与平台生成的翻译包一致),仅当字段仍是注入的英文默认值时套用——作者自定义的标签绝不覆盖;无翻译包时也生效(`translateObject` 不再因缺 bundle 而提前返回,REST 元数据翻译路径同步放宽,缓存 ETag 本就按 locale 分键,无缓存串味风险)。 - -**`@objectstack/plugin-reports` — 附件文件名**:定时报表附件的文件名清洗从「非 ASCII 全部替换成 `_`」改为按 Unicode 字母/数字保留(`\p{L}\p{N}`),中文计划名不再变成一串下划线。 - -**`@objectstack/rest` — 导入接受翻译后的选项标签(导出↔导入闭环)**:导出与导入模板写出的是*翻译后*的选项标签(如 `待规划`),但导入强制转换只认作者原始 schema 的标签/值,导致用户把自己刚导出的本地化文件原样导回时 select 字段全部报 `invalid_option`。`prepareImportRequest` 新增 `localizeSchema` 钩子(REST 导入路由传入 `translateMetaItem`),把当前 locale 的翻译标签合并进字段选项作为匹配同义词——作者标签与选项 code 照常匹配,非法值照常报错,翻译失败时降级为仅作者标签匹配。新增导出 `mergeLocalizedOptionSynonyms(metaMap, localizedMetaMap)`。 diff --git a/.changeset/hook-error-message-format.md b/.changeset/hook-error-message-format.md deleted file mode 100644 index edbf14f06..000000000 --- a/.changeset/hook-error-message-format.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@objectstack/rest': patch -'@objectstack/client': patch ---- - -面向最终用户的错误消息去掉调试噪音:REST 数据路由(`mapDataError`)对沙箱 hook/action 抛错解包 `SandboxError.innerMessage`(并对丢失实例的情况正则剥离 `hook 'x' threw: Error: ` 包装,保留 `TypeError:` 等非默认错误名);客户端 SDK 的 `error.message` 不再拼 `[ObjectStack] CODE:` 前缀(code 仍在 `error.code` 上可编程读取)。控制台报错 toast 从 `[ObjectStack] hook 'pm_ref_base' threw: Error: 制作基地被…` 变为只显示业务消息本身;完整调试包装仍写入服务端日志。 diff --git a/.changeset/permission-set-customized-flag.md b/.changeset/permission-set-customized-flag.md deleted file mode 100644 index 867b0b551..000000000 --- a/.changeset/permission-set-customized-flag.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -"@objectstack/plugin-security": minor ---- - -Surface a `customized` flag on `sys_permission_set` so Setup can tell — at a glance — which packaged permission sets have an environment overlay (ADR-0094). - -- The env projector stamps `customized: true` on a `managed_by:'package'` row while an overlay shadows its shipped baseline, and clears it when the overlay is removed (the data-door "reset"). Env-authored rows are never flagged (an env set is the definition, not a customization of one). -- The new read-only boolean field is added to `sys_permission_set` and to the "All" Setup list view (alongside `managed_by`), so a packaged-but-customized set is visible without opening the Studio layered diff. diff --git a/.changeset/permission-set-overlay-customization.md b/.changeset/permission-set-overlay-customization.md deleted file mode 100644 index 17df537ef..000000000 --- a/.changeset/permission-set-overlay-customization.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -"@objectstack/plugin-security": minor ---- - -Package-owned permission sets are now customizable through the standard environment metadata overlay (ADR-0094 D5, revised — closes framework#2898 by making the overlay FIRST-CLASS instead of rejecting it). - -- An env-scope `saveMetaItem('permission', …)` on a package-owned set is a real customization: the awaited projector applies the effective (overlay-wins) body to the `sys_permission_set` record while preserving its `managed_by:'package'` + `package_id` provenance, and the evaluator enforces it. -- A data-door edit of a packaged set (Setup PATCH) is translated into exactly that overlay — no more flat 403; a data-door "delete" removes the overlay and RESETS the record to the shipped declaration (the row survives). -- The ADR-0086 two-doors data gate narrows to what stays structurally true: forging package provenance through the admin door remains refused, as do the lifecycle ops with no overlay translation (`transfer`/`restore`/`purge`) on package rows; kernels without a metadata overlay layer keep the legacy full refusal. -- Cross-package roles compose via positions (bind several packages' sets); overlays narrow. Rationale: rejecting the overlay would make `permission` the one type whose declared `allowOrgOverride: true` is a lie, and clone-to-customize forks away from vendor baseline updates. - -Note the standard overlay trade, now applicable to permission sets: while an overlay pins a set, later vendor baseline changes (including tightenings) don't take effect for that name until the overlay is reset or re-authored — surfaced by the Studio layered diff and covered by ADR-0091 recertification. - -Also lands a dogfood proof (`showcase-permission-projection`) covering the full ADR-0094 invariant set — write-through, awaited projection, declared-set edit becomes an enforced overlay, package-set customize/reset lifecycle — registered in the liveness proof registry. diff --git a/.changeset/permission-set-pure-projection.md b/.changeset/permission-set-pure-projection.md deleted file mode 100644 index 2a5d24fbb..000000000 --- a/.changeset/permission-set-pure-projection.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -"@objectstack/metadata-protocol": minor -"@objectstack/plugin-security": minor ---- - -Make the `sys_permission_set` data record a pure projection of the metadata layer (ADR-0094; framework#2875) — one authoritative store for permission-set definitions, retiring the two-store split-brain behind the #2857 display-freshness class. - -- **`@objectstack/metadata-protocol`**: new `registerMutationProjector(type, fn)` — an awaited, best-effort per-type hook invoked after persistence inside `saveMetaItem` / `publishMetaItem` / `deleteMetaItem`, so a derived data-plane read-model is already consistent when the write returns (outcome surfaced as `projectionApplied` on the response). Complements the fire-and-forget `onMetadataMutation` listeners. -- **`@objectstack/plugin-security`**: every non-system data-door write on `sys_permission_set` (Setup CRUD, bulk imports, any ObjectQL path) is redirected into the metadata store by an engine middleware; the record is written only by the projector. Boot reconciliation projects env overlays onto records (Studio-created sets now appear in Setup), backfills legacy data-door-only records into metadata once, and re-projects drifted records from the effective body (metadata wins). The projector also syncs the metadata manager's in-memory `permission` entry, so evaluator resolution and the Setup display can no longer disagree. - -Behavior changes: "deleting" an artifact-backed permission set through the data door now resets it to its declared body instead of removing the row; renaming a set through the data door is rejected (`400`) — clone to a new name instead; record edits that predate this change and are shadowed by a metadata definition are discarded (loud warning) at first boot, since they were never enforced. - -Moved exports (from `@objectstack/plugin-security`): `upsertEnvPermissionSet` now lives in `permission-set-projection.js` (still re-exported from the package root) and **creates** missing records; `projectEnvPermissionOnMutation` / `subscribeEnvPermissionProjection` are replaced by `projectPermissionMutation` / `registerPermissionSetProjection`. diff --git a/.changeset/sys-tables-account-i18n.md b/.changeset/sys-tables-account-i18n.md deleted file mode 100644 index 8ada8162f..000000000 --- a/.changeset/sys-tables-account-i18n.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -'@objectstack/spec': minor -'@objectstack/cli': minor -'@objectstack/platform-objects': patch -'@objectstack/service-messaging': minor ---- - -i18n: translate the system account/messaging surfaces end to end. - -- **spec**: `ObjectTranslationDataSchema` / `ObjectTranslationNodeSchema` now - accept `_views..emptyState.{title,message}` so list-view empty states - are translatable (contract-first for the extractor below). -- **cli**: `os i18n extract` emits `_views..emptyState` keys when a view - declares an empty state. -- **platform-objects**: fill every missing zh-CN/ja-JP/es-ES translation for - `sys_user`, `sys_organization` and `sys_business_unit` (fields, options, - views, actions); replace the hardcoded English tab/section/action labels in - the `sys_user`, `sys_organization` and `sys_position` detail pages with - inline i18n label objects, and route the user Security tab through - `record:quick_actions` so object action labels localize. -- **service-messaging**: new ADR-0029 D8 translation bundle - (`MessagingTranslations`) covering the seven `sys_*` messaging objects - (inbox message, receipts, deliveries, preferences, subscriptions, templates, - HTTP deliveries), registered on `kernel:ready`; zh-CN is fully translated - and ja-JP/es-ES cover `sys_inbox_message` (incl. the `mine` view empty - state). diff --git a/.changeset/validate-security-posture-parity.md b/.changeset/validate-security-posture-parity.md deleted file mode 100644 index 6284e44a3..000000000 --- a/.changeset/validate-security-posture-parity.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@objectstack/cli": patch ---- - -`os validate` now runs the ADR-0090 D7 security posture check, restoring its documented contract of being the artifact-free run of the same gates as `os compile`/`os build`. Previously a stack could pass `validate` and then fail the build — e.g. a custom object with no explicit `sharingModel` (OWD), which the posture linter rejects at compile. Error findings gate validation; advisory findings print as warnings (and join the `--json` warnings array). diff --git a/.changeset/wasm-sqlite-durability.md b/.changeset/wasm-sqlite-durability.md deleted file mode 100644 index 1b7f3919c..000000000 --- a/.changeset/wasm-sqlite-durability.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -"@objectstack/driver-sqlite-wasm": patch ---- - -Harden the wasm SQLite driver (the dev fallback used when native `better-sqlite3` has an ABI mismatch) against three failure modes that spammed `pnpm dev`: - -- **Atomic flushes.** The database was persisted with a plain `writeFile` that truncates-then-streams in place, so a process killed mid-write (a dev-server restart, Ctrl-C, or crash — likely under `on-write`, where every dispatcher tick flushes) left a torn file that sql.js rejected on the next boot with `database disk image is malformed`. Flushes now write to a sibling temp file, `fsync`, and atomically `rename()` over the target, so a reader always sees a complete image. -- **Corruption self-heal.** When an on-disk image is already corrupt, the driver now detects it at open (via `PRAGMA quick_check`), quarantines the bad file to `.corrupt-`, and boots on a fresh database — instead of failing every query forever with no path to recovery. -- **`undefined` bindings.** A raw `undefined` binding made sql.js `throw` a plain string (`Wrong API use : tried to bind a value of an unknown type (undefined).`), which aborted the write and logged as a garbled char-indexed object. `undefined` is now coerced to SQL `NULL`, matching the driver's `useNullAsDefault` semantics and the native better-sqlite3 path. diff --git a/examples/app-crm/CHANGELOG.md b/examples/app-crm/CHANGELOG.md index dbe9234d5..5f4e894df 100644 --- a/examples/app-crm/CHANGELOG.md +++ b/examples/app-crm/CHANGELOG.md @@ -1,5 +1,17 @@ # @objectstack/example-crm +## 4.0.86 + +### Patch Changes + +- Updated dependencies [16b4bf6] +- Updated dependencies [16b4bf6] +- Updated dependencies [10e8983] +- Updated dependencies [607aaf4] +- Updated dependencies [bb71321] + - @objectstack/spec@14.8.0 + - @objectstack/runtime@14.8.0 + ## 4.0.85 ### Patch Changes diff --git a/examples/app-crm/package.json b/examples/app-crm/package.json index 89b080e47..0ecf8dac3 100644 --- a/examples/app-crm/package.json +++ b/examples/app-crm/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/example-crm", - "version": "4.0.85", + "version": "4.0.86", "description": "Minimal CRM example — a smoke-test workspace that exercises the metadata loading pipeline (objects → views → app → dashboard → hook → flow → seed). For a full-featured enterprise CRM see https://github.com/objectstack-ai/hotcrm.", "license": "Apache-2.0", "private": true, diff --git a/examples/app-showcase/CHANGELOG.md b/examples/app-showcase/CHANGELOG.md index d12842193..83f58c0ca 100644 --- a/examples/app-showcase/CHANGELOG.md +++ b/examples/app-showcase/CHANGELOG.md @@ -1,5 +1,23 @@ # @objectstack/example-showcase +## 0.3.8 + +### Patch Changes + +- Updated dependencies [16b4bf6] +- Updated dependencies [16b4bf6] +- Updated dependencies [10e8983] +- Updated dependencies [84650c5] +- Updated dependencies [607aaf4] +- Updated dependencies [bb71321] + - @objectstack/spec@14.8.0 + - @objectstack/driver-sql@14.8.0 + - @objectstack/cloud-connection@14.8.0 + - @objectstack/connector-rest@14.8.0 + - @objectstack/connector-slack@14.8.0 + - @objectstack/runtime@14.8.0 + - @objectstack/service-datasource@14.8.0 + ## 0.3.7 ### Patch Changes diff --git a/examples/app-showcase/package.json b/examples/app-showcase/package.json index 36dc507dd..1901d4ce1 100644 --- a/examples/app-showcase/package.json +++ b/examples/app-showcase/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/example-showcase", - "version": "0.3.7", + "version": "0.3.8", "description": "Kitchen-sink showcase workspace — exercises every metadata type, every view type, every chart type, and the major end-to-end capability chains (security, automation, analytics). Built for demonstration, debugging, and coverage-driven verification.", "license": "Apache-2.0", "private": true, diff --git a/examples/app-todo/CHANGELOG.md b/examples/app-todo/CHANGELOG.md index f2d12c976..e67b169d6 100644 --- a/examples/app-todo/CHANGELOG.md +++ b/examples/app-todo/CHANGELOG.md @@ -1,5 +1,26 @@ # @objectstack/example-todo +## 4.0.86 + +### Patch Changes + +- Updated dependencies [16b4bf6] +- Updated dependencies [16b4bf6] +- Updated dependencies [10e8983] +- Updated dependencies [607aaf4] +- Updated dependencies [e46169c] +- Updated dependencies [bb71321] +- Updated dependencies [a199626] + - @objectstack/spec@14.8.0 + - @objectstack/client@14.8.0 + - @objectstack/driver-sqlite-wasm@14.8.0 + - @objectstack/mcp@14.8.0 + - @objectstack/metadata@14.8.0 + - @objectstack/objectql@14.8.0 + - @objectstack/knowledge-memory@14.8.0 + - @objectstack/runtime@14.8.0 + - @objectstack/service-knowledge@14.8.0 + ## 4.0.85 ### Patch Changes diff --git a/examples/app-todo/package.json b/examples/app-todo/package.json index 10a5151d8..237ed9236 100644 --- a/examples/app-todo/package.json +++ b/examples/app-todo/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/example-todo", - "version": "4.0.85", + "version": "4.0.86", "description": "Example Todo App using ObjectStack Protocol", "license": "Apache-2.0", "private": true, diff --git a/examples/embed-objectql/CHANGELOG.md b/examples/embed-objectql/CHANGELOG.md index 7063b3734..922ad7db2 100644 --- a/examples/embed-objectql/CHANGELOG.md +++ b/examples/embed-objectql/CHANGELOG.md @@ -1,5 +1,18 @@ # @objectstack/example-embed-objectql +## 0.0.26 + +### Patch Changes + +- Updated dependencies [16b4bf6] +- Updated dependencies [16b4bf6] +- Updated dependencies [10e8983] +- Updated dependencies [607aaf4] +- Updated dependencies [bb71321] + - @objectstack/spec@14.8.0 + - @objectstack/objectql@14.8.0 + - @objectstack/driver-memory@14.8.0 + ## 0.0.25 ### Patch Changes diff --git a/examples/embed-objectql/package.json b/examples/embed-objectql/package.json index 45830b460..6f1364e88 100644 --- a/examples/embed-objectql/package.json +++ b/examples/embed-objectql/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/example-embed-objectql", - "version": "0.0.25", + "version": "0.0.26", "private": true, "description": "Embed the ObjectQL engine as a plain library via @objectstack/objectql/core — no kernel, no plugins, no metadata protocol (ADR-0076).", "type": "module", diff --git a/packages/adapters/hono/CHANGELOG.md b/packages/adapters/hono/CHANGELOG.md index 7c39cf2b0..32351f0d1 100644 --- a/packages/adapters/hono/CHANGELOG.md +++ b/packages/adapters/hono/CHANGELOG.md @@ -1,5 +1,13 @@ # @objectstack/hono +## 14.8.0 + +### Patch Changes + +- @objectstack/plugin-hono-server@14.8.0 +- @objectstack/runtime@14.8.0 +- @objectstack/types@14.8.0 + ## 14.7.0 ### Patch Changes diff --git a/packages/adapters/hono/package.json b/packages/adapters/hono/package.json index 1ce679419..1e22e3c20 100644 --- a/packages/adapters/hono/package.json +++ b/packages/adapters/hono/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/hono", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/apps/account/CHANGELOG.md b/packages/apps/account/CHANGELOG.md index b89af7d27..efa040414 100644 --- a/packages/apps/account/CHANGELOG.md +++ b/packages/apps/account/CHANGELOG.md @@ -1,5 +1,17 @@ # @objectstack/account +## 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 + ## 14.7.0 ### Patch Changes diff --git a/packages/apps/account/package.json b/packages/apps/account/package.json index 091af1bde..5ef314d8d 100644 --- a/packages/apps/account/package.json +++ b/packages/apps/account/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/account", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "ObjectStack Account — the end-user account/self-service console app, packaged as its own ObjectStack app package (ADR-0048: one app per package).", "main": "dist/index.js", diff --git a/packages/apps/setup/CHANGELOG.md b/packages/apps/setup/CHANGELOG.md index 35e0fe70f..70dc872e0 100644 --- a/packages/apps/setup/CHANGELOG.md +++ b/packages/apps/setup/CHANGELOG.md @@ -1,5 +1,17 @@ # @objectstack/setup +## 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 + ## 14.7.0 ### Patch Changes diff --git a/packages/apps/setup/package.json b/packages/apps/setup/package.json index f45ea58e3..0068aed3f 100644 --- a/packages/apps/setup/package.json +++ b/packages/apps/setup/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/setup", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "ObjectStack Setup — the platform administration app, packaged as its own ObjectStack app package (ADR-0048: one app per package).", "main": "dist/index.js", diff --git a/packages/apps/studio/CHANGELOG.md b/packages/apps/studio/CHANGELOG.md index 5cccae45e..acf5453e5 100644 --- a/packages/apps/studio/CHANGELOG.md +++ b/packages/apps/studio/CHANGELOG.md @@ -1,5 +1,17 @@ # @objectstack/studio +## 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 + ## 14.7.0 ### Patch Changes diff --git a/packages/apps/studio/package.json b/packages/apps/studio/package.json index f76c16c27..794253893 100644 --- a/packages/apps/studio/package.json +++ b/packages/apps/studio/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/studio", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "ObjectStack Studio — the metadata builder app, packaged as its own ObjectStack app package (ADR-0048: one app per package).", "main": "dist/index.js", diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index 65cb7b79b..7cef17a9a 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,133 @@ # @objectstack/cli +## 14.8.0 + +### Minor Changes + +- 16b4bf6: ADR-0087 P2:可重放迁移链 + 机器可读变更清单(D3 / D4)。 + + **D3 —— 迁移链(`@objectstack/spec` 新增 `migrations/`)。** 一条永久、有序、按协议大版本组织的迁移链。每个大版本的步骤由两个来源合成:**已毕业的转换**(P1 的 D2 转换条目从加载路径退役后,以其 id 引用复用,作为该大版本的“机械变换”,转换与 fixture 不重复)和**语义变更**(无损映射无法表达的破坏,以结构化 TODO —— surface / 原因 / 验收标准 —— 呈现,而非静默或有损自动改写)。 + + - `applyMetaMigrations(stack, fromMajor, toMajor?)` 折叠 `fromMajor+1 … 当前` 的步骤,一次性把任意历史大版本的元数据迁到当前;跨大版本是设计主场景。每一跳(hop)都做检查点,便于逐跳验证与二分定位。**时效性从不承重** —— 迟到的使用方到达时重放链即可。 + - `composeMigrationChain`、`MigrationFloorError`,以及显式的发布策略旋钮 `MIGRATION_SUPPORT_FLOOR`(链能回溯到多久)。 + - 种子:protocol 11 步骤 —— 机械项为三条已毕业的 P1 转换;语义项为两个真实存量窗口:`titleFormat` 复合模板 → `nameField`(需公式字段,非无损)、SQL 式 RLS 谓词 → 规范 CEL。 + - CI 把整条链当作链来测:每条转换的 old-shape fixture 从支持下限重放到目标大版本,组合性破坏即发布阻断。 + + **D4 —— `spec-changes.json` 变更清单。** Zod 定义的机器可读记录 `{ from, to, added, converted, migrated, removed }`,由 `composeSpecChanges(from, to, surfaceDiff?)` 跨大版本折叠转换表(D2)与迁移集(D3),并与发布期 api-surface 差异连接。按大版本的清单可组合成单一 `from→to` 视图;后续生成式升级指南与 P3 的 MCP `spec_changes` 工具都是它的投影。 + + **CLI —— `objectstack migrate meta --from N`。** 重放迁移链:展示生成的、经 `ObjectStackDefinitionSchema` 校验的机械变更 diff(逐条 `path: 旧 → 新`)与需人工判断的语义 TODO;`--to`、`--step`(逐跳检查点)、`--out `(把规范化后的栈写为可 diff 的 JSON 快照)、`--json`。命令不静默改写 TS 配置源(AST 改写不安全且有损)—— 输出供使用方 agent 审阅采纳,这正是握手错误(P0)所指向的命令。 + + `normalizeStackInput` 新增可选 `convert: false`(仅做 map→array,不跑 D2 转换),供 `migrate meta` 对原始编写源重放链、把每处改写归因到对应链步。新增导出纯增量,无破坏性移除。 + +- 10e8983: ADR-0089 D3b: add the `validateVisibilityPredicates` lint rule for conditional-visibility keys, wired into `os validate` and `os compile` as advisory warnings. + + Two rules, both `warning` (never fail the build): + + - `visibility-alias-deprecated` — a `visibleOn` (view form section/field) or `visibility` (page component) key in authored source. It still works — the schema normalizes it to `visibleWhen` at parse — but the canonical key is `visibleWhen`. Fix: rename the key (same CEL value). + - `visibility-root-mislayered` — a runtime view/page visibility predicate rooted at `data.` (the metadata-editing-form root). Runtime record surfaces bind `record` + `current_user` (pages also expose `page.`), so a `data.`-rooted predicate here never matches and the element renders unconditionally. Fix: use `record.`/`page.`. + + The rule runs on the **pre-parse** stack (like `validate-list-view-mode`) so it can see the deprecated alias the author actually wrote before the schema folds it into `visibleWhen`. + +- 5540ced: feat(cli): surface the migration guide when an app's specVersion trails the installed platform + + `os validate`, `os build`/`os compile`, and `os doctor` now emit a non-blocking + advisory when the app's authored `manifest.specVersion` declares an OLDER major + than the `@objectstack/spec` actually installed in its `node_modules` — pointing + at the curated per-major migration guide (`https://docs.objectstack.ai/docs/releases/v`, + guaranteed to exist by `scripts/check-release-notes.mjs`). + + This closes a discoverability gap for downstream/third-party apps: on a platform + upgrade the release notes were only reachable by reverse-engineering per-package + `CHANGELOG.md` files. The advisory now surfaces the guide at the exact moment the + upgrade is exercised. It never fails a build/validate and is not gated by + `--strict`; it also appears in the `--json` output as `specVersionGap`. Logic + lives in a new shared `checkSpecVersionGap()` util (unit-tested; installed + version injectable for tests). + +- bb71321: i18n: translate the system account/messaging surfaces end to end. + + - **spec**: `ObjectTranslationDataSchema` / `ObjectTranslationNodeSchema` now + accept `_views..emptyState.{title,message}` so list-view empty states + are translatable (contract-first for the extractor below). + - **cli**: `os i18n extract` emits `_views..emptyState` keys when a view + declares an empty state. + - **platform-objects**: fill every missing zh-CN/ja-JP/es-ES translation for + `sys_user`, `sys_organization` and `sys_business_unit` (fields, options, + views, actions); replace the hardcoded English tab/section/action labels in + the `sys_user`, `sys_organization` and `sys_position` detail pages with + inline i18n label objects, and route the user Security tab through + `record:quick_actions` so object action labels localize. + - **service-messaging**: new ADR-0029 D8 translation bundle + (`MessagingTranslations`) covering the seven `sys_*` messaging objects + (inbox message, receipts, deliveries, preferences, subscriptions, templates, + HTTP deliveries), registered on `kernel:ready`; zh-CN is fully translated + and ja-JP/es-ES cover `sys_inbox_message` (incl. the `mine` view empty + state). + +### Patch Changes + +- eaff014: `os validate` now runs the ADR-0090 D7 security posture check, restoring its documented contract of being the artifact-free run of the same gates as `os compile`/`os build`. Previously a stack could pass `validate` and then fail the build — e.g. a custom object with no explicit `sharingModel` (OWD), which the posture linter rejects at compile. Error findings gate validation; advisory findings print as warnings (and join the `--json` warnings array). +- Updated dependencies [16b4bf6] +- Updated dependencies [16b4bf6] +- Updated dependencies [10e8983] +- Updated dependencies [10e8983] +- Updated dependencies [a199626] +- Updated dependencies [d1b1a94] +- Updated dependencies [84650c5] +- Updated dependencies [607aaf4] +- Updated dependencies [e46169c] +- Updated dependencies [f0acf25] +- Updated dependencies [712328a] +- Updated dependencies [1dede32] +- Updated dependencies [bb71321] +- Updated dependencies [a199626] + - @objectstack/spec@14.8.0 + - @objectstack/service-automation@14.8.0 + - @objectstack/lint@14.8.0 + - @objectstack/plugin-security@14.8.0 + - @objectstack/console@14.8.0 + - @objectstack/driver-sql@14.8.0 + - @objectstack/rest@14.8.0 + - @objectstack/plugin-reports@14.8.0 + - @objectstack/client@14.8.0 + - @objectstack/platform-objects@14.8.0 + - @objectstack/service-messaging@14.8.0 + - @objectstack/driver-sqlite-wasm@14.8.0 + - @objectstack/account@14.8.0 + - @objectstack/setup@14.8.0 + - @objectstack/cloud-connection@14.8.0 + - @objectstack/core@14.8.0 + - @objectstack/formula@14.8.0 + - @objectstack/mcp@14.8.0 + - @objectstack/metadata@14.8.0 + - @objectstack/objectql@14.8.0 + - @objectstack/observability@14.8.0 + - @objectstack/driver-memory@14.8.0 + - @objectstack/driver-mongodb@14.8.0 + - @objectstack/plugin-approvals@14.8.0 + - @objectstack/plugin-audit@14.8.0 + - @objectstack/plugin-auth@14.8.0 + - @objectstack/plugin-email@14.8.0 + - @objectstack/plugin-hono-server@14.8.0 + - @objectstack/plugin-sharing@14.8.0 + - @objectstack/plugin-webhooks@14.8.0 + - @objectstack/runtime@14.8.0 + - @objectstack/service-analytics@14.8.0 + - @objectstack/service-cache@14.8.0 + - @objectstack/service-datasource@14.8.0 + - @objectstack/service-job@14.8.0 + - @objectstack/service-package@14.8.0 + - @objectstack/service-queue@14.8.0 + - @objectstack/service-realtime@14.8.0 + - @objectstack/service-settings@14.8.0 + - @objectstack/service-sms@14.8.0 + - @objectstack/service-storage@14.8.0 + - @objectstack/trigger-api@14.8.0 + - @objectstack/trigger-record-change@14.8.0 + - @objectstack/trigger-schedule@14.8.0 + - @objectstack/types@14.8.0 + - @objectstack/verify@14.8.0 + ## 14.7.0 ### Minor Changes diff --git a/packages/cli/package.json b/packages/cli/package.json index ed66d667d..235874bf9 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/cli", - "version": "14.7.0", + "version": "14.8.0", "description": "Command Line Interface for ObjectStack Protocol", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/client-react/CHANGELOG.md b/packages/client-react/CHANGELOG.md index 28259aa99..639d6206d 100644 --- a/packages/client-react/CHANGELOG.md +++ b/packages/client-react/CHANGELOG.md @@ -1,5 +1,19 @@ # @objectstack/client-react +## 14.8.0 + +### Patch Changes + +- Updated dependencies [16b4bf6] +- Updated dependencies [16b4bf6] +- Updated dependencies [10e8983] +- Updated dependencies [607aaf4] +- Updated dependencies [e46169c] +- Updated dependencies [bb71321] + - @objectstack/spec@14.8.0 + - @objectstack/client@14.8.0 + - @objectstack/core@14.8.0 + ## 14.7.0 ### Patch Changes diff --git a/packages/client-react/package.json b/packages/client-react/package.json index a35282bd1..07af98c79 100644 --- a/packages/client-react/package.json +++ b/packages/client-react/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/client-react", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "React hooks for ObjectStack Client SDK", "main": "dist/index.js", diff --git a/packages/client/CHANGELOG.md b/packages/client/CHANGELOG.md index cf1c1c3d9..996bfeb68 100644 --- a/packages/client/CHANGELOG.md +++ b/packages/client/CHANGELOG.md @@ -1,5 +1,18 @@ # @objectstack/client +## 14.8.0 + +### Patch Changes + +- e46169c: 面向最终用户的错误消息去掉调试噪音:REST 数据路由(`mapDataError`)对沙箱 hook/action 抛错解包 `SandboxError.innerMessage`(并对丢失实例的情况正则剥离 `hook 'x' threw: Error: ` 包装,保留 `TypeError:` 等非默认错误名);客户端 SDK 的 `error.message` 不再拼 `[ObjectStack] CODE:` 前缀(code 仍在 `error.code` 上可编程读取)。控制台报错 toast 从 `[ObjectStack] hook 'pm_ref_base' threw: Error: 制作基地被…` 变为只显示业务消息本身;完整调试包装仍写入服务端日志。 +- Updated dependencies [16b4bf6] +- Updated dependencies [16b4bf6] +- Updated dependencies [10e8983] +- Updated dependencies [607aaf4] +- Updated dependencies [bb71321] + - @objectstack/spec@14.8.0 + - @objectstack/core@14.8.0 + ## 14.7.0 ### Patch Changes diff --git a/packages/client/package.json b/packages/client/package.json index e9686ab60..283694c61 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/client", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "Official Client SDK for ObjectStack Protocol", "main": "dist/index.js", diff --git a/packages/cloud-connection/CHANGELOG.md b/packages/cloud-connection/CHANGELOG.md index 9bd641f30..0a538d1bd 100644 --- a/packages/cloud-connection/CHANGELOG.md +++ b/packages/cloud-connection/CHANGELOG.md @@ -1,5 +1,19 @@ # @objectstack/cloud-connection +## 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/core@14.8.0 + - @objectstack/runtime@14.8.0 + - @objectstack/types@14.8.0 + ## 14.7.0 ### Patch Changes diff --git a/packages/cloud-connection/package.json b/packages/cloud-connection/package.json index 9f1d70929..e3d22a3c5 100644 --- a/packages/cloud-connection/package.json +++ b/packages/cloud-connection/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/cloud-connection", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "Runtime-side client for an ObjectStack cloud control plane — marketplace browse proxy, install-local, device-code binding, org catalog and installed views, and the /api/v1/runtime/config discovery endpoint. Open mechanism (ADR-0008): the hub service, plan policy, and entitlements stay server-side.", "type": "module", diff --git a/packages/connectors/connector-mcp/CHANGELOG.md b/packages/connectors/connector-mcp/CHANGELOG.md index c1d4df179..79fb34dc0 100644 --- a/packages/connectors/connector-mcp/CHANGELOG.md +++ b/packages/connectors/connector-mcp/CHANGELOG.md @@ -1,5 +1,17 @@ # @objectstack/connector-mcp +## 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/core@14.8.0 + ## 14.7.0 ### Patch Changes diff --git a/packages/connectors/connector-mcp/package.json b/packages/connectors/connector-mcp/package.json index fe0a74c16..9b73bfe9b 100644 --- a/packages/connectors/connector-mcp/package.json +++ b/packages/connectors/connector-mcp/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/connector-mcp", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "Model Context Protocol (MCP) connector for ObjectStack — a generic adapter that turns any MCP server's tools into a connector's actions on the automation engine's connector registry (ADR-0024).", "main": "dist/index.js", diff --git a/packages/connectors/connector-openapi/CHANGELOG.md b/packages/connectors/connector-openapi/CHANGELOG.md index e929e2198..16e35d098 100644 --- a/packages/connectors/connector-openapi/CHANGELOG.md +++ b/packages/connectors/connector-openapi/CHANGELOG.md @@ -1,5 +1,17 @@ # @objectstack/connector-openapi +## 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/core@14.8.0 + ## 14.7.0 ### Patch Changes diff --git a/packages/connectors/connector-openapi/package.json b/packages/connectors/connector-openapi/package.json index b211f7b49..878c6b961 100644 --- a/packages/connectors/connector-openapi/package.json +++ b/packages/connectors/connector-openapi/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/connector-openapi", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "OpenAPI 3.x connector generator for ObjectStack — turns a declarative OpenAPI document into connector actions on the automation engine's registry, with a self-contained static-auth HTTP transport (ADR-0023).", "main": "dist/index.js", diff --git a/packages/connectors/connector-rest/CHANGELOG.md b/packages/connectors/connector-rest/CHANGELOG.md index d38df55f5..ba39f64b3 100644 --- a/packages/connectors/connector-rest/CHANGELOG.md +++ b/packages/connectors/connector-rest/CHANGELOG.md @@ -1,5 +1,17 @@ # @objectstack/connector-rest +## 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/core@14.8.0 + ## 14.7.0 ### Patch Changes diff --git a/packages/connectors/connector-rest/package.json b/packages/connectors/connector-rest/package.json index a44a6243b..d7b75fb66 100644 --- a/packages/connectors/connector-rest/package.json +++ b/packages/connectors/connector-rest/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/connector-rest", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "Generic REST connector for ObjectStack — the reference concrete connector that registers a `request` action on the automation engine's connector registry (ADR-0018 §Addendum).", "main": "dist/index.js", diff --git a/packages/connectors/connector-slack/CHANGELOG.md b/packages/connectors/connector-slack/CHANGELOG.md index f52c9c614..1f49bae47 100644 --- a/packages/connectors/connector-slack/CHANGELOG.md +++ b/packages/connectors/connector-slack/CHANGELOG.md @@ -1,5 +1,17 @@ # @objectstack/connector-slack +## 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/core@14.8.0 + ## 14.7.0 ### Patch Changes diff --git a/packages/connectors/connector-slack/package.json b/packages/connectors/connector-slack/package.json index 05f7a44ee..1b09f2781 100644 --- a/packages/connectors/connector-slack/package.json +++ b/packages/connectors/connector-slack/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/connector-slack", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "Slack Web API connector for ObjectStack — registers `chat.postMessage` / `chat.update` / `call` actions on the automation engine's connector registry (ADR-0018 §Addendum, ADR-0022).", "main": "dist/index.js", diff --git a/packages/console/CHANGELOG.md b/packages/console/CHANGELOG.md index 56dc031fa..51887e61f 100644 --- a/packages/console/CHANGELOG.md +++ b/packages/console/CHANGELOG.md @@ -1,5 +1,32 @@ # @objectstack/console +## 14.8.0 + +### Patch Changes + +- d1b1a94: Console (objectui) refreshed to `60610531013f`. Frontend changes in this range: + + - fix @object-ui/console + - fix(plugin-chatbot): build-result summary truncates on mobile instead of overflowing (#2493) (#2495) + - feat(grid,list,core,i18n): 导出文件名本地化 + 导入模板中文化修复 (#2491) + - fix(app-shell): package-owned permission set delete reads as reset, not delete (ADR-0094) (#2494) + - fix(console-ai): Live Canvas is full-screen opt-in preview on mobile, not a broken split (#2481) (#2492) + - feat(react,types): read canonical visibleWhen in renderers (ADR-0089) (#2490) + - fix(i18n): localize profile page, inline label objects, managed-by badges and record quick actions (#2489) + - fix(plugin-gantt): #2482 删除冗余行定位图标;「→」详情按钮改独立操作槽(不压结束列、24px 热区) (#2487) + - fix(console-ai): clear plaintext chat cache on logout / user switch (#2485) + - fix(plugin-grid): pin the row-actions column right so it survives horizontal scroll (#2486) + - feat(console-ai): mobile chat sheet bridges to full-page /ai — cleanly (ADR-0057 UX #2477) (#2483) + - fix(plugin-grid): stop row-action buttons clipping in the list actions column (#2484) + - fix(plugin-gantt): #2473 抽屉拉真实记录+真实 schema、写回失败 toast、锁定连线菜单禁用 (#2479) + - fix(plugin-list): show active search keyword on the toolbar search button (#2472) + - fix(console-ai): Studio dock remembers a collapse; folded layout side-by-side at xl (ADR-0057 UX, #2477) (#2478) + - feat(console-ai): edit-mode empty state distinct from magic-flow build (ADR-0057 A1.b) (#2476) + - fix(console-ai): A1.b switcher hides platform built-in apps (setup/account) (#2474) + - feat(console-ai): ChatDock follow-ups — mobile sheet, wide side-by-side, exact collapse landing (ADR-0057 P3) (#2470) + + objectui range: `95835581f1d0...60610531013f` + ## 14.7.0 ### Minor Changes diff --git a/packages/console/package.json b/packages/console/package.json index c1b11782a..613abc296 100644 --- a/packages/console/package.json +++ b/packages/console/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/console", - "version": "14.7.0", + "version": "14.8.0", "description": "Prebuilt Console SPA pinned to this @objectstack/framework release. Source of truth: @object-ui/console (https://github.com/objectstack-ai/objectui).", "license": "Apache-2.0", "homepage": "https://github.com/objectstack-ai/framework/tree/main/packages/console", diff --git a/packages/core/CHANGELOG.md b/packages/core/CHANGELOG.md index 68e0157dd..7542f928b 100644 --- a/packages/core/CHANGELOG.md +++ b/packages/core/CHANGELOG.md @@ -1,5 +1,16 @@ # @objectstack/core +## 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 + ## 14.7.0 ### Patch Changes diff --git a/packages/core/package.json b/packages/core/package.json index 48109d95c..f2457f3d4 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/core", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "Microkernel Core for ObjectStack", "type": "module", diff --git a/packages/create-objectstack/CHANGELOG.md b/packages/create-objectstack/CHANGELOG.md index 5eec78a71..f0d0b0143 100644 --- a/packages/create-objectstack/CHANGELOG.md +++ b/packages/create-objectstack/CHANGELOG.md @@ -1,5 +1,11 @@ # create-objectstack +## 14.8.0 + +### Patch Changes + +- eaff014: Scaffolded projects now install the current framework release instead of a stale major. The bundled `blank` template had `^6.0.0` ranges frozen in while the registry was publishing 14.x, so `npm create objectstack` produced a project eight majors behind the docs — and the template's code no longer compiled against 14.x anyway (`Field.longText` removed, `api.rest` no longer a `defineStack` key, `sharingModel` now required by the ADR-0090 security gate). The template is updated to the current API, and the scaffolder now rewrites every `@objectstack/*` range in the generated `package.json` to `^` (all packages version in lockstep), so generated projects track the release even if the committed template drifts again. A consistency test ratchets the template's major and the README's template table against the registry. The template README also documents the seeded dev-admin sign-in that data-API curls need. + ## 14.7.0 ## 14.6.0 diff --git a/packages/create-objectstack/package.json b/packages/create-objectstack/package.json index c1c37577d..b6620e985 100644 --- a/packages/create-objectstack/package.json +++ b/packages/create-objectstack/package.json @@ -1,7 +1,7 @@ { "name": "create-objectstack", - "version": "14.7.0", - "description": "Create a new ObjectStack project \u2014 npx create-objectstack", + "version": "14.8.0", + "description": "Create a new ObjectStack project — npx create-objectstack", "bin": { "create-objectstack": "./bin/create-objectstack.js" }, diff --git a/packages/dogfood/CHANGELOG.md b/packages/dogfood/CHANGELOG.md index 6e377ee94..2a979c1bb 100644 --- a/packages/dogfood/CHANGELOG.md +++ b/packages/dogfood/CHANGELOG.md @@ -1,5 +1,26 @@ # @objectstack/dogfood +## 0.0.34 + +### Patch Changes + +- Updated dependencies [16b4bf6] +- Updated dependencies [16b4bf6] +- Updated dependencies [10e8983] +- Updated dependencies [a199626] +- Updated dependencies [607aaf4] +- Updated dependencies [f0acf25] +- Updated dependencies [712328a] +- Updated dependencies [1dede32] +- Updated dependencies [bb71321] + - @objectstack/spec@14.8.0 + - @objectstack/plugin-security@14.8.0 + - @objectstack/example-crm@4.0.86 + - @objectstack/example-showcase@0.3.8 + - @objectstack/objectql@14.8.0 + - @objectstack/plugin-auth@14.8.0 + - @objectstack/verify@14.8.0 + ## 0.0.33 ### Patch Changes diff --git a/packages/dogfood/package.json b/packages/dogfood/package.json index b495be626..5cde52eb3 100644 --- a/packages/dogfood/package.json +++ b/packages/dogfood/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/dogfood", - "version": "0.0.33", + "version": "0.0.34", "private": true, "license": "Apache-2.0", "description": "Dogfood regression gate — hand-written golden tests that boot real example apps through @objectstack/verify's in-process HTTP stack, pinning historical runtime regressions (#2018 timezone bucketing, #1994 cross-owner RLS, #2004 field fidelity) that static checks miss.", diff --git a/packages/downstream-contract/CHANGELOG.md b/packages/downstream-contract/CHANGELOG.md index 225afc7eb..e74964196 100644 --- a/packages/downstream-contract/CHANGELOG.md +++ b/packages/downstream-contract/CHANGELOG.md @@ -1,5 +1,16 @@ # @objectstack/downstream-contract +## 0.0.32 + +### Patch Changes + +- Updated dependencies [16b4bf6] +- Updated dependencies [16b4bf6] +- Updated dependencies [10e8983] +- Updated dependencies [607aaf4] +- Updated dependencies [bb71321] + - @objectstack/spec@14.8.0 + ## 0.0.31 ### Patch Changes diff --git a/packages/downstream-contract/package.json b/packages/downstream-contract/package.json index a34a83b5a..3a3f1d118 100644 --- a/packages/downstream-contract/package.json +++ b/packages/downstream-contract/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/downstream-contract", - "version": "0.0.31", + "version": "0.0.32", "description": "Frozen third-party consumer fixture — a backward-compatibility gate for @objectstack/spec. Authored the way an external project on a published release authors metadata; if a spec change breaks it, that change is breaking (#2035).", "license": "Apache-2.0", "private": true, diff --git a/packages/formula/CHANGELOG.md b/packages/formula/CHANGELOG.md index 7b1ae25be..048eafa26 100644 --- a/packages/formula/CHANGELOG.md +++ b/packages/formula/CHANGELOG.md @@ -1,5 +1,16 @@ # @objectstack/formula +## 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 + ## 14.7.0 ### Patch Changes diff --git a/packages/formula/package.json b/packages/formula/package.json index aac82b893..4f88e17e7 100644 --- a/packages/formula/package.json +++ b/packages/formula/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/formula", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "ObjectStack canonical expression engine — CEL (cel-js) + ObjectStack stdlib + dialect registry", "main": "dist/index.js", diff --git a/packages/lint/CHANGELOG.md b/packages/lint/CHANGELOG.md index 5c91f48d2..d4c880c3b 100644 --- a/packages/lint/CHANGELOG.md +++ b/packages/lint/CHANGELOG.md @@ -1,5 +1,29 @@ # @objectstack/lint +## 14.8.0 + +### Minor Changes + +- 10e8983: ADR-0089 D3b: add the `validateVisibilityPredicates` lint rule for conditional-visibility keys, wired into `os validate` and `os compile` as advisory warnings. + + Two rules, both `warning` (never fail the build): + + - `visibility-alias-deprecated` — a `visibleOn` (view form section/field) or `visibility` (page component) key in authored source. It still works — the schema normalizes it to `visibleWhen` at parse — but the canonical key is `visibleWhen`. Fix: rename the key (same CEL value). + - `visibility-root-mislayered` — a runtime view/page visibility predicate rooted at `data.` (the metadata-editing-form root). Runtime record surfaces bind `record` + `current_user` (pages also expose `page.`), so a `data.`-rooted predicate here never matches and the element renders unconditionally. Fix: use `record.`/`page.`. + + The rule runs on the **pre-parse** stack (like `validate-list-view-mode`) so it can see the deprecated alias the author actually wrote before the schema folds it into `visibleWhen`. + +### Patch Changes + +- Updated dependencies [16b4bf6] +- Updated dependencies [16b4bf6] +- Updated dependencies [10e8983] +- Updated dependencies [607aaf4] +- Updated dependencies [bb71321] + - @objectstack/spec@14.8.0 + - @objectstack/formula@14.8.0 + - @objectstack/sdui-parser@14.8.0 + ## 14.7.0 ### Patch Changes diff --git a/packages/lint/package.json b/packages/lint/package.json index 5645b0ea5..6d32fe9c3 100644 --- a/packages/lint/package.json +++ b/packages/lint/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/lint", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "Static, build-time validation for an ObjectStack metadata graph — dashboard widget bindings, CEL/predicate expressions, and more. Pure (stack) => Issue[] functions shared by the CLI's `os validate` and any other consumer (e.g. AI authoring). Depends on @objectstack/spec; never on a runtime.", "type": "module", diff --git a/packages/mcp/CHANGELOG.md b/packages/mcp/CHANGELOG.md index 3b37afd5c..b1bad36e6 100644 --- a/packages/mcp/CHANGELOG.md +++ b/packages/mcp/CHANGELOG.md @@ -1,5 +1,18 @@ # @objectstack/plugin-mcp-server +## 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/core@14.8.0 + - @objectstack/types@14.8.0 + ## 14.7.0 ### Patch Changes diff --git a/packages/mcp/package.json b/packages/mcp/package.json index 5715e49f7..89bc18c63 100644 --- a/packages/mcp/package.json +++ b/packages/mcp/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/mcp", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "ObjectStack as an MCP server — exposes your app's objects (and AI tools) over the Model Context Protocol (stdio + Streamable HTTP)", "type": "module", diff --git a/packages/metadata-core/CHANGELOG.md b/packages/metadata-core/CHANGELOG.md index 87b3c3c27..a49089b24 100644 --- a/packages/metadata-core/CHANGELOG.md +++ b/packages/metadata-core/CHANGELOG.md @@ -1,5 +1,16 @@ # @objectstack/metadata-core +## 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 + ## 14.7.0 ### Patch Changes diff --git a/packages/metadata-core/package.json b/packages/metadata-core/package.json index da1771b4b..045034a28 100644 --- a/packages/metadata-core/package.json +++ b/packages/metadata-core/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/metadata-core", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "Metadata Repository contracts: types, canonicalization, errors, interface (ADR-0008).", "type": "module", diff --git a/packages/metadata-fs/CHANGELOG.md b/packages/metadata-fs/CHANGELOG.md index 4cd5a84e5..c6f51e11a 100644 --- a/packages/metadata-fs/CHANGELOG.md +++ b/packages/metadata-fs/CHANGELOG.md @@ -1,5 +1,11 @@ # @objectstack/metadata-fs +## 14.8.0 + +### Patch Changes + +- @objectstack/metadata-core@14.8.0 + ## 14.7.0 ### Patch Changes diff --git a/packages/metadata-fs/package.json b/packages/metadata-fs/package.json index e03a840fb..50c077e58 100644 --- a/packages/metadata-fs/package.json +++ b/packages/metadata-fs/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/metadata-fs", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "FileSystemRepository: Node-only Repository implementation backed by JSON files and a JSONL change log (ADR-0008).", "type": "module", diff --git a/packages/metadata-protocol/CHANGELOG.md b/packages/metadata-protocol/CHANGELOG.md index da612afd7..3a5d99fe4 100644 --- a/packages/metadata-protocol/CHANGELOG.md +++ b/packages/metadata-protocol/CHANGELOG.md @@ -1,5 +1,31 @@ # @objectstack/metadata-protocol +## 14.8.0 + +### Minor Changes + +- 1dede32: Make the `sys_permission_set` data record a pure projection of the metadata layer (ADR-0094; framework#2875) — one authoritative store for permission-set definitions, retiring the two-store split-brain behind the #2857 display-freshness class. + + - **`@objectstack/metadata-protocol`**: new `registerMutationProjector(type, fn)` — an awaited, best-effort per-type hook invoked after persistence inside `saveMetaItem` / `publishMetaItem` / `deleteMetaItem`, so a derived data-plane read-model is already consistent when the write returns (outcome surfaced as `projectionApplied` on the response). Complements the fire-and-forget `onMetadataMutation` listeners. + - **`@objectstack/plugin-security`**: every non-system data-door write on `sys_permission_set` (Setup CRUD, bulk imports, any ObjectQL path) is redirected into the metadata store by an engine middleware; the record is written only by the projector. Boot reconciliation projects env overlays onto records (Studio-created sets now appear in Setup), backfills legacy data-door-only records into metadata once, and re-projects drifted records from the effective body (metadata wins). The projector also syncs the metadata manager's in-memory `permission` entry, so evaluator resolution and the Setup display can no longer disagree. + + Behavior changes: "deleting" an artifact-backed permission set through the data door now resets it to its declared body instead of removing the row; renaming a set through the data door is rejected (`400`) — clone to a new name instead; record edits that predate this change and are shadowed by a metadata definition are discarded (loud warning) at first boot, since they were never enforced. + + Moved exports (from `@objectstack/plugin-security`): `upsertEnvPermissionSet` now lives in `permission-set-projection.js` (still re-exported from the package root) and **creates** missing records; `projectEnvPermissionOnMutation` / `subscribeEnvPermissionProjection` are replaced by `projectPermissionMutation` / `registerPermissionSetProjection`. + +### Patch Changes + +- Updated dependencies [16b4bf6] +- Updated dependencies [16b4bf6] +- Updated dependencies [10e8983] +- Updated dependencies [607aaf4] +- Updated dependencies [bb71321] + - @objectstack/spec@14.8.0 + - @objectstack/core@14.8.0 + - @objectstack/formula@14.8.0 + - @objectstack/metadata-core@14.8.0 + - @objectstack/types@14.8.0 + ## 14.7.0 ### Patch Changes diff --git a/packages/metadata-protocol/package.json b/packages/metadata-protocol/package.json index 5d3e83054..6fc9d92fd 100644 --- a/packages/metadata-protocol/package.json +++ b/packages/metadata-protocol/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/metadata-protocol", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "ObjectStack metadata management protocol: sys_metadata CRUD, draft/publish, locks, package ownership, diagnostics (ADR-0076).", "type": "module", diff --git a/packages/metadata/CHANGELOG.md b/packages/metadata/CHANGELOG.md index d833e6312..33883e86d 100644 --- a/packages/metadata/CHANGELOG.md +++ b/packages/metadata/CHANGELOG.md @@ -1,5 +1,21 @@ # @objectstack/metadata +## 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 diff --git a/packages/metadata/package.json b/packages/metadata/package.json index 057651729..609af947a 100644 --- a/packages/metadata/package.json +++ b/packages/metadata/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/metadata", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "Metadata loading, saving, and persistence for ObjectStack", "type": "module", diff --git a/packages/objectql/CHANGELOG.md b/packages/objectql/CHANGELOG.md index 5797e8a2b..89004b13b 100644 --- a/packages/objectql/CHANGELOG.md +++ b/packages/objectql/CHANGELOG.md @@ -1,5 +1,22 @@ # @objectstack/objectql +## 14.8.0 + +### Patch Changes + +- Updated dependencies [16b4bf6] +- Updated dependencies [16b4bf6] +- Updated dependencies [10e8983] +- Updated dependencies [607aaf4] +- Updated dependencies [1dede32] +- Updated dependencies [bb71321] + - @objectstack/spec@14.8.0 + - @objectstack/metadata-protocol@14.8.0 + - @objectstack/core@14.8.0 + - @objectstack/formula@14.8.0 + - @objectstack/metadata-core@14.8.0 + - @objectstack/types@14.8.0 + ## 14.7.0 ### Patch Changes diff --git a/packages/objectql/package.json b/packages/objectql/package.json index fd9db203d..22a30bab0 100644 --- a/packages/objectql/package.json +++ b/packages/objectql/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/objectql", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "Isomorphic ObjectQL Engine for ObjectStack", "main": "dist/index.js", diff --git a/packages/observability/CHANGELOG.md b/packages/observability/CHANGELOG.md index 066978d46..227469c11 100644 --- a/packages/observability/CHANGELOG.md +++ b/packages/observability/CHANGELOG.md @@ -1,5 +1,16 @@ # @objectstack/observability +## 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 + ## 14.7.0 ### Patch Changes diff --git a/packages/observability/package.json b/packages/observability/package.json index 9903b07a7..3800741b9 100644 --- a/packages/observability/package.json +++ b/packages/observability/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/observability", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "Observability contracts and exporters for ObjectStack — MetricsRegistry, ErrorReporter, Logger plus noop/console/OTLP-HTTP exporters. Deployment-target neutral; runtime and services depend on this so the same instrumentation works on Cloudflare Workers, Node, and self-hosted Kubernetes.", "type": "module", diff --git a/packages/platform-objects/CHANGELOG.md b/packages/platform-objects/CHANGELOG.md index 517b5472e..9dc5ad97b 100644 --- a/packages/platform-objects/CHANGELOG.md +++ b/packages/platform-objects/CHANGELOG.md @@ -1,5 +1,37 @@ # @objectstack/platform-objects +## 14.8.0 + +### Patch Changes + +- bb71321: i18n: translate the system account/messaging surfaces end to end. + + - **spec**: `ObjectTranslationDataSchema` / `ObjectTranslationNodeSchema` now + accept `_views..emptyState.{title,message}` so list-view empty states + are translatable (contract-first for the extractor below). + - **cli**: `os i18n extract` emits `_views..emptyState` keys when a view + declares an empty state. + - **platform-objects**: fill every missing zh-CN/ja-JP/es-ES translation for + `sys_user`, `sys_organization` and `sys_business_unit` (fields, options, + views, actions); replace the hardcoded English tab/section/action labels in + the `sys_user`, `sys_organization` and `sys_position` detail pages with + inline i18n label objects, and route the user Security tab through + `record:quick_actions` so object action labels localize. + - **service-messaging**: new ADR-0029 D8 translation bundle + (`MessagingTranslations`) covering the seven `sys_*` messaging objects + (inbox message, receipts, deliveries, preferences, subscriptions, templates, + HTTP deliveries), registered on `kernel:ready`; zh-CN is fully translated + and ja-JP/es-ES cover `sys_inbox_message` (incl. the `mine` view empty + state). + +- Updated dependencies [16b4bf6] +- Updated dependencies [16b4bf6] +- Updated dependencies [10e8983] +- Updated dependencies [607aaf4] +- Updated dependencies [bb71321] + - @objectstack/spec@14.8.0 + - @objectstack/metadata-core@14.8.0 + ## 14.7.0 ### Patch Changes diff --git a/packages/platform-objects/package.json b/packages/platform-objects/package.json index 12874434f..4be92beb3 100644 --- a/packages/platform-objects/package.json +++ b/packages/platform-objects/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/platform-objects", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "Core platform object schemas for ObjectStack — identity, security, audit, tenant, and metadata objects", "main": "dist/index.js", diff --git a/packages/plugins/driver-memory/CHANGELOG.md b/packages/plugins/driver-memory/CHANGELOG.md index 19c89704d..b51452c0d 100644 --- a/packages/plugins/driver-memory/CHANGELOG.md +++ b/packages/plugins/driver-memory/CHANGELOG.md @@ -1,5 +1,17 @@ # @objectstack/driver-memory +## 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/core@14.8.0 + ## 14.7.0 ### Patch Changes diff --git a/packages/plugins/driver-memory/package.json b/packages/plugins/driver-memory/package.json index 0db527e62..487e91a9b 100644 --- a/packages/plugins/driver-memory/package.json +++ b/packages/plugins/driver-memory/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/driver-memory", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "In-Memory Driver for ObjectStack (Reference Implementation)", "main": "dist/index.js", diff --git a/packages/plugins/driver-mongodb/CHANGELOG.md b/packages/plugins/driver-mongodb/CHANGELOG.md index 5f6b92683..3eddca398 100644 --- a/packages/plugins/driver-mongodb/CHANGELOG.md +++ b/packages/plugins/driver-mongodb/CHANGELOG.md @@ -1,5 +1,17 @@ # @objectstack/driver-mongodb +## 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/core@14.8.0 + ## 14.7.0 ### Patch Changes diff --git a/packages/plugins/driver-mongodb/package.json b/packages/plugins/driver-mongodb/package.json index c4d2d8706..04302f431 100644 --- a/packages/plugins/driver-mongodb/package.json +++ b/packages/plugins/driver-mongodb/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/driver-mongodb", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "MongoDB Driver for ObjectStack - Native document database driver via official mongodb client", "main": "dist/index.js", diff --git a/packages/plugins/driver-sql/CHANGELOG.md b/packages/plugins/driver-sql/CHANGELOG.md index c78616a30..bdeed134a 100644 --- a/packages/plugins/driver-sql/CHANGELOG.md +++ b/packages/plugins/driver-sql/CHANGELOG.md @@ -1,5 +1,19 @@ # @objectstack/driver-sql +## 14.8.0 + +### Patch Changes + +- 84650c5: Log a concise one-liner instead of the full `ERR_DLOPEN_FAILED` stack trace when native `better-sqlite3` cannot load (an ABI / `NODE_MODULE_VERSION` mismatch after a Node upgrade, or the native addon was never built). The native → wasm SQLite step-down is unchanged — this only stops a handled, non-fatal fallback from reading like a fatal crash in the dev console, and points at `pnpm rebuild better-sqlite3` for native speed. Any other `PRAGMA` failure keeps its full warning. +- Updated dependencies [16b4bf6] +- Updated dependencies [16b4bf6] +- Updated dependencies [10e8983] +- Updated dependencies [607aaf4] +- Updated dependencies [bb71321] + - @objectstack/spec@14.8.0 + - @objectstack/core@14.8.0 + - @objectstack/types@14.8.0 + ## 14.7.0 ### Patch Changes diff --git a/packages/plugins/driver-sql/package.json b/packages/plugins/driver-sql/package.json index 0f2d6132b..e40738e8b 100644 --- a/packages/plugins/driver-sql/package.json +++ b/packages/plugins/driver-sql/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/driver-sql", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "SQL Driver for ObjectStack - Supports PostgreSQL, MySQL, SQLite via Knex", "main": "dist/index.js", diff --git a/packages/plugins/driver-sqlite-wasm/CHANGELOG.md b/packages/plugins/driver-sqlite-wasm/CHANGELOG.md index 0008fd963..2b8b1cd8b 100644 --- a/packages/plugins/driver-sqlite-wasm/CHANGELOG.md +++ b/packages/plugins/driver-sqlite-wasm/CHANGELOG.md @@ -1,5 +1,25 @@ # @objectstack/driver-sqlite-wasm +## 14.8.0 + +### Patch Changes + +- a199626: Harden the wasm SQLite driver (the dev fallback used when native `better-sqlite3` has an ABI mismatch) against three failure modes that spammed `pnpm dev`: + + - **Atomic flushes.** The database was persisted with a plain `writeFile` that truncates-then-streams in place, so a process killed mid-write (a dev-server restart, Ctrl-C, or crash — likely under `on-write`, where every dispatcher tick flushes) left a torn file that sql.js rejected on the next boot with `database disk image is malformed`. Flushes now write to a sibling temp file, `fsync`, and atomically `rename()` over the target, so a reader always sees a complete image. + - **Corruption self-heal.** When an on-disk image is already corrupt, the driver now detects it at open (via `PRAGMA quick_check`), quarantines the bad file to `.corrupt-`, and boots on a fresh database — instead of failing every query forever with no path to recovery. + - **`undefined` bindings.** A raw `undefined` binding made sql.js `throw` a plain string (`Wrong API use : tried to bind a value of an unknown type (undefined).`), which aborted the write and logged as a garbled char-indexed object. `undefined` is now coerced to SQL `NULL`, matching the driver's `useNullAsDefault` semantics and the native better-sqlite3 path. + +- Updated dependencies [16b4bf6] +- Updated dependencies [16b4bf6] +- Updated dependencies [10e8983] +- Updated dependencies [84650c5] +- Updated dependencies [607aaf4] +- Updated dependencies [bb71321] + - @objectstack/spec@14.8.0 + - @objectstack/driver-sql@14.8.0 + - @objectstack/core@14.8.0 + ## 14.7.0 ### Patch Changes diff --git a/packages/plugins/driver-sqlite-wasm/package.json b/packages/plugins/driver-sqlite-wasm/package.json index 8099523c8..3359e7b99 100644 --- a/packages/plugins/driver-sqlite-wasm/package.json +++ b/packages/plugins/driver-sqlite-wasm/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/driver-sqlite-wasm", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "WASM SQLite Driver for ObjectStack — runs in browser/WebContainer (StackBlitz) without native bindings", "keywords": [ diff --git a/packages/plugins/embedder-openai/CHANGELOG.md b/packages/plugins/embedder-openai/CHANGELOG.md index 6bade0181..c292fa62a 100644 --- a/packages/plugins/embedder-openai/CHANGELOG.md +++ b/packages/plugins/embedder-openai/CHANGELOG.md @@ -1,5 +1,16 @@ # @objectstack/embedder-openai +## 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 + ## 14.7.0 ### Patch Changes diff --git a/packages/plugins/embedder-openai/package.json b/packages/plugins/embedder-openai/package.json index ce0505185..2acceaef2 100644 --- a/packages/plugins/embedder-openai/package.json +++ b/packages/plugins/embedder-openai/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/embedder-openai", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "OpenAI-compatible embedder for ObjectStack — works against OpenAI, 阿里通义 DashScope, 智谱 BigModel, 硅基流动 SiliconFlow, 火山引擎 Doubao, MiniMax, Ollama, and any drop-in OpenAI-shape endpoint.", "main": "dist/index.js", diff --git a/packages/plugins/knowledge-memory/CHANGELOG.md b/packages/plugins/knowledge-memory/CHANGELOG.md index 3fd064749..df52d0d92 100644 --- a/packages/plugins/knowledge-memory/CHANGELOG.md +++ b/packages/plugins/knowledge-memory/CHANGELOG.md @@ -1,5 +1,18 @@ # @objectstack/knowledge-memory +## 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/core@14.8.0 + - @objectstack/service-knowledge@14.8.0 + ## 14.7.0 ### Patch Changes diff --git a/packages/plugins/knowledge-memory/package.json b/packages/plugins/knowledge-memory/package.json index c6ab51a90..dbc3a4e98 100644 --- a/packages/plugins/knowledge-memory/package.json +++ b/packages/plugins/knowledge-memory/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/knowledge-memory", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "In-memory knowledge adapter for ObjectStack (dev / test reference implementation).", "main": "dist/index.js", diff --git a/packages/plugins/knowledge-ragflow/CHANGELOG.md b/packages/plugins/knowledge-ragflow/CHANGELOG.md index bc850200c..5cf042f3a 100644 --- a/packages/plugins/knowledge-ragflow/CHANGELOG.md +++ b/packages/plugins/knowledge-ragflow/CHANGELOG.md @@ -1,5 +1,18 @@ # @objectstack/knowledge-ragflow +## 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/core@14.8.0 + - @objectstack/service-knowledge@14.8.0 + ## 14.7.0 ### Patch Changes diff --git a/packages/plugins/knowledge-ragflow/package.json b/packages/plugins/knowledge-ragflow/package.json index 86b164974..03ba8ed31 100644 --- a/packages/plugins/knowledge-ragflow/package.json +++ b/packages/plugins/knowledge-ragflow/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/knowledge-ragflow", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "RAGFlow knowledge adapter for ObjectStack — production-grade RAG via the Apache 2.0 RAGFlow REST API.", "main": "dist/index.js", diff --git a/packages/plugins/plugin-approvals/CHANGELOG.md b/packages/plugins/plugin-approvals/CHANGELOG.md index c3ef9b6da..67ba7e51e 100644 --- a/packages/plugins/plugin-approvals/CHANGELOG.md +++ b/packages/plugins/plugin-approvals/CHANGELOG.md @@ -1,5 +1,20 @@ # @objectstack/plugin-approvals +## 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/formula@14.8.0 + - @objectstack/metadata-core@14.8.0 + ## 14.7.0 ### Patch Changes diff --git a/packages/plugins/plugin-approvals/package.json b/packages/plugins/plugin-approvals/package.json index d79946ba9..a8801ec2d 100644 --- a/packages/plugins/plugin-approvals/package.json +++ b/packages/plugins/plugin-approvals/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-approvals", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "Multi-step approval engine for ObjectStack — sys_approval_process + sys_approval_request + sys_approval_action + IApprovalService.", "main": "dist/index.js", diff --git a/packages/plugins/plugin-audit/CHANGELOG.md b/packages/plugins/plugin-audit/CHANGELOG.md index dad47d38e..8cb736811 100644 --- a/packages/plugins/plugin-audit/CHANGELOG.md +++ b/packages/plugins/plugin-audit/CHANGELOG.md @@ -1,5 +1,18 @@ # @objectstack/plugin-audit +## 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 + ## 14.7.0 ### Patch Changes diff --git a/packages/plugins/plugin-audit/package.json b/packages/plugins/plugin-audit/package.json index 0e7b393db..6447f1854 100644 --- a/packages/plugins/plugin-audit/package.json +++ b/packages/plugins/plugin-audit/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-audit", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "Audit Plugin for ObjectStack — System audit log object and audit trail", "main": "dist/index.js", diff --git a/packages/plugins/plugin-auth/CHANGELOG.md b/packages/plugins/plugin-auth/CHANGELOG.md index f26caf8a0..d1da47c21 100644 --- a/packages/plugins/plugin-auth/CHANGELOG.md +++ b/packages/plugins/plugin-auth/CHANGELOG.md @@ -1,5 +1,21 @@ # Changelog +## 14.8.0 + +### Patch Changes + +- Updated dependencies [16b4bf6] +- Updated dependencies [16b4bf6] +- Updated dependencies [10e8983] +- Updated dependencies [607aaf4] +- Updated dependencies [e46169c] +- Updated dependencies [bb71321] + - @objectstack/spec@14.8.0 + - @objectstack/rest@14.8.0 + - @objectstack/platform-objects@14.8.0 + - @objectstack/core@14.8.0 + - @objectstack/types@14.8.0 + ## 14.7.0 ### Minor Changes diff --git a/packages/plugins/plugin-auth/package.json b/packages/plugins/plugin-auth/package.json index a923cc1fe..0aa7fff5e 100644 --- a/packages/plugins/plugin-auth/package.json +++ b/packages/plugins/plugin-auth/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-auth", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "Authentication & Identity Plugin for ObjectStack", "main": "dist/index.js", diff --git a/packages/plugins/plugin-dev/CHANGELOG.md b/packages/plugins/plugin-dev/CHANGELOG.md index 86d2a83fa..4d2424001 100644 --- a/packages/plugins/plugin-dev/CHANGELOG.md +++ b/packages/plugins/plugin-dev/CHANGELOG.md @@ -1,5 +1,33 @@ # @objectstack/plugin-dev +## 14.8.0 + +### Patch Changes + +- Updated dependencies [16b4bf6] +- Updated dependencies [16b4bf6] +- Updated dependencies [10e8983] +- Updated dependencies [a199626] +- Updated dependencies [607aaf4] +- Updated dependencies [e46169c] +- Updated dependencies [f0acf25] +- Updated dependencies [712328a] +- Updated dependencies [1dede32] +- Updated dependencies [bb71321] + - @objectstack/spec@14.8.0 + - @objectstack/plugin-security@14.8.0 + - @objectstack/rest@14.8.0 + - @objectstack/account@14.8.0 + - @objectstack/setup@14.8.0 + - @objectstack/core@14.8.0 + - @objectstack/objectql@14.8.0 + - @objectstack/driver-memory@14.8.0 + - @objectstack/plugin-auth@14.8.0 + - @objectstack/plugin-hono-server@14.8.0 + - @objectstack/runtime@14.8.0 + - @objectstack/service-i18n@14.8.0 + - @objectstack/types@14.8.0 + ## 14.7.0 ### Patch Changes diff --git a/packages/plugins/plugin-dev/package.json b/packages/plugins/plugin-dev/package.json index 94a83453c..69f94daee 100644 --- a/packages/plugins/plugin-dev/package.json +++ b/packages/plugins/plugin-dev/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-dev", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "Development Mode Plugin for ObjectStack — auto-enables all services with in-memory implementations", "main": "dist/index.js", diff --git a/packages/plugins/plugin-email/CHANGELOG.md b/packages/plugins/plugin-email/CHANGELOG.md index c67d11325..174072233 100644 --- a/packages/plugins/plugin-email/CHANGELOG.md +++ b/packages/plugins/plugin-email/CHANGELOG.md @@ -1,5 +1,19 @@ # @objectstack/plugin-email +## 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/formula@14.8.0 + ## 14.7.0 ### Patch Changes diff --git a/packages/plugins/plugin-email/package.json b/packages/plugins/plugin-email/package.json index 04f1aa879..5a17032b9 100644 --- a/packages/plugins/plugin-email/package.json +++ b/packages/plugins/plugin-email/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-email", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "Email service plugin for ObjectStack — IEmailService + transport-pluggable outbound delivery with sys_email persistence.", "main": "dist/index.js", diff --git a/packages/plugins/plugin-hono-server/CHANGELOG.md b/packages/plugins/plugin-hono-server/CHANGELOG.md index f47dd3188..f32f7d285 100644 --- a/packages/plugins/plugin-hono-server/CHANGELOG.md +++ b/packages/plugins/plugin-hono-server/CHANGELOG.md @@ -1,5 +1,19 @@ # @objectstack/plugin-hono-server +## 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/core@14.8.0 + - @objectstack/observability@14.8.0 + - @objectstack/types@14.8.0 + ## 14.7.0 ### Patch Changes diff --git a/packages/plugins/plugin-hono-server/package.json b/packages/plugins/plugin-hono-server/package.json index b96201341..634b10eb4 100644 --- a/packages/plugins/plugin-hono-server/package.json +++ b/packages/plugins/plugin-hono-server/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-hono-server", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "Standard Hono Server Adapter for ObjectStack Runtime", "main": "dist/index.js", diff --git a/packages/plugins/plugin-reports/CHANGELOG.md b/packages/plugins/plugin-reports/CHANGELOG.md index f3df623de..0bdb93e24 100644 --- a/packages/plugins/plugin-reports/CHANGELOG.md +++ b/packages/plugins/plugin-reports/CHANGELOG.md @@ -1,5 +1,28 @@ # @objectstack/plugin-reports +## 14.8.0 + +### Patch Changes + +- 607aaf4: 导出文件名本地化 + 系统字段标签内置多语言回退。 + + **`@objectstack/rest` — 导出下载文件名**:`GET /data/:object/export` 的 `Content-Disposition` 不再是裸的 `<对象名>.<扩展名>`,改为「对象显示名-时间戳」:ASCII 兜底用 API 名(`filename="contracts-20260714-153045.xlsx"`),本地化标签(如中文)按 RFC 5987/6266 编码进 `filename*=UTF-8''…`(浏览器直接下载得到 `合同-20260714-153045.xlsx`)。新增导出 `exportContentDisposition(objectName, label, ext, now?)`。 + + **`@objectstack/spec` — 系统字段标签回退**:ObjectQL 注册表给每个对象注入的系统字段(`owner_id`/`created_at`/`created_by`/`updated_at`/`updated_by`)只带英文标签,自定义对象又没有对应的翻译条目,导致中文界面的列表表头、导出文件、导入模板里漏出 "Owner"/"Created At" 等英文。`translateObject` 现内置这五个字段的 en/zh-CN/ja-JP/es-ES 标签表(措辞与平台生成的翻译包一致),仅当字段仍是注入的英文默认值时套用——作者自定义的标签绝不覆盖;无翻译包时也生效(`translateObject` 不再因缺 bundle 而提前返回,REST 元数据翻译路径同步放宽,缓存 ETag 本就按 locale 分键,无缓存串味风险)。 + + **`@objectstack/plugin-reports` — 附件文件名**:定时报表附件的文件名清洗从「非 ASCII 全部替换成 `_`」改为按 Unicode 字母/数字保留(`\p{L}\p{N}`),中文计划名不再变成一串下划线。 + + **`@objectstack/rest` — 导入接受翻译后的选项标签(导出 ↔ 导入闭环)**:导出与导入模板写出的是*翻译后*的选项标签(如 `待规划`),但导入强制转换只认作者原始 schema 的标签/值,导致用户把自己刚导出的本地化文件原样导回时 select 字段全部报 `invalid_option`。`prepareImportRequest` 新增 `localizeSchema` 钩子(REST 导入路由传入 `translateMetaItem`),把当前 locale 的翻译标签合并进字段选项作为匹配同义词——作者标签与选项 code 照常匹配,非法值照常报错,翻译失败时降级为仅作者标签匹配。新增导出 `mergeLocalizedOptionSynonyms(metaMap, localizedMetaMap)`。 + +- 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 + ## 14.7.0 ### Patch Changes diff --git a/packages/plugins/plugin-reports/package.json b/packages/plugins/plugin-reports/package.json index cc7ae0472..4e972b870 100644 --- a/packages/plugins/plugin-reports/package.json +++ b/packages/plugins/plugin-reports/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-reports", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "Saved reports + scheduled email digests for ObjectStack — sys_saved_report + sys_report_schedule + IReportService.", "main": "dist/index.js", diff --git a/packages/plugins/plugin-security/CHANGELOG.md b/packages/plugins/plugin-security/CHANGELOG.md index 3dcc41567..5b4f0c440 100644 --- a/packages/plugins/plugin-security/CHANGELOG.md +++ b/packages/plugins/plugin-security/CHANGELOG.md @@ -1,5 +1,50 @@ # @objectstack/plugin-security +## 14.8.0 + +### Minor Changes + +- f0acf25: Surface a `customized` flag on `sys_permission_set` so Setup can tell — at a glance — which packaged permission sets have an environment overlay (ADR-0094). + + - The env projector stamps `customized: true` on a `managed_by:'package'` row while an overlay shadows its shipped baseline, and clears it when the overlay is removed (the data-door "reset"). Env-authored rows are never flagged (an env set is the definition, not a customization of one). + - The new read-only boolean field is added to `sys_permission_set` and to the "All" Setup list view (alongside `managed_by`), so a packaged-but-customized set is visible without opening the Studio layered diff. + +- 712328a: Package-owned permission sets are now customizable through the standard environment metadata overlay (ADR-0094 D5, revised — closes framework#2898 by making the overlay FIRST-CLASS instead of rejecting it). + + - An env-scope `saveMetaItem('permission', …)` on a package-owned set is a real customization: the awaited projector applies the effective (overlay-wins) body to the `sys_permission_set` record while preserving its `managed_by:'package'` + `package_id` provenance, and the evaluator enforces it. + - A data-door edit of a packaged set (Setup PATCH) is translated into exactly that overlay — no more flat 403; a data-door "delete" removes the overlay and RESETS the record to the shipped declaration (the row survives). + - The ADR-0086 two-doors data gate narrows to what stays structurally true: forging package provenance through the admin door remains refused, as do the lifecycle ops with no overlay translation (`transfer`/`restore`/`purge`) on package rows; kernels without a metadata overlay layer keep the legacy full refusal. + - Cross-package roles compose via positions (bind several packages' sets); overlays narrow. Rationale: rejecting the overlay would make `permission` the one type whose declared `allowOrgOverride: true` is a lie, and clone-to-customize forks away from vendor baseline updates. + + Note the standard overlay trade, now applicable to permission sets: while an overlay pins a set, later vendor baseline changes (including tightenings) don't take effect for that name until the overlay is reset or re-authored — surfaced by the Studio layered diff and covered by ADR-0091 recertification. + + Also lands a dogfood proof (`showcase-permission-projection`) covering the full ADR-0094 invariant set — write-through, awaited projection, declared-set edit becomes an enforced overlay, package-set customize/reset lifecycle — registered in the liveness proof registry. + +- 1dede32: Make the `sys_permission_set` data record a pure projection of the metadata layer (ADR-0094; framework#2875) — one authoritative store for permission-set definitions, retiring the two-store split-brain behind the #2857 display-freshness class. + + - **`@objectstack/metadata-protocol`**: new `registerMutationProjector(type, fn)` — an awaited, best-effort per-type hook invoked after persistence inside `saveMetaItem` / `publishMetaItem` / `deleteMetaItem`, so a derived data-plane read-model is already consistent when the write returns (outcome surfaced as `projectionApplied` on the response). Complements the fire-and-forget `onMetadataMutation` listeners. + - **`@objectstack/plugin-security`**: every non-system data-door write on `sys_permission_set` (Setup CRUD, bulk imports, any ObjectQL path) is redirected into the metadata store by an engine middleware; the record is written only by the projector. Boot reconciliation projects env overlays onto records (Studio-created sets now appear in Setup), backfills legacy data-door-only records into metadata once, and re-projects drifted records from the effective body (metadata wins). The projector also syncs the metadata manager's in-memory `permission` entry, so evaluator resolution and the Setup display can no longer disagree. + + Behavior changes: "deleting" an artifact-backed permission set through the data door now resets it to its declared body instead of removing the row; renaming a set through the data door is rejected (`400`) — clone to a new name instead; record edits that predate this change and are shadowed by a metadata definition are discarded (loud warning) at first boot, since they were never enforced. + + Moved exports (from `@objectstack/plugin-security`): `upsertEnvPermissionSet` now lives in `permission-set-projection.js` (still re-exported from the package root) and **creates** missing records; `projectEnvPermissionOnMutation` / `subscribeEnvPermissionProjection` are replaced by `projectPermissionMutation` / `registerPermissionSetProjection`. + +### Patch Changes + +- a199626: `claimSeedOwnership` now skips **external (federated) objects** — those with an `external` remote-table binding (ADR-0015) — the same way it already skips `managedBy` and `sys_*` objects. + + The seed-ownership backfill walks every registered object that exposes an `owner_id` column and re-owns its unowned rows to the first admin. Federated objects get `owner_id` auto-injected into their schema, so they passed the filter and the backfill issued `select id from where owner_id is null` against a read-only remote datasource whose table may not be provisioned yet at boot — producing startup errors like `Find operation failed … no such table: customers`. External objects are read-only (DDL forbidden, writes double-opt-in) and their ownership is not the platform's to reassign, so they are excluded from the scan entirely. + +- 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/formula@14.8.0 + ## 14.7.0 ### Patch Changes diff --git a/packages/plugins/plugin-security/package.json b/packages/plugins/plugin-security/package.json index eeca4b7bd..d18e03d85 100644 --- a/packages/plugins/plugin-security/package.json +++ b/packages/plugins/plugin-security/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-security", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "Security Plugin for ObjectStack — RBAC, RLS, and Field-Level Security Runtime", "main": "dist/index.js", diff --git a/packages/plugins/plugin-sharing/CHANGELOG.md b/packages/plugins/plugin-sharing/CHANGELOG.md index ff7178ae0..bdcfa792d 100644 --- a/packages/plugins/plugin-sharing/CHANGELOG.md +++ b/packages/plugins/plugin-sharing/CHANGELOG.md @@ -1,5 +1,20 @@ # @objectstack/plugin-sharing +## 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/formula@14.8.0 + - @objectstack/objectql@14.8.0 + ## 14.7.0 ### Minor Changes diff --git a/packages/plugins/plugin-sharing/package.json b/packages/plugins/plugin-sharing/package.json index 8802b9bb4..60b087870 100644 --- a/packages/plugins/plugin-sharing/package.json +++ b/packages/plugins/plugin-sharing/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-sharing", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "Record-level sharing for ObjectStack — sys_record_share + middleware that enforces sharingModel + ISharingService.", "main": "dist/index.js", diff --git a/packages/plugins/plugin-webhooks/CHANGELOG.md b/packages/plugins/plugin-webhooks/CHANGELOG.md index 01dfd18fd..890e0c931 100644 --- a/packages/plugins/plugin-webhooks/CHANGELOG.md +++ b/packages/plugins/plugin-webhooks/CHANGELOG.md @@ -1,5 +1,18 @@ # @objectstack/plugin-webhooks +## 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/service-messaging@14.8.0 + - @objectstack/core@14.8.0 + ## 14.7.0 ### Minor Changes diff --git a/packages/plugins/plugin-webhooks/package.json b/packages/plugins/plugin-webhooks/package.json index 9948def5e..b405e93c4 100644 --- a/packages/plugins/plugin-webhooks/package.json +++ b/packages/plugins/plugin-webhooks/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-webhooks", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "Persistent, cluster-aware webhook dispatcher. Durable outbox + per-partition cluster.lock for exactly-once-ish delivery across nodes. See content/docs/concepts/webhook-delivery.mdx.", "type": "module", diff --git a/packages/rest/CHANGELOG.md b/packages/rest/CHANGELOG.md index 74767fb73..fa41801e0 100644 --- a/packages/rest/CHANGELOG.md +++ b/packages/rest/CHANGELOG.md @@ -1,5 +1,31 @@ # @objectstack/rest +## 14.8.0 + +### Patch Changes + +- 607aaf4: 导出文件名本地化 + 系统字段标签内置多语言回退。 + + **`@objectstack/rest` — 导出下载文件名**:`GET /data/:object/export` 的 `Content-Disposition` 不再是裸的 `<对象名>.<扩展名>`,改为「对象显示名-时间戳」:ASCII 兜底用 API 名(`filename="contracts-20260714-153045.xlsx"`),本地化标签(如中文)按 RFC 5987/6266 编码进 `filename*=UTF-8''…`(浏览器直接下载得到 `合同-20260714-153045.xlsx`)。新增导出 `exportContentDisposition(objectName, label, ext, now?)`。 + + **`@objectstack/spec` — 系统字段标签回退**:ObjectQL 注册表给每个对象注入的系统字段(`owner_id`/`created_at`/`created_by`/`updated_at`/`updated_by`)只带英文标签,自定义对象又没有对应的翻译条目,导致中文界面的列表表头、导出文件、导入模板里漏出 "Owner"/"Created At" 等英文。`translateObject` 现内置这五个字段的 en/zh-CN/ja-JP/es-ES 标签表(措辞与平台生成的翻译包一致),仅当字段仍是注入的英文默认值时套用——作者自定义的标签绝不覆盖;无翻译包时也生效(`translateObject` 不再因缺 bundle 而提前返回,REST 元数据翻译路径同步放宽,缓存 ETag 本就按 locale 分键,无缓存串味风险)。 + + **`@objectstack/plugin-reports` — 附件文件名**:定时报表附件的文件名清洗从「非 ASCII 全部替换成 `_`」改为按 Unicode 字母/数字保留(`\p{L}\p{N}`),中文计划名不再变成一串下划线。 + + **`@objectstack/rest` — 导入接受翻译后的选项标签(导出 ↔ 导入闭环)**:导出与导入模板写出的是*翻译后*的选项标签(如 `待规划`),但导入强制转换只认作者原始 schema 的标签/值,导致用户把自己刚导出的本地化文件原样导回时 select 字段全部报 `invalid_option`。`prepareImportRequest` 新增 `localizeSchema` 钩子(REST 导入路由传入 `translateMetaItem`),把当前 locale 的翻译标签合并进字段选项作为匹配同义词——作者标签与选项 code 照常匹配,非法值照常报错,翻译失败时降级为仅作者标签匹配。新增导出 `mergeLocalizedOptionSynonyms(metaMap, localizedMetaMap)`。 + +- e46169c: 面向最终用户的错误消息去掉调试噪音:REST 数据路由(`mapDataError`)对沙箱 hook/action 抛错解包 `SandboxError.innerMessage`(并对丢失实例的情况正则剥离 `hook 'x' threw: Error: ` 包装,保留 `TypeError:` 等非默认错误名);客户端 SDK 的 `error.message` 不再拼 `[ObjectStack] CODE:` 前缀(code 仍在 `error.code` 上可编程读取)。控制台报错 toast 从 `[ObjectStack] hook 'pm_ref_base' threw: Error: 制作基地被…` 变为只显示业务消息本身;完整调试包装仍写入服务端日志。 +- 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/service-package@14.8.0 + - @objectstack/types@14.8.0 + ## 14.7.0 ### Patch Changes diff --git a/packages/rest/package.json b/packages/rest/package.json index 619659531..b398052a1 100644 --- a/packages/rest/package.json +++ b/packages/rest/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/rest", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "ObjectStack REST API Server - automatic REST endpoint generation from protocol", "type": "module", diff --git a/packages/runtime/CHANGELOG.md b/packages/runtime/CHANGELOG.md index eab1bfda6..8c28d441d 100644 --- a/packages/runtime/CHANGELOG.md +++ b/packages/runtime/CHANGELOG.md @@ -1,5 +1,38 @@ # @objectstack/runtime +## 14.8.0 + +### Patch Changes + +- Updated dependencies [16b4bf6] +- Updated dependencies [16b4bf6] +- Updated dependencies [10e8983] +- Updated dependencies [a199626] +- Updated dependencies [84650c5] +- Updated dependencies [607aaf4] +- Updated dependencies [e46169c] +- Updated dependencies [f0acf25] +- Updated dependencies [712328a] +- Updated dependencies [1dede32] +- Updated dependencies [bb71321] +- Updated dependencies [a199626] + - @objectstack/spec@14.8.0 + - @objectstack/plugin-security@14.8.0 + - @objectstack/driver-sql@14.8.0 + - @objectstack/rest@14.8.0 + - @objectstack/driver-sqlite-wasm@14.8.0 + - @objectstack/core@14.8.0 + - @objectstack/formula@14.8.0 + - @objectstack/metadata@14.8.0 + - @objectstack/objectql@14.8.0 + - @objectstack/observability@14.8.0 + - @objectstack/driver-memory@14.8.0 + - @objectstack/plugin-auth@14.8.0 + - @objectstack/service-cluster@14.8.0 + - @objectstack/service-datasource@14.8.0 + - @objectstack/service-i18n@14.8.0 + - @objectstack/types@14.8.0 + ## 14.7.0 ### Patch Changes diff --git a/packages/runtime/package.json b/packages/runtime/package.json index 4393be398..f08cc4409 100644 --- a/packages/runtime/package.json +++ b/packages/runtime/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/runtime", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "ObjectStack Core Runtime & Query Engine", "type": "module", diff --git a/packages/sdui-parser/CHANGELOG.md b/packages/sdui-parser/CHANGELOG.md index fb52cbd7c..1b88e6975 100644 --- a/packages/sdui-parser/CHANGELOG.md +++ b/packages/sdui-parser/CHANGELOG.md @@ -1,5 +1,7 @@ # @objectstack/sdui-parser +## 14.8.0 + ## 14.7.0 ## 14.6.0 diff --git a/packages/sdui-parser/package.json b/packages/sdui-parser/package.json index 76dafa8c7..ee0301fbf 100644 --- a/packages/sdui-parser/package.json +++ b/packages/sdui-parser/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/sdui-parser", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "ObjectStack constrained JSX-source → SDUI SchemaNode tree compiler (parse, never execute). Isomorphic, zero React. ADR-0080.", "main": "dist/index.js", diff --git a/packages/services/service-analytics/CHANGELOG.md b/packages/services/service-analytics/CHANGELOG.md index 726e8094d..33a4c9439 100644 --- a/packages/services/service-analytics/CHANGELOG.md +++ b/packages/services/service-analytics/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog — @objectstack/service-analytics +## 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/core@14.8.0 + ## 14.7.0 ### Patch Changes diff --git a/packages/services/service-analytics/package.json b/packages/services/service-analytics/package.json index 9c007bfcc..b397f85e3 100644 --- a/packages/services/service-analytics/package.json +++ b/packages/services/service-analytics/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-analytics", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "Analytics Service for ObjectStack — implements IAnalyticsService with multi-driver strategy pattern (NativeSQL, ObjectQL, InMemory)", "type": "module", diff --git a/packages/services/service-automation/CHANGELOG.md b/packages/services/service-automation/CHANGELOG.md index 0651c56b5..a5bf8a6ea 100644 --- a/packages/services/service-automation/CHANGELOG.md +++ b/packages/services/service-automation/CHANGELOG.md @@ -1,5 +1,38 @@ # @objectstack/service-automation +## 14.8.0 + +### Minor Changes + +- 16b4bf6: ADR-0087 P1:元数据转换层(conversion layer,D2)——大多数破坏性变更对使用方零操作。 + + `@objectstack/spec` 新增 `conversions/` 模块:一张按协议大版本组织、声明式、无损的转换表,在**加载时**(`normalizeStackInput` —— `defineStack` / `objectstack validate` / `lint` / `info` / `doctor` 共用的同一入口)把旧(N−1)形态的元数据改写为规范的 N 形态,并对每处改写发出结构化弃用通知(`OS_METADATA_CONVERTED`)。使用方仍按旧形态编写也能零操作加载,运行时只会看到规范形态。这是把 Kubernetes storage-version/conversion 模型套用到元数据上;它与 Prime Directive #12 禁止的“使用方侧方言兜底”在每个维度上都相反:一张集中、随 spec 版本化、声明化、显式(每次应用都发通知)、带测试(每条附 old→new fixture)、会过期(仅在一个大版本内加载期生效,之后退役并沉淀进 P2 迁移链)的表,而非散落的 `cfg.a ?? cfg.b`。 + + 首批以已发布的 protocol 11 重命名回填播种: + + - `flow-node-http-callout-rename`:流程回调节点 `http_request` / `http_call` / `webhook` → `http`。 + - `page-kind-jsx-to-html`:页面 `kind: 'jsx'` → `'html'`(ADR-0080 规范拼写)。 + - `flow-node-crud-filter-alias`:CRUD 流程节点 `config.filters` → `config.filter`。 + + **运行时加载 seam(存量流程零回归的关键)。** 转换不仅接在构建/校验入口,也接到运行时 `AutomationEngine.registerFlow`(在 `FlowSchema.parse` 之前跑,新增 `applyConversionsToFlow`)。这样从数据库 rehydrate 的**存量流程**也会被规范化——否则删掉 `filters` 执行器兜底会让存量 `delete_record` / `update_record` 的过滤条件被静默清空(退化成作用于全表)。这才真正兑现 D2 “applied at load, the same seam”。 + + **开放命名空间的冲突守卫(第三方零静默误伤)。** `flow.node.type` 是开放命名空间(ADR-0018 移除了 enum gate),退役的官方名可能被第三方复用为自定义节点。转换层新增“保留名冲突”感知:运行时 seam 传入本环境已注册的执行器类型,若某退役别名(`http_request`/`http_call`/`webhook`)正被活的自定义执行器占用,则**拒绝改写并发出响亮的结构化告警 `OS_METADATA_CONVERSION_CONFLICT`**(带节点位置、conversion id、“请改名”的处置建议),而不是静默把它改成 `http` 破坏第三方节点。构建/校验入口无注册表上下文,历史别名照常转换。 + + 并落实 PD #12 退役路径示范:`filters` → `filter` 别名从 `service-automation` 执行器的 `readAliasedConfig` 兜底中删除,提升为上面这条声明式转换条目;执行器改为直接读取规范键 `cfg.filter`。 + + 新增导出(纯增量,无破坏):`applyConversions`、`applyConversionsToFlow`、`collectConversionNotices`、`ALL_CONVERSIONS`、`CONVERSIONS_BY_MAJOR`、`CONVERSION_NOTICE_CODE`、`CONVERSION_CONFLICT_CODE`,以及类型 `MetadataConversion`、`ConversionNotice`、`ConversionApplication`、`ConversionFixture`、`ConversionContext`、`ConversionConflictNotice`、`ConversionConflictDetail`、`ApplyConversionsOptions`、`NormalizeStackInputOptions`。`normalizeStackInput` 现接受可选第二参 `{ onConversionNotice, convert }`(向后兼容)。 + +### Patch Changes + +- Updated dependencies [16b4bf6] +- Updated dependencies [16b4bf6] +- Updated dependencies [10e8983] +- Updated dependencies [607aaf4] +- Updated dependencies [bb71321] + - @objectstack/spec@14.8.0 + - @objectstack/core@14.8.0 + - @objectstack/formula@14.8.0 + ## 14.7.0 ### Patch Changes diff --git a/packages/services/service-automation/package.json b/packages/services/service-automation/package.json index 5e832cca8..8783d8ec1 100644 --- a/packages/services/service-automation/package.json +++ b/packages/services/service-automation/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-automation", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "Automation Service for ObjectStack — implements IAutomationService with plugin-based DAG flow execution engine", "type": "module", diff --git a/packages/services/service-cache/CHANGELOG.md b/packages/services/service-cache/CHANGELOG.md index bb8eed650..c4ddfecbe 100644 --- a/packages/services/service-cache/CHANGELOG.md +++ b/packages/services/service-cache/CHANGELOG.md @@ -1,5 +1,18 @@ # @objectstack/service-cache +## 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/core@14.8.0 + - @objectstack/observability@14.8.0 + ## 14.7.0 ### Patch Changes diff --git a/packages/services/service-cache/package.json b/packages/services/service-cache/package.json index cc27bc83a..31495c9bd 100644 --- a/packages/services/service-cache/package.json +++ b/packages/services/service-cache/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-cache", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "Cache Service for ObjectStack — implements ICacheService with in-memory and Redis adapters", "type": "module", diff --git a/packages/services/service-cluster-redis/CHANGELOG.md b/packages/services/service-cluster-redis/CHANGELOG.md index 1c6a91b26..22f79a916 100644 --- a/packages/services/service-cluster-redis/CHANGELOG.md +++ b/packages/services/service-cluster-redis/CHANGELOG.md @@ -1,5 +1,17 @@ # @objectstack/service-cluster-redis +## 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/service-cluster@14.8.0 + ## 14.7.0 ### Patch Changes diff --git a/packages/services/service-cluster-redis/package.json b/packages/services/service-cluster-redis/package.json index 3aa2807f9..b43d01058 100644 --- a/packages/services/service-cluster-redis/package.json +++ b/packages/services/service-cluster-redis/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-cluster-redis", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "Redis cluster driver for ObjectStack — implements IPubSub/ILock/IKV/ICounter against Redis using ioredis.", "type": "module", diff --git a/packages/services/service-cluster/CHANGELOG.md b/packages/services/service-cluster/CHANGELOG.md index dd7c6974f..36ddd86f7 100644 --- a/packages/services/service-cluster/CHANGELOG.md +++ b/packages/services/service-cluster/CHANGELOG.md @@ -1,5 +1,17 @@ # @objectstack/service-cluster +## 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/core@14.8.0 + ## 14.7.0 ### Patch Changes diff --git a/packages/services/service-cluster/package.json b/packages/services/service-cluster/package.json index d013fe07b..455b82d2a 100644 --- a/packages/services/service-cluster/package.json +++ b/packages/services/service-cluster/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-cluster", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "Cluster Service for ObjectStack — pluggable PubSub/Lock/KV/Counter primitives. Memory driver included; postgres/redis drivers ship separately.", "type": "module", diff --git a/packages/services/service-datasource/CHANGELOG.md b/packages/services/service-datasource/CHANGELOG.md index 505dac4c4..24b6708a6 100644 --- a/packages/services/service-datasource/CHANGELOG.md +++ b/packages/services/service-datasource/CHANGELOG.md @@ -1,5 +1,17 @@ # @objectstack/service-external-datasource +## 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/core@14.8.0 + ## 14.7.0 ### Patch Changes diff --git a/packages/services/service-datasource/package.json b/packages/services/service-datasource/package.json index 6511fde37..41be79fb7 100644 --- a/packages/services/service-datasource/package.json +++ b/packages/services/service-datasource/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-datasource", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "The datasource service (ADR-0015): external-table federation (introspect/draft/import/validate) + runtime UI datasource lifecycle (list/test/create/update/remove + REST routes). Open-source mechanism; the tier line falls on which ICryptoProvider / driver factory a host injects.", "type": "module", diff --git a/packages/services/service-i18n/CHANGELOG.md b/packages/services/service-i18n/CHANGELOG.md index bf06c40ce..366829661 100644 --- a/packages/services/service-i18n/CHANGELOG.md +++ b/packages/services/service-i18n/CHANGELOG.md @@ -1,5 +1,17 @@ # @objectstack/service-i18n +## 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/core@14.8.0 + ## 14.7.0 ### Patch Changes diff --git a/packages/services/service-i18n/package.json b/packages/services/service-i18n/package.json index ea5623a6f..d36608b75 100644 --- a/packages/services/service-i18n/package.json +++ b/packages/services/service-i18n/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-i18n", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "I18n Service for ObjectStack — implements II18nService with file-based locale loading", "type": "module", diff --git a/packages/services/service-job/CHANGELOG.md b/packages/services/service-job/CHANGELOG.md index 0adad71d2..9e2a9cdc7 100644 --- a/packages/services/service-job/CHANGELOG.md +++ b/packages/services/service-job/CHANGELOG.md @@ -1,5 +1,18 @@ # @objectstack/service-job +## 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 + ## 14.7.0 ### Patch Changes diff --git a/packages/services/service-job/package.json b/packages/services/service-job/package.json index fa9fce6af..d9e645c9c 100644 --- a/packages/services/service-job/package.json +++ b/packages/services/service-job/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-job", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "Job Service for ObjectStack — implements IJobService with setInterval and cron scheduling", "type": "module", diff --git a/packages/services/service-knowledge/CHANGELOG.md b/packages/services/service-knowledge/CHANGELOG.md index 414723d0d..5694a70fb 100644 --- a/packages/services/service-knowledge/CHANGELOG.md +++ b/packages/services/service-knowledge/CHANGELOG.md @@ -1,5 +1,17 @@ # @objectstack/service-knowledge +## 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/core@14.8.0 + ## 14.7.0 ### Patch Changes diff --git a/packages/services/service-knowledge/package.json b/packages/services/service-knowledge/package.json index 3790facbe..c8cd75de8 100644 --- a/packages/services/service-knowledge/package.json +++ b/packages/services/service-knowledge/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-knowledge", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "Knowledge Service for ObjectStack — orchestrator implementing IKnowledgeService over pluggable IKnowledgeAdapter backends (RAGFlow, LlamaIndex, Dify, in-memory).", "type": "module", diff --git a/packages/services/service-messaging/CHANGELOG.md b/packages/services/service-messaging/CHANGELOG.md index 398a8e6c3..97071aaaf 100644 --- a/packages/services/service-messaging/CHANGELOG.md +++ b/packages/services/service-messaging/CHANGELOG.md @@ -1,5 +1,39 @@ # @objectstack/service-messaging +## 14.8.0 + +### Minor Changes + +- bb71321: i18n: translate the system account/messaging surfaces end to end. + + - **spec**: `ObjectTranslationDataSchema` / `ObjectTranslationNodeSchema` now + accept `_views..emptyState.{title,message}` so list-view empty states + are translatable (contract-first for the extractor below). + - **cli**: `os i18n extract` emits `_views..emptyState` keys when a view + declares an empty state. + - **platform-objects**: fill every missing zh-CN/ja-JP/es-ES translation for + `sys_user`, `sys_organization` and `sys_business_unit` (fields, options, + views, actions); replace the hardcoded English tab/section/action labels in + the `sys_user`, `sys_organization` and `sys_position` detail pages with + inline i18n label objects, and route the user Security tab through + `record:quick_actions` so object action labels localize. + - **service-messaging**: new ADR-0029 D8 translation bundle + (`MessagingTranslations`) covering the seven `sys_*` messaging objects + (inbox message, receipts, deliveries, preferences, subscriptions, templates, + HTTP deliveries), registered on `kernel:ready`; zh-CN is fully translated + and ja-JP/es-ES cover `sys_inbox_message` (incl. the `mine` view empty + state). + +### Patch Changes + +- Updated dependencies [16b4bf6] +- Updated dependencies [16b4bf6] +- Updated dependencies [10e8983] +- Updated dependencies [607aaf4] +- Updated dependencies [bb71321] + - @objectstack/spec@14.8.0 + - @objectstack/core@14.8.0 + ## 14.7.0 ### Patch Changes diff --git a/packages/services/service-messaging/package.json b/packages/services/service-messaging/package.json index 5489379ef..bbaf5ab04 100644 --- a/packages/services/service-messaging/package.json +++ b/packages/services/service-messaging/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-messaging", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "Messaging Service for ObjectStack — outbound notification dispatch (ADR-0012). Ships the MessagingChannel registry, emit() fan-out, and the always-on inbox channel; other channels (email/webhook/push/IM) plug in.", "type": "module", diff --git a/packages/services/service-package/CHANGELOG.md b/packages/services/service-package/CHANGELOG.md index 3656793bd..88b2f7402 100644 --- a/packages/services/service-package/CHANGELOG.md +++ b/packages/services/service-package/CHANGELOG.md @@ -1,5 +1,17 @@ # @objectstack/service-package +## 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/core@14.8.0 + ## 14.7.0 ### Patch Changes diff --git a/packages/services/service-package/package.json b/packages/services/service-package/package.json index 00f9a589c..fda07d8ff 100644 --- a/packages/services/service-package/package.json +++ b/packages/services/service-package/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-package", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "Package management service for ObjectStack — publish, install, and manage packages", "type": "module", diff --git a/packages/services/service-queue/CHANGELOG.md b/packages/services/service-queue/CHANGELOG.md index 8a178f116..d8111fafb 100644 --- a/packages/services/service-queue/CHANGELOG.md +++ b/packages/services/service-queue/CHANGELOG.md @@ -1,5 +1,18 @@ # @objectstack/service-queue +## 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 + ## 14.7.0 ### Patch Changes diff --git a/packages/services/service-queue/package.json b/packages/services/service-queue/package.json index 9fdea047e..c12bd4742 100644 --- a/packages/services/service-queue/package.json +++ b/packages/services/service-queue/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-queue", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "Queue Service for ObjectStack — implements IQueueService with in-memory and durable DB-backed (sys_job_queue) adapters", "type": "module", diff --git a/packages/services/service-realtime/CHANGELOG.md b/packages/services/service-realtime/CHANGELOG.md index a2e018811..bccf37892 100644 --- a/packages/services/service-realtime/CHANGELOG.md +++ b/packages/services/service-realtime/CHANGELOG.md @@ -1,5 +1,18 @@ # @objectstack/service-realtime +## 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 + ## 14.7.0 ### Patch Changes diff --git a/packages/services/service-realtime/package.json b/packages/services/service-realtime/package.json index 2519d49da..43e3a6d62 100644 --- a/packages/services/service-realtime/package.json +++ b/packages/services/service-realtime/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-realtime", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "Realtime Service for ObjectStack — implements IRealtimeService with WebSocket and in-memory pub/sub", "type": "module", diff --git a/packages/services/service-settings/CHANGELOG.md b/packages/services/service-settings/CHANGELOG.md index 8f6a2bc54..ec1209bdf 100644 --- a/packages/services/service-settings/CHANGELOG.md +++ b/packages/services/service-settings/CHANGELOG.md @@ -1,5 +1,19 @@ # @objectstack/service-settings +## 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/types@14.8.0 + ## 14.7.0 ### Patch Changes diff --git a/packages/services/service-settings/package.json b/packages/services/service-settings/package.json index 8ccc3f28f..7929a6ab8 100644 --- a/packages/services/service-settings/package.json +++ b/packages/services/service-settings/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-settings", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "Settings service for ObjectStack — manifest registry + K/V resolver (OS_* env > Tenant > User > Default) + REST routes. See ADR-0007.", "type": "module", diff --git a/packages/services/service-sms/CHANGELOG.md b/packages/services/service-sms/CHANGELOG.md index 06dca2c17..9724e8da7 100644 --- a/packages/services/service-sms/CHANGELOG.md +++ b/packages/services/service-sms/CHANGELOG.md @@ -1,5 +1,17 @@ # @objectstack/service-sms +## 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/core@14.8.0 + ## 14.7.0 ### Patch Changes diff --git a/packages/services/service-sms/package.json b/packages/services/service-sms/package.json index 42de65e0d..38952cfc0 100644 --- a/packages/services/service-sms/package.json +++ b/packages/services/service-sms/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-sms", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "SMS service for ObjectStack — ISmsService + transport-pluggable outbound delivery (Aliyun / Twilio / log).", "main": "dist/index.js", diff --git a/packages/services/service-storage/CHANGELOG.md b/packages/services/service-storage/CHANGELOG.md index 644cfe2c0..d611e355b 100644 --- a/packages/services/service-storage/CHANGELOG.md +++ b/packages/services/service-storage/CHANGELOG.md @@ -1,5 +1,19 @@ # @objectstack/service-storage +## 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/observability@14.8.0 + ## 14.7.0 ### Patch Changes diff --git a/packages/services/service-storage/package.json b/packages/services/service-storage/package.json index 3de9f466e..3257e21a6 100644 --- a/packages/services/service-storage/package.json +++ b/packages/services/service-storage/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/service-storage", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "Storage Service for ObjectStack — implements IStorageService with local filesystem and S3 adapter skeleton", "type": "module", diff --git a/packages/spec/CHANGELOG.md b/packages/spec/CHANGELOG.md index 194629985..220d794b4 100644 --- a/packages/spec/CHANGELOG.md +++ b/packages/spec/CHANGELOG.md @@ -1,5 +1,88 @@ # @objectstack/spec +## 14.8.0 + +### Minor Changes + +- 16b4bf6: ADR-0087 P1:元数据转换层(conversion layer,D2)——大多数破坏性变更对使用方零操作。 + + `@objectstack/spec` 新增 `conversions/` 模块:一张按协议大版本组织、声明式、无损的转换表,在**加载时**(`normalizeStackInput` —— `defineStack` / `objectstack validate` / `lint` / `info` / `doctor` 共用的同一入口)把旧(N−1)形态的元数据改写为规范的 N 形态,并对每处改写发出结构化弃用通知(`OS_METADATA_CONVERTED`)。使用方仍按旧形态编写也能零操作加载,运行时只会看到规范形态。这是把 Kubernetes storage-version/conversion 模型套用到元数据上;它与 Prime Directive #12 禁止的“使用方侧方言兜底”在每个维度上都相反:一张集中、随 spec 版本化、声明化、显式(每次应用都发通知)、带测试(每条附 old→new fixture)、会过期(仅在一个大版本内加载期生效,之后退役并沉淀进 P2 迁移链)的表,而非散落的 `cfg.a ?? cfg.b`。 + + 首批以已发布的 protocol 11 重命名回填播种: + + - `flow-node-http-callout-rename`:流程回调节点 `http_request` / `http_call` / `webhook` → `http`。 + - `page-kind-jsx-to-html`:页面 `kind: 'jsx'` → `'html'`(ADR-0080 规范拼写)。 + - `flow-node-crud-filter-alias`:CRUD 流程节点 `config.filters` → `config.filter`。 + + **运行时加载 seam(存量流程零回归的关键)。** 转换不仅接在构建/校验入口,也接到运行时 `AutomationEngine.registerFlow`(在 `FlowSchema.parse` 之前跑,新增 `applyConversionsToFlow`)。这样从数据库 rehydrate 的**存量流程**也会被规范化——否则删掉 `filters` 执行器兜底会让存量 `delete_record` / `update_record` 的过滤条件被静默清空(退化成作用于全表)。这才真正兑现 D2 “applied at load, the same seam”。 + + **开放命名空间的冲突守卫(第三方零静默误伤)。** `flow.node.type` 是开放命名空间(ADR-0018 移除了 enum gate),退役的官方名可能被第三方复用为自定义节点。转换层新增“保留名冲突”感知:运行时 seam 传入本环境已注册的执行器类型,若某退役别名(`http_request`/`http_call`/`webhook`)正被活的自定义执行器占用,则**拒绝改写并发出响亮的结构化告警 `OS_METADATA_CONVERSION_CONFLICT`**(带节点位置、conversion id、“请改名”的处置建议),而不是静默把它改成 `http` 破坏第三方节点。构建/校验入口无注册表上下文,历史别名照常转换。 + + 并落实 PD #12 退役路径示范:`filters` → `filter` 别名从 `service-automation` 执行器的 `readAliasedConfig` 兜底中删除,提升为上面这条声明式转换条目;执行器改为直接读取规范键 `cfg.filter`。 + + 新增导出(纯增量,无破坏):`applyConversions`、`applyConversionsToFlow`、`collectConversionNotices`、`ALL_CONVERSIONS`、`CONVERSIONS_BY_MAJOR`、`CONVERSION_NOTICE_CODE`、`CONVERSION_CONFLICT_CODE`,以及类型 `MetadataConversion`、`ConversionNotice`、`ConversionApplication`、`ConversionFixture`、`ConversionContext`、`ConversionConflictNotice`、`ConversionConflictDetail`、`ApplyConversionsOptions`、`NormalizeStackInputOptions`。`normalizeStackInput` 现接受可选第二参 `{ onConversionNotice, convert }`(向后兼容)。 + +- 16b4bf6: ADR-0087 P2:可重放迁移链 + 机器可读变更清单(D3 / D4)。 + + **D3 —— 迁移链(`@objectstack/spec` 新增 `migrations/`)。** 一条永久、有序、按协议大版本组织的迁移链。每个大版本的步骤由两个来源合成:**已毕业的转换**(P1 的 D2 转换条目从加载路径退役后,以其 id 引用复用,作为该大版本的“机械变换”,转换与 fixture 不重复)和**语义变更**(无损映射无法表达的破坏,以结构化 TODO —— surface / 原因 / 验收标准 —— 呈现,而非静默或有损自动改写)。 + + - `applyMetaMigrations(stack, fromMajor, toMajor?)` 折叠 `fromMajor+1 … 当前` 的步骤,一次性把任意历史大版本的元数据迁到当前;跨大版本是设计主场景。每一跳(hop)都做检查点,便于逐跳验证与二分定位。**时效性从不承重** —— 迟到的使用方到达时重放链即可。 + - `composeMigrationChain`、`MigrationFloorError`,以及显式的发布策略旋钮 `MIGRATION_SUPPORT_FLOOR`(链能回溯到多久)。 + - 种子:protocol 11 步骤 —— 机械项为三条已毕业的 P1 转换;语义项为两个真实存量窗口:`titleFormat` 复合模板 → `nameField`(需公式字段,非无损)、SQL 式 RLS 谓词 → 规范 CEL。 + - CI 把整条链当作链来测:每条转换的 old-shape fixture 从支持下限重放到目标大版本,组合性破坏即发布阻断。 + + **D4 —— `spec-changes.json` 变更清单。** Zod 定义的机器可读记录 `{ from, to, added, converted, migrated, removed }`,由 `composeSpecChanges(from, to, surfaceDiff?)` 跨大版本折叠转换表(D2)与迁移集(D3),并与发布期 api-surface 差异连接。按大版本的清单可组合成单一 `from→to` 视图;后续生成式升级指南与 P3 的 MCP `spec_changes` 工具都是它的投影。 + + **CLI —— `objectstack migrate meta --from N`。** 重放迁移链:展示生成的、经 `ObjectStackDefinitionSchema` 校验的机械变更 diff(逐条 `path: 旧 → 新`)与需人工判断的语义 TODO;`--to`、`--step`(逐跳检查点)、`--out `(把规范化后的栈写为可 diff 的 JSON 快照)、`--json`。命令不静默改写 TS 配置源(AST 改写不安全且有损)—— 输出供使用方 agent 审阅采纳,这正是握手错误(P0)所指向的命令。 + + `normalizeStackInput` 新增可选 `convert: false`(仅做 map→array,不跑 D2 转换),供 `migrate meta` 对原始编写源重放链、把每处改写归因到对应链步。新增导出纯增量,无破坏性移除。 + +- 10e8983: ADR-0089: unify the conditional-visibility predicate under one canonical key, `visibleWhen`, across every layer (data field, view form section/field, page component). This aligns visibility with the existing `readonlyWhen` / `requiredWhen` family and the `conditionalRequired → requiredWhen` precedent. + + **Canonical key:** `visibleWhen` — a CEL predicate; the element is shown only when it is TRUE. The binding _root_ is still set by the layer: runtime record forms and pages bind `record` + `current_user` (pages also expose `page.`); metadata-editing forms (`*.form.ts`) bind `data`. + + **Deprecated aliases (still accepted):** the view key `visibleOn` and the page key `visibility` are now `@deprecated`. Both are folded into `visibleWhen` **once, at the schema boundary** (a zod `.transform()`), so consumers only ever read `visibleWhen`. When both a canonical and an alias key are present, the canonical wins. + + Migration (L1 — no consumer action required; existing metadata keeps working): + + - View form section/field: `visibleOn: ""` → `visibleWhen: ""` + - Page component: `visibility: ""` → `visibleWhen: ""` + - Data field / field option: already `visibleWhen` — unchanged. + + Out of scope (unchanged): the boolean `visible` (Tab on/off), field `hidden`, gallery `visibleFields`, and unrelated `visibility` _enums_ (feed / package / environment / agent). Aliases remain for the standard deprecation window and are removed in a future major. + +- bb71321: i18n: translate the system account/messaging surfaces end to end. + + - **spec**: `ObjectTranslationDataSchema` / `ObjectTranslationNodeSchema` now + accept `_views..emptyState.{title,message}` so list-view empty states + are translatable (contract-first for the extractor below). + - **cli**: `os i18n extract` emits `_views..emptyState` keys when a view + declares an empty state. + - **platform-objects**: fill every missing zh-CN/ja-JP/es-ES translation for + `sys_user`, `sys_organization` and `sys_business_unit` (fields, options, + views, actions); replace the hardcoded English tab/section/action labels in + the `sys_user`, `sys_organization` and `sys_position` detail pages with + inline i18n label objects, and route the user Security tab through + `record:quick_actions` so object action labels localize. + - **service-messaging**: new ADR-0029 D8 translation bundle + (`MessagingTranslations`) covering the seven `sys_*` messaging objects + (inbox message, receipts, deliveries, preferences, subscriptions, templates, + HTTP deliveries), registered on `kernel:ready`; zh-CN is fully translated + and ja-JP/es-ES cover `sys_inbox_message` (incl. the `mine` view empty + state). + +### Patch Changes + +- 607aaf4: 导出文件名本地化 + 系统字段标签内置多语言回退。 + + **`@objectstack/rest` — 导出下载文件名**:`GET /data/:object/export` 的 `Content-Disposition` 不再是裸的 `<对象名>.<扩展名>`,改为「对象显示名-时间戳」:ASCII 兜底用 API 名(`filename="contracts-20260714-153045.xlsx"`),本地化标签(如中文)按 RFC 5987/6266 编码进 `filename*=UTF-8''…`(浏览器直接下载得到 `合同-20260714-153045.xlsx`)。新增导出 `exportContentDisposition(objectName, label, ext, now?)`。 + + **`@objectstack/spec` — 系统字段标签回退**:ObjectQL 注册表给每个对象注入的系统字段(`owner_id`/`created_at`/`created_by`/`updated_at`/`updated_by`)只带英文标签,自定义对象又没有对应的翻译条目,导致中文界面的列表表头、导出文件、导入模板里漏出 "Owner"/"Created At" 等英文。`translateObject` 现内置这五个字段的 en/zh-CN/ja-JP/es-ES 标签表(措辞与平台生成的翻译包一致),仅当字段仍是注入的英文默认值时套用——作者自定义的标签绝不覆盖;无翻译包时也生效(`translateObject` 不再因缺 bundle 而提前返回,REST 元数据翻译路径同步放宽,缓存 ETag 本就按 locale 分键,无缓存串味风险)。 + + **`@objectstack/plugin-reports` — 附件文件名**:定时报表附件的文件名清洗从「非 ASCII 全部替换成 `_`」改为按 Unicode 字母/数字保留(`\p{L}\p{N}`),中文计划名不再变成一串下划线。 + + **`@objectstack/rest` — 导入接受翻译后的选项标签(导出 ↔ 导入闭环)**:导出与导入模板写出的是*翻译后*的选项标签(如 `待规划`),但导入强制转换只认作者原始 schema 的标签/值,导致用户把自己刚导出的本地化文件原样导回时 select 字段全部报 `invalid_option`。`prepareImportRequest` 新增 `localizeSchema` 钩子(REST 导入路由传入 `translateMetaItem`),把当前 locale 的翻译标签合并进字段选项作为匹配同义词——作者标签与选项 code 照常匹配,非法值照常报错,翻译失败时降级为仅作者标签匹配。新增导出 `mergeLocalizedOptionSynonyms(metaMap, localizedMetaMap)`。 + ## 14.7.0 ### Minor Changes diff --git a/packages/spec/package.json b/packages/spec/package.json index ce98dbc2b..f714ef963 100644 --- a/packages/spec/package.json +++ b/packages/spec/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/spec", - "version": "14.7.0", + "version": "14.8.0", "description": "ObjectStack Protocol & Specification - TypeScript Interfaces, JSON Schemas, and Convention Configurations", "license": "Apache-2.0", "main": "dist/index.js", diff --git a/packages/triggers/trigger-api/CHANGELOG.md b/packages/triggers/trigger-api/CHANGELOG.md index 058bb739e..7af4ce6e1 100644 --- a/packages/triggers/trigger-api/CHANGELOG.md +++ b/packages/triggers/trigger-api/CHANGELOG.md @@ -1,5 +1,17 @@ # @objectstack/trigger-api +## 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/core@14.8.0 + ## 14.7.0 ### Patch Changes diff --git a/packages/triggers/trigger-api/package.json b/packages/triggers/trigger-api/package.json index bb2b9eef8..88e43942f 100644 --- a/packages/triggers/trigger-api/package.json +++ b/packages/triggers/trigger-api/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/trigger-api", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "Inbound HTTP/webhook flow trigger for ObjectStack — per-flow HMAC-verified endpoints with queue-backed ingestion (ADR-0041)", "main": "dist/index.js", diff --git a/packages/triggers/trigger-record-change/CHANGELOG.md b/packages/triggers/trigger-record-change/CHANGELOG.md index c60b5e4ba..fdfd8a6d0 100644 --- a/packages/triggers/trigger-record-change/CHANGELOG.md +++ b/packages/triggers/trigger-record-change/CHANGELOG.md @@ -1,5 +1,17 @@ # @objectstack/plugin-trigger-record-change +## 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/core@14.8.0 + ## 14.7.0 ### Patch Changes diff --git a/packages/triggers/trigger-record-change/package.json b/packages/triggers/trigger-record-change/package.json index 11a50d85c..7adae1994 100644 --- a/packages/triggers/trigger-record-change/package.json +++ b/packages/triggers/trigger-record-change/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/trigger-record-change", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "Record-change flow trigger for ObjectStack — auto-launches flows on object insert/update/delete via ObjectQL lifecycle hooks (ADR-0018)", "main": "dist/index.js", diff --git a/packages/triggers/trigger-schedule/CHANGELOG.md b/packages/triggers/trigger-schedule/CHANGELOG.md index 5fe519892..63a279a51 100644 --- a/packages/triggers/trigger-schedule/CHANGELOG.md +++ b/packages/triggers/trigger-schedule/CHANGELOG.md @@ -1,5 +1,17 @@ # @objectstack/plugin-trigger-schedule +## 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/core@14.8.0 + ## 14.7.0 ### Patch Changes diff --git a/packages/triggers/trigger-schedule/package.json b/packages/triggers/trigger-schedule/package.json index 75306b5f4..caf729038 100644 --- a/packages/triggers/trigger-schedule/package.json +++ b/packages/triggers/trigger-schedule/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/trigger-schedule", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "Schedule flow trigger for ObjectStack — auto-launches flows on a cron/interval/once schedule via the IJobService (ADR-0018)", "main": "dist/index.js", diff --git a/packages/types/CHANGELOG.md b/packages/types/CHANGELOG.md index a5e6443d2..692aff115 100644 --- a/packages/types/CHANGELOG.md +++ b/packages/types/CHANGELOG.md @@ -1,5 +1,16 @@ # @objectstack/types +## 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 + ## 14.7.0 ### Minor Changes diff --git a/packages/types/package.json b/packages/types/package.json index 9d182931c..4dba3dc32 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/types", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "Shared interfaces describing the ObjectStack Runtime environment", "main": "dist/index.js", diff --git a/packages/verify/CHANGELOG.md b/packages/verify/CHANGELOG.md index 7ae4323f6..13a4b9e4c 100644 --- a/packages/verify/CHANGELOG.md +++ b/packages/verify/CHANGELOG.md @@ -1,5 +1,35 @@ # @objectstack/verify +## 14.8.0 + +### Patch Changes + +- Updated dependencies [16b4bf6] +- Updated dependencies [16b4bf6] +- Updated dependencies [10e8983] +- Updated dependencies [a199626] +- Updated dependencies [607aaf4] +- Updated dependencies [e46169c] +- Updated dependencies [f0acf25] +- Updated dependencies [712328a] +- Updated dependencies [1dede32] +- Updated dependencies [bb71321] +- Updated dependencies [a199626] + - @objectstack/spec@14.8.0 + - @objectstack/service-automation@14.8.0 + - @objectstack/plugin-security@14.8.0 + - @objectstack/rest@14.8.0 + - @objectstack/driver-sqlite-wasm@14.8.0 + - @objectstack/core@14.8.0 + - @objectstack/objectql@14.8.0 + - @objectstack/plugin-auth@14.8.0 + - @objectstack/plugin-hono-server@14.8.0 + - @objectstack/plugin-sharing@14.8.0 + - @objectstack/runtime@14.8.0 + - @objectstack/service-analytics@14.8.0 + - @objectstack/service-datasource@14.8.0 + - @objectstack/service-settings@14.8.0 + ## 14.7.0 ### Patch Changes diff --git a/packages/verify/package.json b/packages/verify/package.json index 79bf67ba1..36c92ffa1 100644 --- a/packages/verify/package.json +++ b/packages/verify/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/verify", - "version": "14.7.0", + "version": "14.8.0", "license": "Apache-2.0", "description": "Boot any ObjectStack app in-process and verify it through the real HTTP stack — auto-derived CRUD round-trip fidelity plus the cross-owner RLS invariant. Catches runtime regressions that static checks miss.", "type": "module", diff --git a/packages/vscode-objectstack/CHANGELOG.md b/packages/vscode-objectstack/CHANGELOG.md index ddb9d474d..a13e4e265 100644 --- a/packages/vscode-objectstack/CHANGELOG.md +++ b/packages/vscode-objectstack/CHANGELOG.md @@ -1,5 +1,7 @@ # objectstack-vscode +## 14.8.0 + ## 14.7.0 ## 14.6.0 diff --git a/packages/vscode-objectstack/package.json b/packages/vscode-objectstack/package.json index 1daed1ed3..2d78b5ff7 100644 --- a/packages/vscode-objectstack/package.json +++ b/packages/vscode-objectstack/package.json @@ -2,7 +2,7 @@ "name": "objectstack-vscode", "displayName": "ObjectStack", "description": "ObjectStack Protocol — Autocomplete, validation, and inline diagnostics for .object.ts, .view.ts, and objectstack.config.ts files", - "version": "14.7.0", + "version": "14.8.0", "publisher": "objectstack", "license": "Apache-2.0", "repository": {