Uh oh!
There was an error while loading. Please reload this page.
chore: version packages - #1853
Merged
Merged
Conversation
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
@objectstack/setup@9.5.0
Minor Changes
d08551c: feat(ADR-0046): per-locale documentation content (doc i18n)
Docs can now ship localized bodies. Authors add sibling locale-variant files
src/docs/<name>.<locale>.md(e.g.crm_lead_guide.zh.md,..pt-BR.md) nextto the base
<name>.md; the base stays the default and the fallback. Flatness ispreserved — variants are flat siblings, not subdirectories.
DocSchemagains an optionaltranslationsmap(
locale → {label?, description?, content}) plusresolveDocLocale(doc, locale),which collapses a doc to the best-matching locale (exact → primary subtag
zh-CN→zh→ base) with per-field fallback and strips thetranslationsmap.translations; orphan/duplicate variants and the v1 MDX/image bans are lintedon variant content too.
/meta/doc(list + single) resolves the request locale from theexisting
Accept-Language/?localenegotiation, returns one localized body,and never ships the
translationsmap. Doc detail bypasses the response cacheso a language switch can't return a stale-locale body.
zhtranslations(TS-first inline
translations), so a Chinese console renders Chinese docs.The console already sends the active UI language as
Accept-Language, so doccontent localizes on a language switch with no client change.
Patch Changes
1a4f079: feat(ADR-0046): seed first-party package docs for the Setup and Studio apps
A fresh platform install shipped no first-party
docmetadata, so thein-product documentation hub (
/_console/docs) opened completely empty and theADR-0046 feature had zero reference implementation. This seeds a deliberately
minimal first version — one short overview per built-in app — so the hub is
non-empty out of the box and there is a worked example to copy.
@objectstack/setupregisterssetup_overview(for administrators: users &authentication, the roles & permissions model, and record visibility/sharing).
@objectstack/studioregistersstudio_overview(for builders: themetadata-first model, the invisible draft/overlay precedence rule per
ADR-0005/ADR-0033, and publish vs deploy).
Both follow the HotCRM principle — document the invisible business logic, not
what the UI already shows — and link to https://docs.objectstack.ai for depth.
Mechanism note: these are TS-first code packages built by
tsup, not user appsbuilt by
os build, so they do not go through the flatsrc/docs/*.mdcollection + lint. The docs are declared inline as
Docitems on each package'smanifest.register({ docs })call — the pathDocSchemaexplicitly blesses forTS-first stacks. They register under their owning package id, so the docs hub
groups them under Setup and Studio respectively. No framework change was needed.
110a333: docs(setup): slim the Setup overview to the genuinely-invisible rules
Cut the textbook concept-restatement (permission-set vs role definitions) and
the repeated "see external docs" lines that duplicated what the Setup UI's own
Users/Roles/Permission-set screens already show. What remains is three short
bullets the screens don't reveal: a user is identity-not-access, permissions
are additive, and "can't see a record" is almost always sharing rather than
object permissions. EN + zh updated together. No behaviour change — content only.
Updated dependencies [d08551c]
Updated dependencies [5be7102]
Updated dependencies [707aeed]
Updated dependencies [7a103d4]
Updated dependencies [4b01250]
@objectstack/studio@9.5.0
Minor Changes
d08551c: feat(ADR-0046): per-locale documentation content (doc i18n)
Docs can now ship localized bodies. Authors add sibling locale-variant files
src/docs/<name>.<locale>.md(e.g.crm_lead_guide.zh.md,..pt-BR.md) nextto the base
<name>.md; the base stays the default and the fallback. Flatness ispreserved — variants are flat siblings, not subdirectories.
DocSchemagains an optionaltranslationsmap(
locale → {label?, description?, content}) plusresolveDocLocale(doc, locale),which collapses a doc to the best-matching locale (exact → primary subtag
zh-CN→zh→ base) with per-field fallback and strips thetranslationsmap.translations; orphan/duplicate variants and the v1 MDX/image bans are lintedon variant content too.
/meta/doc(list + single) resolves the request locale from theexisting
Accept-Language/?localenegotiation, returns one localized body,and never ships the
translationsmap. Doc detail bypasses the response cacheso a language switch can't return a stale-locale body.
zhtranslations(TS-first inline
translations), so a Chinese console renders Chinese docs.The console already sends the active UI language as
Accept-Language, so doccontent localizes on a language switch with no client change.
Patch Changes
1a4f079: feat(ADR-0046): seed first-party package docs for the Setup and Studio apps
A fresh platform install shipped no first-party
docmetadata, so thein-product documentation hub (
/_console/docs) opened completely empty and theADR-0046 feature had zero reference implementation. This seeds a deliberately
minimal first version — one short overview per built-in app — so the hub is
non-empty out of the box and there is a worked example to copy.
@objectstack/setupregisterssetup_overview(for administrators: users &authentication, the roles & permissions model, and record visibility/sharing).
@objectstack/studioregistersstudio_overview(for builders: themetadata-first model, the invisible draft/overlay precedence rule per
ADR-0005/ADR-0033, and publish vs deploy).
Both follow the HotCRM principle — document the invisible business logic, not
what the UI already shows — and link to https://docs.objectstack.ai for depth.
Mechanism note: these are TS-first code packages built by
tsup, not user appsbuilt by
os build, so they do not go through the flatsrc/docs/*.mdcollection + lint. The docs are declared inline as
Docitems on each package'smanifest.register({ docs })call — the pathDocSchemaexplicitly blesses forTS-first stacks. They register under their owning package id, so the docs hub
groups them under Setup and Studio respectively. No framework change was needed.
Updated dependencies [d08551c]
Updated dependencies [5be7102]
Updated dependencies [707aeed]
Updated dependencies [7a103d4]
Updated dependencies [4b01250]
@objectstack/cli@9.5.0
Minor Changes
d08551c: feat(ADR-0046): per-locale documentation content (doc i18n)
Docs can now ship localized bodies. Authors add sibling locale-variant files
src/docs/<name>.<locale>.md(e.g.crm_lead_guide.zh.md,..pt-BR.md) nextto the base
<name>.md; the base stays the default and the fallback. Flatness ispreserved — variants are flat siblings, not subdirectories.
DocSchemagains an optionaltranslationsmap(
locale → {label?, description?, content}) plusresolveDocLocale(doc, locale),which collapses a doc to the best-matching locale (exact → primary subtag
zh-CN→zh→ base) with per-field fallback and strips thetranslationsmap.translations; orphan/duplicate variants and the v1 MDX/image bans are lintedon variant content too.
/meta/doc(list + single) resolves the request locale from theexisting
Accept-Language/?localenegotiation, returns one localized body,and never ships the
translationsmap. Doc detail bypasses the response cacheso a language switch can't return a stale-locale body.
zhtranslations(TS-first inline
translations), so a Chinese console renders Chinese docs.The console already sends the active UI language as
Accept-Language, so doccontent localizes on a language switch with no client change.
Patch Changes
f19caef: fix(ADR-0048): rescope the
os lintnaming/namespace-prefixrule to intra-package duplicatesADR-0048 §3.4 retired the per-item cross-package collision throw — two
installed packages may legitimately ship the same bare name (e.g.
page/home),stored under distinct composite keys and disambiguated by package-scoped
resolution. The
naming/namespace-prefixlint rule was never updated to match,so it still:
actions/reports/datasets) regardless of whether a duplicate existed — a normal
single-package app got dozens of false positives (hotcrm: 63), and
which is no longer true.
The rule now warns only on a genuine intra-package duplicate
(type, name)pair within the linted config — the narrow authoring-time hygiene case ADR-0048
§3.4 explicitly leaves to
os lint("an author shipping twopage/homein onepackage"). A unique bare name produces zero warnings. The message no longer
claims an install failure; it explains the items shadow each other on the
registry key and that distinct packages may reuse the same name freely (the
namespace prefix is an optional convention). Runtime/registry behavior is
unchanged.
Updated dependencies [d08551c]
Updated dependencies [f19caef]
Updated dependencies [f19caef]
Updated dependencies [f19caef]
Updated dependencies [5be7102]
Updated dependencies [707aeed]
Updated dependencies [7a103d4]
Updated dependencies [4b01250]
Updated dependencies [1a4f079]
Updated dependencies [110a333]
@objectstack/cloud-connection@9.5.0
Minor Changes
08a11f7: RuntimeConfigPlugin: make the per-request
featuresseam open-ended and plan-agnostic (open-core boundary, cloud ADR-0012).The framework now transports an opaque feature map: a host's policy hook may return ANY boolean feature keys and they pass through to the SPA verbatim — the framework no longer enumerates a distribution's commercial feature catalog. Adds
resolveFeatures(plan-agnostic) andRuntimeFeatureOverrides; deprecatesresolvePlanFeatures/RuntimeConfigPlanFeatures(still honoured for backward compatibility).Patch Changes
@objectstack/rest@9.5.0
Minor Changes
d08551c: feat(ADR-0046): per-locale documentation content (doc i18n)
Docs can now ship localized bodies. Authors add sibling locale-variant files
src/docs/<name>.<locale>.md(e.g.crm_lead_guide.zh.md,..pt-BR.md) nextto the base
<name>.md; the base stays the default and the fallback. Flatness ispreserved — variants are flat siblings, not subdirectories.
DocSchemagains an optionaltranslationsmap(
locale → {label?, description?, content}) plusresolveDocLocale(doc, locale),which collapses a doc to the best-matching locale (exact → primary subtag
zh-CN→zh→ base) with per-field fallback and strips thetranslationsmap.translations; orphan/duplicate variants and the v1 MDX/image bans are lintedon variant content too.
/meta/doc(list + single) resolves the request locale from theexisting
Accept-Language/?localenegotiation, returns one localized body,and never ships the
translationsmap. Doc detail bypasses the response cacheso a language switch can't return a stale-locale body.
zhtranslations(TS-first inline
translations), so a Chinese console renders Chinese docs.The console already sends the active UI language as
Accept-Language, so doccontent localizes on a language switch with no client change.
Patch Changes
@objectstack/service-automation@9.5.0
Minor Changes
f19caef: feat(P1-2): messaging retention default-on; automation log cap configurable
Closes the remaining two P1-2 unbounded-growth items (launch-readiness):
MessagingServicePlugin'sretentionDaysdefaults toDEFAULT_NOTIFICATION_RETENTION_DAYS(90) instead of0; thealready-built/tested sweeper now prunes
sys_notification(+ delivery / inbox /receipt) older than 90 days by default. Behaviour change: notification
history auto-prunes at 90d — set
retentionDays: 0to keep it forever.bounded; no OOM risk) gets a tunable window via
AutomationServicePluginOptions.maxLogSize, defaulting toDEFAULT_MAX_EXECUTION_LOG_SIZE(1000, unchanged). Durablesys_automation_run-style persistence remains a post-GA HA item.Patch Changes
@objectstack/service-feed@9.5.0
Minor Changes
f19caef: feat(P0-5): default-on memory caps for in-memory feed/realtime (single-instance GA)
Launch-readiness P0-5 is resolved by formally scoping v1 to single-instance
(non-HA) and shipping memory backstops so the process-local adapters can't grow
until OOM:
InMemoryFeedAdapternow defaultsmaxItemstoDEFAULT_MAX_FEED_ITEMS(100k) instead of unbounded.
createFeedItemthrows loudly at the cap(fail-loud beats a silent OOM kill).
InMemoryRealtimeAdapternow defaultsmaxSubscriptionstoDEFAULT_MAX_SUBSCRIPTIONS(50k).0is an explicit unbounded opt-out (tests / short-lived processes).adapter over the existing
RedisPubSub, and a DB-backed feed adapter) is adocumented post-GA fast-follow.
Behaviour change: a deployment that previously relied on unbounded in-memory
feed/realtime will now hit the cap and receive an error past the ceiling — set
maxItems: 0/maxSubscriptions: 0to restore the old behaviour, or raise thenumber.
Patch Changes
@objectstack/service-job@9.5.0
Minor Changes
f19caef: feat(P1-2): default-on retention for the sys_job_run execution log
Every job execution appended a
sys_job_runrow with no cleanup path, so thetable grew unbounded on long-running deployments (launch-readiness P1-2). New
JobRunRetention(mirroringservice-messaging'sNotificationRetention)performs a bulk
delete sys_job_run where created_at < cutoffunder a systemcontext.
JobServicePluginwires it default-on atkernel:ready(DB-backedadapter only) — runs once on boot then every 6h via an unref'd timer.
retentionDaysdefaults toDEFAULT_JOB_RUN_RETENTION_DAYS(30); set0todisable (rows kept forever; operator owns cleanup).
retentionSweepMsdefaults toDEFAULT_JOB_RUN_SWEEP_MS(6h).Behaviour change: job-run history older than 30 days is now pruned by
default. Set
retentionDays: 0to keep the previous keep-forever behaviour.Patch Changes
@objectstack/service-messaging@9.5.0
Minor Changes
f19caef: feat(P1-2): messaging retention default-on; automation log cap configurable
Closes the remaining two P1-2 unbounded-growth items (launch-readiness):
MessagingServicePlugin'sretentionDaysdefaults toDEFAULT_NOTIFICATION_RETENTION_DAYS(90) instead of0; thealready-built/tested sweeper now prunes
sys_notification(+ delivery / inbox /receipt) older than 90 days by default. Behaviour change: notification
history auto-prunes at 90d — set
retentionDays: 0to keep it forever.bounded; no OOM risk) gets a tunable window via
AutomationServicePluginOptions.maxLogSize, defaulting toDEFAULT_MAX_EXECUTION_LOG_SIZE(1000, unchanged). Durablesys_automation_run-style persistence remains a post-GA HA item.Patch Changes
@objectstack/service-realtime@9.5.0
Minor Changes
f19caef: feat(P0-5): default-on memory caps for in-memory feed/realtime (single-instance GA)
Launch-readiness P0-5 is resolved by formally scoping v1 to single-instance
(non-HA) and shipping memory backstops so the process-local adapters can't grow
until OOM:
InMemoryFeedAdapternow defaultsmaxItemstoDEFAULT_MAX_FEED_ITEMS(100k) instead of unbounded.
createFeedItemthrows loudly at the cap(fail-loud beats a silent OOM kill).
InMemoryRealtimeAdapternow defaultsmaxSubscriptionstoDEFAULT_MAX_SUBSCRIPTIONS(50k).0is an explicit unbounded opt-out (tests / short-lived processes).adapter over the existing
RedisPubSub, and a DB-backed feed adapter) is adocumented post-GA fast-follow.
Behaviour change: a deployment that previously relied on unbounded in-memory
feed/realtime will now hit the cap and receive an error past the ceiling — set
maxItems: 0/maxSubscriptions: 0to restore the old behaviour, or raise thenumber.
Patch Changes
@objectstack/spec@9.5.0
Minor Changes
d08551c: feat(ADR-0046): per-locale documentation content (doc i18n)
Docs can now ship localized bodies. Authors add sibling locale-variant files
src/docs/<name>.<locale>.md(e.g.crm_lead_guide.zh.md,..pt-BR.md) nextto the base
<name>.md; the base stays the default and the fallback. Flatness ispreserved — variants are flat siblings, not subdirectories.
DocSchemagains an optionaltranslationsmap(
locale → {label?, description?, content}) plusresolveDocLocale(doc, locale),which collapses a doc to the best-matching locale (exact → primary subtag
zh-CN→zh→ base) with per-field fallback and strips thetranslationsmap.translations; orphan/duplicate variants and the v1 MDX/image bans are lintedon variant content too.
/meta/doc(list + single) resolves the request locale from theexisting
Accept-Language/?localenegotiation, returns one localized body,and never ships the
translationsmap. Doc detail bypasses the response cacheso a language switch can't return a stale-locale body.
zhtranslations(TS-first inline
translations), so a Chinese console renders Chinese docs.The console already sends the active UI language as
Accept-Language, so doccontent localizes on a language switch with no client change.
Patch Changes
707aeed: ui(page.form): sourceView is a view picker; hide template on list pages
interfaceConfig.sourceViewnow declareswidget: 'view-ref'+dependsOn: 'source'so the page editor renders a dropdown of the source object's views instead of a free-text input (where an author could type a non-existent view name). The objectuiview-refwidget reads the source object's views; until it ships, the field degrades to the existing text input.templatefield is now hidden fortype == 'list'(visibleOn: "data.type != 'list'"). A list/interface page renders via InterfaceListPage and ignores the region template, so showing the field only added noise — same rationale as the already-hidden Data Context / Layout sections.7a103d4: ui(page.form): icon field uses the searchable icon-picker widget
The Basics →
iconfield now carrieswidget: 'icon', so the metadata-adminform renders a searchable Lucide icon picker (preview + name) instead of a raw
text input where authors had to type an exact icon name. Mirrors the existing
view-ref/filter-modewidget hints; the picker ships in@object-ui/app-shelland is reusable for app/object icon fields.4b01250: ui(page): page
typeis the page kind, not a visualizationRemoved
grid/kanban/calendar/gallery/timelinefromPageTypeSchema. They are visualizations of alist(interface) page — configured viainterfaceConfig.appearance.allowedVisualizationsand switched at runtime — never distinct page kinds. The runtime never branched on them as page types (it always read the visualization frominterfaceConfig), so they only misled authors (e.g. selecting page type "kanban" did nothing).VisualizationTypeSchemais unchanged and remains the home for those values.The roadmap interface kinds (
dashboard,form,record_detail,record_review,overview,blank) stay valid in the schema but the page authoring form (page.form.ts) now offers only the kinds with a dedicated renderer —list,record,home,app,utility— with explicit labels, so the dropdown stops presenting dead options.@objectstack/express@9.5.0
Patch Changes
@objectstack/fastify@9.5.0
Patch Changes
@objectstack/hono@9.5.0
Patch Changes
@objectstack/nestjs@9.5.0
Patch Changes
@objectstack/nextjs@9.5.0
Patch Changes
@objectstack/nuxt@9.5.0
Patch Changes
@objectstack/sveltekit@9.5.0
Patch Changes
@objectstack/account@9.5.0
Patch Changes
@objectstack/client@9.5.0
Patch Changes
@objectstack/client-react@9.5.0
Patch Changes
@objectstack/connector-mcp@9.5.0
Patch Changes
@objectstack/connector-openapi@9.5.0
Patch Changes
@objectstack/connector-rest@9.5.0
Patch Changes
@objectstack/connector-slack@9.5.0
Patch Changes
@objectstack/core@9.5.0
Patch Changes
@objectstack/formula@9.5.0
Patch Changes
@objectstack/mcp@9.5.0
Patch Changes
@objectstack/metadata@9.5.0
Patch Changes
@objectstack/metadata-core@9.5.0
Patch Changes
@objectstack/metadata-fs@9.5.0
Patch Changes
@objectstack/objectql@9.5.0
Patch Changes
@objectstack/observability@9.5.0
Patch Changes
@objectstack/platform-objects@9.5.0
Patch Changes
5be7102: i18n(metadata-forms): correct stale page-
typehelp text across localesThe page
typefield help text still described page types as "record, home, app, dashboard …" — listingdashboard(and implying grid/kanban/calendar) as page types, which is wrong after the ADR-0047 page-type cleanup: those are visualizations configured under Interface, not page kinds. Updated en / zh-CN / ja-JP / es-ES to "page kind — list / record / home / app / utility; visualizations live under Interface". Also fixed the stale zh-CNkindhelp text (it described "record / list / detail" instead of the record-page override mode).Updated dependencies [d08551c]
Updated dependencies [707aeed]
Updated dependencies [7a103d4]
Updated dependencies [4b01250]
@objectstack/driver-memory@9.5.0
Patch Changes
@objectstack/driver-mongodb@9.5.0
Patch Changes
@objectstack/driver-sql@9.5.0
Patch Changes
@objectstack/driver-sqlite-wasm@9.5.0
Patch Changes
@objectstack/embedder-openai@9.5.0
Patch Changes
@objectstack/knowledge-memory@9.5.0
Patch Changes
@objectstack/knowledge-ragflow@9.5.0
Patch Changes
@objectstack/plugin-approvals@9.5.0
Patch Changes
@objectstack/plugin-audit@9.5.0
Patch Changes
@objectstack/plugin-auth@9.5.0
Patch Changes
@objectstack/plugin-dev@9.5.0
Patch Changes
@objectstack/plugin-email@9.5.0
Patch Changes
@objectstack/plugin-hono-server@9.5.0
Patch Changes
@objectstack/plugin-msw@9.5.0
Patch Changes
@objectstack/plugin-org-scoping@9.5.0
Patch Changes
@objectstack/plugin-reports@9.5.0
Patch Changes
@objectstack/plugin-security@9.5.0
Patch Changes
@objectstack/plugin-sharing@9.5.0
Patch Changes
@objectstack/plugin-webhooks@9.5.0
Patch Changes
@objectstack/runtime@9.5.0
Patch Changes
@objectstack/service-ai@9.5.0
Patch Changes
@objectstack/service-analytics@9.5.0
Patch Changes
@objectstack/service-cache@9.5.0
Patch Changes
@objectstack/service-cluster@9.5.0
Patch Changes
@objectstack/service-cluster-redis@9.5.0
Patch Changes
@objectstack/service-datasource@9.5.0
Patch Changes
@objectstack/service-i18n@9.5.0
Patch Changes
@objectstack/service-knowledge@9.5.0
Patch Changes
@objectstack/service-package@9.5.0
Patch Changes
@objectstack/service-queue@9.5.0
Patch Changes
@objectstack/service-settings@9.5.0
Patch Changes
@objectstack/service-storage@9.5.0
Patch Changes
@objectstack/trigger-api@9.5.0
Patch Changes
@objectstack/trigger-record-change@9.5.0
Patch Changes
@objectstack/trigger-schedule@9.5.0
Patch Changes
@objectstack/types@9.5.0
Patch Changes
@objectstack/console@9.5.0
create-objectstack@9.5.0
objectstack-vscode@9.5.0
@objectstack/example-crm@4.0.46
Patch Changes
@objectstack/example-showcase@0.1.16
Patch Changes
@example/app-todo@4.0.46
Patch Changes