Skip to content

chore: release packages - #3248

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

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

Conversation

@github-actions

@github-actions github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

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

@object-ui/console@17.2.1

Patch Changes

  • @object-ui/sdui-parser@17.2.1
  • @object-ui/react-runtime@17.2.1

@object-ui/app-shell@17.2.1

Patch Changes

  • 12bf669: The record discussion panel now says "loading" while it is loading, instead of
    "No comments yet" (objectui#3209).

    FROM: opening any record page showed the discussion/chatter panel asserting
    No comments yet for the whole first leg of the page, then contradicting
    itself when the comments appeared. TO: the panel shows the loading row until
    the feed has actually answered, and only then commits to "this record has no
    comments".

    objectui#3205 gave RecordActivityTimeline the render branch that prefers a
    loading row over the empty copy, and RecordChatterPanel already forwarded
    loading to it in both positions — but on the chatter chain nothing
    produced the signal
    , so that branch could never fire. record:activity
    computes its own flag and was visibly fixed by RecordActivityTimeline 收下 loading 却完全不读——取数中的 feed 显示的是"暂无活动" #3205; chatter was not. The
    four wiring points are one chain and are all closed here, because any one of
    them left open still ships the empty copy to some user:

    • RecordDetailView — the host that OWNS the feed fetch — now derives a
      feedLoading flag from its two reads (sys_comment + sys_activity);
    • <DiscussionContextProvider loading={feedLoading}> publishes it (the field
      was already declared on DiscussionContextValue, and already read by
      record:activity);
    • the auto-appended <RecordChatterPanel loading={feedLoading}> — the panel
      authored pages get when they place no discussion slot — receives it
      directly;
    • the record:chatter / record:discussion renderer forwards
      loading={discussion?.loading}, so a hand-placed block is on the same
      chain as the synthesized one.

    The two reads run in parallel, so the flag closes over both: it clears on
    Promise.allSettled, and a REJECTED read counts as an answer. A deployment
    without the audit plugin 404s sys_activity and an object with
    enable.feeds: false 403s sys_comment; neither may pin the panel in a
    permanent spinner, which would be a worse bug than the one being fixed. The
    flag is keyed by object:recordId rather than being a plain boolean, so the
    first render of a record already reads as loading (no one-frame flash of the
    empty state) and navigating between records cannot show the previous record's
    settled answer.

    No tolerance was added at the consumer. The timeline still does not guess that
    "no items yet and just mounted" means loading — that guess is wrong the moment
    a record genuinely has no comments, and the signal belongs to whoever owns the
    fetch. Same shape as objectui#3165 / RecordActivityTimeline 收下 loading 却完全不读——取数中的 feed 显示的是"暂无活动" #3205: divergence converges at the
    producer.

  • 30ac2e1: ToolPreview stops advertising retired ToolSchema flags (objectui#3236).

    The metadata-admin tool preview painted a header strip of flag pills read
    straight off the raw draft: Requires confirmation, Active / Disabled,
    built-in, and the category tag. All four keys have been removed from
    @objectstack/spec's ToolSchemarequiresConfirmation in the 16.x line
    (objectstack#3715, ADR-0033 §2) and category / active / builtIn in
    17.0.0 (objectstack#3896 audit close-out). The schema is .strict() and now
    rejects each by name with an upgrade prescription, so no newly authored tool
    can carry them; verified against the @objectstack/spec@17.0.0-rc.1 this repo
    depends on.

    New metadata could not reach these pills — but rows stored before the removals
    still carry the keys, and for those the preview kept rendering. That is the
    harmful direction, not a cosmetic one:

    • Requires confirmation advertised a safety pause that no execution path has
      ever performed. Nothing read the key — not the LLM tool set (a tool reaches
      the model as name/description/parameters only), not ToolRegistry.execute,
      not POST /ai/tools/:name/execute. A reviewer reading the preview saw a
      destructive tool marked as gated when it was not. The real gate is
      action.ai.requiresConfirmation, which the HITL approval queue reads.
    • Disabled claimed a tool had been withdrawn while ToolRegistry.getAll()
      kept handing it to the LLM and the execute route kept running it.

    Same shape as objectui#2962: a UI badge advertising a capability the runtime
    does not have. The pills are gone; the surviving header strip shows label,
    machine name and the objectName pill (objectName is still a live spec key),
    and nothing else in the preview changed — parameters table, example LLM call
    and output schema are untouched.

    New tests feed the preview a stale draft that still carries all four retired
    keys and assert none of them renders, so the pills cannot grow back: the names
    survive in the spec's tombstone guidance, which gives the next reader a
    plausible-looking reason to "restore" them.

  • Updated dependencies [825bbe3]

  • Updated dependencies [d2363e7]

  • Updated dependencies [a321fa4]

    • @object-ui/components@17.2.1
    • @object-ui/fields@17.2.1
    • @object-ui/i18n@17.2.1
    • @object-ui/layout@17.2.1
    • @object-ui/plugin-editor@17.2.1
    • @object-ui/react@17.2.1
    • @object-ui/types@17.2.1
    • @object-ui/core@17.2.1
    • @object-ui/data-objectstack@17.2.1
    • @object-ui/auth@17.2.1
    • @object-ui/permissions@17.2.1
    • @object-ui/collaboration@17.2.1
    • @object-ui/providers@17.2.1

@object-ui/auth@17.2.1

Patch Changes

  • @object-ui/types@17.2.1

@object-ui/cli@17.2.1

Patch Changes

  • Updated dependencies [825bbe3]
    • @object-ui/components@17.2.1
    • @object-ui/react@17.2.1
    • @object-ui/types@17.2.1

@object-ui/collaboration@17.2.1

Patch Changes

  • @object-ui/types@17.2.1

@object-ui/components@17.2.1

Patch Changes

  • 825bbe3: The option widgets' "this list cannot be filled" message now has one source, and
    it is translated (objectui#3231).

    FROM: SelectField, MultiSelectField, RadioField and CheckboxesField each
    carried their own copy of the empty/gated state, each destructured the declared
    emptyHint prop into _emptyHint and dropped it, and each rendered a hardcoded
    English literal ('No options available', `Select ${…} first`) even in a
    Chinese or Japanese session. TO: one shared OptionsEmptyState — the host's
    emptyHint when it supplied one, otherwise a translated fallback
    (fields.options.empty / fields.options.selectFirst, added to all ten locale
    packs).

    emptyHint was declared, produced by the form renderer and transported, then
    lost three times over — so no registered widget could ever render it. All three
    breaks are fixed, because closing only the last one delivers nothing:

    • isOptionField compared the raw resolved type against 'select' /'radio' /
      'multiselect' / 'checkboxes'. Object-derived forms emit
      mapFieldTypeToFormType's prefixed ids (field:select), which matched none of
      them, so for every option field coming from an object schema — the normal case
      in the console — the whole cascade block was skipped and no hint was computed
      at all. It now normalizes the field: prefix, the same normalization
      stripRegisteredFieldProps already applied a few lines below.
    • stripRegisteredFieldProps then removed the emptyHint key from what was
      left. It is now forwarded to the four cascade option types, alongside
      dependentValues. This stays an allow-list rather than a blanket
      pass-through: every other registered widget spreads its leftover props onto a
      DOM node, where an unknown emptyHint attribute is a React warning.
    • the widgets themselves discarded it. Keeping it out of the ...props spread
      was correct; not using it afterwards was not.

    User-visible effect: a dependency-gated option list now prompts with the
    controlling field's label ("Select Country first") instead of its raw
    metadata name, in the session's language; an unconfigured list says so in the
    session's language too. The gate sentence is one i18n key shared by the renderer
    and the widget fallback, so the two sides cannot word it differently.

    Untouched: the built-in (unregistered) select branch of the form renderer,
    which already consumed emptyHint. That is a separate live path.

  • Updated dependencies [825bbe3]

    • @object-ui/i18n@17.2.1
    • @object-ui/react@17.2.1
    • @object-ui/sdui-parser@17.2.1
    • @object-ui/types@17.2.1
    • @object-ui/core@17.2.1
    • @object-ui/react-runtime@17.2.1

@object-ui/core@17.2.1

Patch Changes

  • @object-ui/types@17.2.1

@object-ui/data-objectstack@17.2.1

Patch Changes

  • @object-ui/types@17.2.1
  • @object-ui/core@17.2.1

@object-ui/fields@17.2.1

Patch Changes

  • 825bbe3: The option widgets' "this list cannot be filled" message now has one source, and
    it is translated (objectui#3231).

    FROM: SelectField, MultiSelectField, RadioField and CheckboxesField each
    carried their own copy of the empty/gated state, each destructured the declared
    emptyHint prop into _emptyHint and dropped it, and each rendered a hardcoded
    English literal ('No options available', `Select ${…} first`) even in a
    Chinese or Japanese session. TO: one shared OptionsEmptyState — the host's
    emptyHint when it supplied one, otherwise a translated fallback
    (fields.options.empty / fields.options.selectFirst, added to all ten locale
    packs).

    emptyHint was declared, produced by the form renderer and transported, then
    lost three times over — so no registered widget could ever render it. All three
    breaks are fixed, because closing only the last one delivers nothing:

    • isOptionField compared the raw resolved type against 'select' /'radio' /
      'multiselect' / 'checkboxes'. Object-derived forms emit
      mapFieldTypeToFormType's prefixed ids (field:select), which matched none of
      them, so for every option field coming from an object schema — the normal case
      in the console — the whole cascade block was skipped and no hint was computed
      at all. It now normalizes the field: prefix, the same normalization
      stripRegisteredFieldProps already applied a few lines below.
    • stripRegisteredFieldProps then removed the emptyHint key from what was
      left. It is now forwarded to the four cascade option types, alongside
      dependentValues. This stays an allow-list rather than a blanket
      pass-through: every other registered widget spreads its leftover props onto a
      DOM node, where an unknown emptyHint attribute is a React warning.
    • the widgets themselves discarded it. Keeping it out of the ...props spread
      was correct; not using it afterwards was not.

    User-visible effect: a dependency-gated option list now prompts with the
    controlling field's label ("Select Country first") instead of its raw
    metadata name, in the session's language; an unconfigured list says so in the
    session's language too. The gate sentence is one i18n key shared by the renderer
    and the widget fallback, so the two sides cannot word it differently.

    Untouched: the built-in (unregistered) select branch of the form renderer,
    which already consumed emptyHint. That is a separate live path.

  • a321fa4: TextAreaField's mobile fullscreen flag converges on its one real producer
    (objectui#3232).

    FROM: the widget resolved the "show the expand affordance" decision through a
    four-way ?? chain — a mobileFullscreen (camelCase) prop, the field
    metadata's mobile_fullscreen, a mobile_fullscreen prop, and
    schema.mobile_fullscreen. TO: a single read of the field metadata's
    mobile_fullscreen, resolved through the field || schema carrier pair every
    widget in this package already uses.

    No runtime behaviour changes, because three of those four reads were
    permanently undefined:

    • mobileFullscreen (camelCase) had no producer anywhere in the repo — the
      only occurrences of that spelling were the widget's own read and the
      destructure that kept it off the DOM spread. The doc comment nonetheless
      claimed "the host form passes mobileFullscreen", so the contract it
      described had never held.
    • mobile_fullscreen as a prop cannot arrive: the form renderer's
      stripRegisteredFieldProps explicitly removes mobile_fullscreen and
      fullscreen from the props forwarded to registered field widgets.
    • schema.mobile_fullscreen was the same object field || schema already
      resolves, so it could only ever restate the metadata read.

    What actually drives the affordance — and is now the only thing that does — is
    the field metadata flag ObjectForm stamps onto long-text fields from
    ObjectFormSchema.mobile.fullscreenLongText. That path is unchanged and is now
    pinned by tests (button, dialog, and the committed edit), so the cleanup cannot
    have silently removed the working behaviour.

    Also untouched: the built-in (unregistered) textarea branch of the form
    renderer, which reads mobile_fullscreen || fullscreen off the form-field
    props and renders its own FullscreenTextarea. That is a separate live path.

    Why this is worth a changeset rather than a silent tidy-up: reads that nobody
    writes are not free. They document a contract that does not exist — the next
    author follows the comment, passes the prop, and is ignored without a word —
    and a ?? chain that accepts four spellings and rejects none is exactly where
    a misspelled key hides. With one source, a wrong spelling has no read path left
    to absorb it. Per AGENTS.md #0.1 and Prime Directive [WIP] Enhance UI components for forms and layouts #12, divergence like this
    converges at the producer, not by accumulating tolerance at the consumer. No
    host-override prop was invented in its place: inventing a key with no producer
    is the same mistake in the other direction.

  • Updated dependencies [825bbe3]

    • @object-ui/components@17.2.1
    • @object-ui/i18n@17.2.1
    • @object-ui/react@17.2.1
    • @object-ui/types@17.2.1
    • @object-ui/core@17.2.1
    • @object-ui/providers@17.2.1

@object-ui/i18n@17.2.1

Patch Changes

  • 825bbe3: The option widgets' "this list cannot be filled" message now has one source, and
    it is translated (objectui#3231).

    FROM: SelectField, MultiSelectField, RadioField and CheckboxesField each
    carried their own copy of the empty/gated state, each destructured the declared
    emptyHint prop into _emptyHint and dropped it, and each rendered a hardcoded
    English literal ('No options available', `Select ${…} first`) even in a
    Chinese or Japanese session. TO: one shared OptionsEmptyState — the host's
    emptyHint when it supplied one, otherwise a translated fallback
    (fields.options.empty / fields.options.selectFirst, added to all ten locale
    packs).

    emptyHint was declared, produced by the form renderer and transported, then
    lost three times over — so no registered widget could ever render it. All three
    breaks are fixed, because closing only the last one delivers nothing:

    • isOptionField compared the raw resolved type against 'select' /'radio' /
      'multiselect' / 'checkboxes'. Object-derived forms emit
      mapFieldTypeToFormType's prefixed ids (field:select), which matched none of
      them, so for every option field coming from an object schema — the normal case
      in the console — the whole cascade block was skipped and no hint was computed
      at all. It now normalizes the field: prefix, the same normalization
      stripRegisteredFieldProps already applied a few lines below.
    • stripRegisteredFieldProps then removed the emptyHint key from what was
      left. It is now forwarded to the four cascade option types, alongside
      dependentValues. This stays an allow-list rather than a blanket
      pass-through: every other registered widget spreads its leftover props onto a
      DOM node, where an unknown emptyHint attribute is a React warning.
    • the widgets themselves discarded it. Keeping it out of the ...props spread
      was correct; not using it afterwards was not.

    User-visible effect: a dependency-gated option list now prompts with the
    controlling field's label ("Select Country first") instead of its raw
    metadata name, in the session's language; an unconfigured list says so in the
    session's language too. The gate sentence is one i18n key shared by the renderer
    and the widget fallback, so the two sides cannot word it differently.

    Untouched: the built-in (unregistered) select branch of the form renderer,
    which already consumed emptyHint. That is a separate live path.

@object-ui/layout@17.2.1

Patch Changes

  • d2363e7: The legacy page-header alias stops advertising description as an authorable
    key (objectui#3226).

    FROM: registerLayout() declared inputs: [title, description]. TO:
    inputs: [title, subtitle] — the key @objectstack/spec/ui's PageHeaderProps
    declares, and the one the canonical page:header renderer in
    @object-ui/components already declares.

    inputs is a DECLARATION surface, not documentation: the designer builds its
    property palette from it, and the framework's check:react-declaration-parity
    diffs it against the spec schemas. Declaring description therefore did not
    merely tolerate a legacy spelling — it published a second dialect for the one
    concept the protocol calls subtitle, and told authors (an AI author most
    readily, since the registry is what it reads to learn the shape) that the
    non-spec key was legal. Metadata that took the offer renders a subtitle under
    page-header and silently loses it under page:header: same JSON, two results,
    which is the outcome a single contract exists to prevent.

    No runtime behaviour changes. PageHeader still reads subtitle ?? description,
    deliberately: this alias exists for out-of-repo consumer schemas, so "no in-repo
    author writes description" (verified — zero hits) is not evidence that nobody
    does, and dropping the read today would delete an external page's second line
    while its title kept rendering, the least reportable failure mode there is. That
    read is retired together with an ADR-0087 D2 conversion entry
    (page-header-subtitle-alias, descriptionsubtitle rewritten at load
    time), which lives in the framework repo and is tracked separately. Narrowing the
    declaration did not need to wait on it and breaks no consumer; leaving the
    declaration wrong in the meantime keeps minting the metadata the conversion would
    then have to absorb.

    New tests pin both halves so neither can drift back: the registration may not
    declare description, must declare subtitle, and — checked against the spec's
    own shape rather than a hand-written allowlist — may declare nothing
    @objectstack/spec does not; while the runtime fallback is pinned as a sequencing
    guard, to be deleted in the same change that lands the conversion entry.

  • Updated dependencies [825bbe3]

    • @object-ui/components@17.2.1
    • @object-ui/react@17.2.1
    • @object-ui/types@17.2.1
    • @object-ui/core@17.2.1

@object-ui/mobile@17.2.1

Patch Changes

  • @object-ui/types@17.2.1

@object-ui/permissions@17.2.1

Patch Changes

  • @object-ui/types@17.2.1

@object-ui/plugin-ai@17.2.1

Patch Changes

  • Updated dependencies [825bbe3]
    • @object-ui/components@17.2.1
    • @object-ui/react@17.2.1
    • @object-ui/types@17.2.1
    • @object-ui/core@17.2.1

@object-ui/plugin-calendar@17.2.1

Patch Changes

  • Updated dependencies [825bbe3]
  • Updated dependencies [12bf669]
  • Updated dependencies [a321fa4]
    • @object-ui/components@17.2.1
    • @object-ui/fields@17.2.1
    • @object-ui/i18n@17.2.1
    • @object-ui/plugin-detail@17.2.1
    • @object-ui/react@17.2.1
    • @object-ui/types@17.2.1
    • @object-ui/core@17.2.1
    • @object-ui/mobile@17.2.1

@object-ui/plugin-charts@17.2.1

Patch Changes

  • Updated dependencies [825bbe3]
    • @object-ui/components@17.2.1
    • @object-ui/i18n@17.2.1
    • @object-ui/react@17.2.1
    • @object-ui/types@17.2.1
    • @object-ui/core@17.2.1

@object-ui/plugin-chatbot@17.2.1

Patch Changes

  • Updated dependencies [825bbe3]
    • @object-ui/components@17.2.1
    • @object-ui/i18n@17.2.1
    • @object-ui/react@17.2.1
    • @object-ui/types@17.2.1
    • @object-ui/core@17.2.1

@object-ui/plugin-dashboard@17.2.1

Patch Changes

  • Updated dependencies [825bbe3]
  • Updated dependencies [a321fa4]
    • @object-ui/components@17.2.1
    • @object-ui/fields@17.2.1
    • @object-ui/i18n@17.2.1
    • @object-ui/react@17.2.1
    • @object-ui/types@17.2.1
    • @object-ui/core@17.2.1

@object-ui/plugin-designer@17.2.1

Patch Changes

  • Updated dependencies [825bbe3]
  • Updated dependencies [a321fa4]
    • @object-ui/components@17.2.1
    • @object-ui/fields@17.2.1
    • @object-ui/i18n@17.2.1
    • @object-ui/plugin-form@17.2.1
    • @object-ui/plugin-grid@17.2.1
    • @object-ui/react@17.2.1
    • @object-ui/types@17.2.1
    • @object-ui/core@17.2.1
    • @object-ui/data-objectstack@17.2.1

@object-ui/plugin-detail@17.2.1

Patch Changes

  • 12bf669: The record discussion panel now says "loading" while it is loading, instead of
    "No comments yet" (objectui#3209).

    FROM: opening any record page showed the discussion/chatter panel asserting
    No comments yet for the whole first leg of the page, then contradicting
    itself when the comments appeared. TO: the panel shows the loading row until
    the feed has actually answered, and only then commits to "this record has no
    comments".

    objectui#3205 gave RecordActivityTimeline the render branch that prefers a
    loading row over the empty copy, and RecordChatterPanel already forwarded
    loading to it in both positions — but on the chatter chain nothing
    produced the signal
    , so that branch could never fire. record:activity
    computes its own flag and was visibly fixed by RecordActivityTimeline 收下 loading 却完全不读——取数中的 feed 显示的是"暂无活动" #3205; chatter was not. The
    four wiring points are one chain and are all closed here, because any one of
    them left open still ships the empty copy to some user:

    • RecordDetailView — the host that OWNS the feed fetch — now derives a
      feedLoading flag from its two reads (sys_comment + sys_activity);
    • <DiscussionContextProvider loading={feedLoading}> publishes it (the field
      was already declared on DiscussionContextValue, and already read by
      record:activity);
    • the auto-appended <RecordChatterPanel loading={feedLoading}> — the panel
      authored pages get when they place no discussion slot — receives it
      directly;
    • the record:chatter / record:discussion renderer forwards
      loading={discussion?.loading}, so a hand-placed block is on the same
      chain as the synthesized one.

    The two reads run in parallel, so the flag closes over both: it clears on
    Promise.allSettled, and a REJECTED read counts as an answer. A deployment
    without the audit plugin 404s sys_activity and an object with
    enable.feeds: false 403s sys_comment; neither may pin the panel in a
    permanent spinner, which would be a worse bug than the one being fixed. The
    flag is keyed by object:recordId rather than being a plain boolean, so the
    first render of a record already reads as loading (no one-frame flash of the
    empty state) and navigating between records cannot show the previous record's
    settled answer.

    No tolerance was added at the consumer. The timeline still does not guess that
    "no items yet and just mounted" means loading — that guess is wrong the moment
    a record genuinely has no comments, and the signal belongs to whoever owns the
    fetch. Same shape as objectui#3165 / RecordActivityTimeline 收下 loading 却完全不读——取数中的 feed 显示的是"暂无活动" #3205: divergence converges at the
    producer.

  • Updated dependencies [825bbe3]

    • @object-ui/i18n@17.2.1

@object-ui/plugin-editor@17.2.1

Patch Changes

  • Updated dependencies [825bbe3]
    • @object-ui/components@17.2.1
    • @object-ui/react@17.2.1
    • @object-ui/types@17.2.1
    • @object-ui/core@17.2.1

@object-ui/plugin-form@17.2.1

Patch Changes

  • Updated dependencies [825bbe3]
  • Updated dependencies [a321fa4]
    • @object-ui/components@17.2.1
    • @object-ui/fields@17.2.1
    • @object-ui/i18n@17.2.1
    • @object-ui/react@17.2.1
    • @object-ui/types@17.2.1
    • @object-ui/core@17.2.1
    • @object-ui/permissions@17.2.1

@object-ui/plugin-gantt@17.2.1

Patch Changes

  • Updated dependencies [825bbe3]
  • Updated dependencies [12bf669]
  • Updated dependencies [a321fa4]
    • @object-ui/components@17.2.1
    • @object-ui/fields@17.2.1
    • @object-ui/i18n@17.2.1
    • @object-ui/plugin-detail@17.2.1
    • @object-ui/react@17.2.1
    • @object-ui/types@17.2.1
    • @object-ui/core@17.2.1

@object-ui/plugin-grid@17.2.1

Patch Changes

  • Updated dependencies [825bbe3]
  • Updated dependencies [a321fa4]
    • @object-ui/components@17.2.1
    • @object-ui/fields@17.2.1
    • @object-ui/i18n@17.2.1
    • @object-ui/react@17.2.1
    • @object-ui/types@17.2.1
    • @object-ui/core@17.2.1
    • @object-ui/permissions@17.2.1
    • @object-ui/mobile@17.2.1

@object-ui/plugin-kanban@17.2.1

Patch Changes

  • Updated dependencies [825bbe3]
  • Updated dependencies [12bf669]
  • Updated dependencies [a321fa4]
    • @object-ui/components@17.2.1
    • @object-ui/fields@17.2.1
    • @object-ui/i18n@17.2.1
    • @object-ui/plugin-detail@17.2.1
    • @object-ui/react@17.2.1
    • @object-ui/types@17.2.1
    • @object-ui/core@17.2.1

@object-ui/plugin-map@17.2.1

Patch Changes

  • Updated dependencies [825bbe3]
    • @object-ui/components@17.2.1
    • @object-ui/react@17.2.1
    • @object-ui/types@17.2.1
    • @object-ui/core@17.2.1

@object-ui/plugin-markdown@17.2.1

Patch Changes

  • Updated dependencies [825bbe3]
    • @object-ui/components@17.2.1
    • @object-ui/react@17.2.1
    • @object-ui/types@17.2.1
    • @object-ui/core@17.2.1

@object-ui/plugin-report@17.2.1

Patch Changes

  • Updated dependencies [825bbe3]
  • Updated dependencies [a321fa4]
    • @object-ui/components@17.2.1
    • @object-ui/fields@17.2.1
    • @object-ui/i18n@17.2.1
    • @object-ui/plugin-grid@17.2.1
    • @object-ui/react@17.2.1
    • @object-ui/types@17.2.1
    • @object-ui/core@17.2.1

@object-ui/plugin-timeline@17.2.1

Patch Changes

  • Updated dependencies [825bbe3]
    • @object-ui/components@17.2.1
    • @object-ui/i18n@17.2.1
    • @object-ui/react@17.2.1
    • @object-ui/types@17.2.1
    • @object-ui/core@17.2.1
    • @object-ui/mobile@17.2.1

@object-ui/plugin-tree@17.2.1

Patch Changes

  • Updated dependencies [825bbe3]
    • @object-ui/components@17.2.1
    • @object-ui/react@17.2.1
    • @object-ui/types@17.2.1
    • @object-ui/core@17.2.1

@object-ui/plugin-view@17.2.1

Patch Changes

  • Updated dependencies [825bbe3]
    • @object-ui/components@17.2.1
    • @object-ui/i18n@17.2.1
    • @object-ui/plugin-form@17.2.1
    • @object-ui/plugin-grid@17.2.1
    • @object-ui/react@17.2.1
    • @object-ui/types@17.2.1
    • @object-ui/core@17.2.1

@object-ui/providers@17.2.1

Patch Changes

  • @object-ui/types@17.2.1

@object-ui/react@17.2.1

Patch Changes

  • Updated dependencies [825bbe3]
    • @object-ui/i18n@17.2.1
    • @object-ui/types@17.2.1
    • @object-ui/core@17.2.1
    • @object-ui/data-objectstack@17.2.1

@object-ui/runner@17.2.1

Patch Changes

  • Updated dependencies [825bbe3]
    • @object-ui/components@17.2.1
    • @object-ui/plugin-charts@17.2.1
    • @object-ui/plugin-kanban@17.2.1
    • @object-ui/react@17.2.1
    • @object-ui/types@17.2.1
    • @object-ui/core@17.2.1

@object-ui/create-plugin@17.2.1

@object-ui/plugin-list@17.2.1

@object-ui/react-runtime@17.2.1

@object-ui/sdui-parser@17.2.1

@object-ui/types@17.2.1

object-ui@17.2.1

Patch Changes

  • @object-ui/types@17.2.1
  • @object-ui/core@17.2.1

@vercel

vercel Bot commented Aug 3, 2026

Copy link
Copy Markdown

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

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
objectui Ignored Ignored Aug 3, 2026 9:48am

Request Review

@github-actions
github-actions Bot force-pushed the changeset-release/main branch 6 times, most recently from 14cdb09 to 889fade Compare August 3, 2026 09:33
@github-actions
github-actions Bot force-pushed the changeset-release/main branch from 889fade to e17ce78 Compare August 3, 2026 09:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants