github BuilderIO/agent-native @agent-native/toolkit@0.223.0

latest releases: clips-v0.1.339, v0.1.289, @agent-native/skills@0.3.56...
3 hours ago

Minor Changes

  • 033d9ad: One way to show a comment, in every app:

    • New CommentBody from @agent-native/toolkit/app/review draws a comment's Markdown: paragraphs, bold, italic, strikethrough, code, links, lists, quotes, code blocks and mention chips, with headings as bold lines. Raw HTML shows as written, so a note like use <Button> here keeps its tag; HTML comments stay hidden. Mentions come from a mentions list (@label, whole words only, or pinned with at) or from @[Name](mailto:…) text. A label two listed people share stays text, rather than name one of them for both. renderMention draws a mention an app's own way; returning nothing keeps the kit's chip. compact flattens it to one run of text for previews, with links shown as text and chips in the line's size and color, so they read on a dark card. Past 20,000 characters, or from a paragraph nested or tangled far past what people write (brackets, quotes or list markers more than 16 deep, more than 1,000 emphasis markers in one paragraph, or brackets the parser would spend long looking back for), the rest shows as plain text, so one comment can't stall the page. Code in a fence doesn't count, and rather than split a code block at 20,000 characters, the plain text starts before it. If drawing a comment fails, it shows as written instead of breaking the list it sits in.
    • ReviewCommentItem uses it, so review comments keep their lists, quotes and code blocks, and mentions show as chips.
    • New commentPlainText() and commentExcerpt() from @agent-native/core/review/plain-text turn a comment into plain text for emails and webhooks. They read the comment with the same Markdown parser as the renderer, so the text matches what the comment shows. The kit's reply and mention emails quote comments with them, so they no longer show Markdown markers or @[Name](mailto:…). COMMENT_MARKDOWN_LIMIT and splitCommentAtMarkdownLimit() from the same module give the cut both use.
    • InlineMarkdown shows a protected span's own text inside inline code and code blocks, instead of its placeholder link. A new showRawHtml option shows raw HTML as text rather than skip it, with its HTML comments cut out.
    • Toolkit now requires Core 0.223.0 or newer, because CommentBody uses Core's comment plain text.
  • 7138000: One send key in every comment box: Enter sends, Shift+Enter starts a new line, and Cmd/Ctrl+Enter sends too. Nothing sends while an input method is composing, so Enter can confirm a Japanese, Chinese or Korean word.

    • New isCommentSendKey() and isComposingKey() from @agent-native/toolkit/app/review check a keydown against that rule.
    • ReviewCommentComposer now sends on Enter by default. Pass submitOnEnter={false} to keep Enter for new lines; Cmd/Ctrl+Enter then still sends, where before it did nothing.
  • f527363: The share popover is one panel: an invite field for people, groups and org agents, one "People with access" list, general access ("Only people invited", "Anyone at ", "Anyone with the link"), and a footer with Copy link and a Send to menu. Roles read "Can view", "Can comment", "Can edit" and "Can manage access", and Remove access moved into each row's role menu.

    Org service principals can now be shared with like people: list-resource-shares returns agents for owners and admins in the resource's org, marks agent rows with agent: true, and resolves people's profile names into displayName and ownerDisplayName. Resources locked to their org accept live agents of that org, and agents are never emailed.

    Breaking for ShareButton: agentTabContent, peopleTabLabel, agentsTabLabel and the secondaryShareUrl* props are removed. Pass a sendTo prop (openInAgent, items, copyAgentPrompt, openMcpSettings) instead. shareUrlPlacement and shareUrlDescription no longer affect rendering.

    writeClipboardText keeps its fallback copy inside the open dialog or menu, so copying from a popover no longer closes it when the async clipboard is unavailable.

    registerShareableResource accepts agentRead: { actions, idParam? } naming the MCP tool that reads one resource. list-resource-shares returns it, and the share panel then offers Open in Claude, Open in Claude Code, Open in Codex and Copy agent prompt with a prompt that sends the agent to the app's MCP server. Analytics, Assets, Brain, Design, Forms, Plan, Slides and Slides 2 declare it.

Patch Changes

  • 3a2fa31: Accept explicit undefined for optional composer seed values without changing runtime behavior.
  • 92d54bb: Scrub inputs show and commit at most two decimals when a field sets no precision, so float noise from the browser no longer reaches the field. VisualColorPicker takes textColor to draw its swatch as a bold "A" over a bar in the picked color, and its menu caret is a Tabler chevron.
  • 23cf2ea: Build each app faster. The resource icon picker's Tabler chunks now carry icon data instead of importing every icon component, so an app's client build handles about 3,200 modules instead of 9,200, and the picker's icon chunks are about 20% smaller. Core's stub and shim Vite plugins declare hook filters, so the bundler no longer calls into them for every import. Icons render exactly as before.
  • 92d54bb: FontSizeField from the design tweaks entry is a compact font size combobox: type a size and press Enter, pick one from a caller-provided type scale (with optional named sizes listed first), or step through the scale with the arrow keys. An optional scrubIcon adds a drag handle that previews and commits like the inspector's scrub fields, and allowRelativeExpressions reports a typed Mixed+2 on a mixed selection as meta.relativeExpression.
  • 92d54bb: @agent-native/core/server reads Google's public font catalog with readGoogleFontCatalog, listing every family with the weights and italics it ships, most popular first. The toolkit font picker searches that whole library, previews each family in its own face, and loads any catalog family on the canvas through ensureGoogleFontStylesheets.
  • Release all public npm packages with a patch version bump.
  • 8cdee8a: In Safari, the More actions toggle on an agent reply closes on a second click, and Copy request ID copies again.
  • 3a2fa31: Allow applications to select the initial resource icon tab, observe temporary upload previews and add upload controls.
  • 3a2fa31: Show result-scoped semantic model attribution after built-in charts when valid metadata is provided.
  • 2428fde: ReviewAuthorAvatar is now the one avatar for a person on every review surface, and the @ picker's ReviewMentionAvatar uses it too. It shows their photo when they have one and otherwise their initials ("EA") on a color that stays the same for that person, from the --review-avatar-1 to --review-avatar-6 tokens when an app defines them and a dark gray when it does not. It gains a 16px size (one letter) and a decorative prop, an agent shows its brand mark, and reviewInitials is exported. Initials now skip words that have no letter in them.
  • 2428fde: Review comments can carry their own menu: the new ReviewCommentMenu (Edit, Delete) goes in ReviewCommentItem's new menu slot, which replaces the reply clock time (a comment now shows only its age). The card's resolve, close and More actions buttons show tooltips, ReviewThreadMenu drops its "Reply in thread" item, and ReviewCommentComposer reports the text after an @ through onMentionQueryChange (and again with an empty query when it unmounts) so a host can search its people list server-side. While the host's mentionOptionsLoading is true and nothing in the list matches yet, the picker stays hidden instead of saying no one was found, and when mentionOptionsFailed is true it says the people could not be loaded (mentionFailedLabel) instead.
  • eacd478: Reply emails from the Comments & Review Kit now reach everyone in the thread on busy resources. The kit used to look for a thread's people among the resource's first 200 comments, so on a design or page with more comments than that, people in newer threads got no email; it now looks them up by thread with listReviewThreadParticipantEmails. Deleting a review comment now clears its text, mentions, anchor (which can quote the text it points at), image attachments and any resolution note, as apps that remove the row do, and so does deleting a thread for each reply it takes along. The comment box's mention parser reads the characters beside each @ without copying the line, so loading a long line with many @ signs into the box takes linear time.
  • 95841d4: Show a back arrow beside "Back to " in Settings instead of an empty gap.
  • 92d54bb: ShareButton takes an anchor element for hideTrigger, so a share popover opened from a menu can sit beside the item it shares instead of the window corner. normalizeCanvasHotkeyKey from the canvas interactions entry reads a shortcut's letter from its physical key, so Option chords on macOS still match.
  • 3a2fa31: Add reusable chart schemas and optional UI controls while preserving current framework defaults.
  • 3a2fa31: Tighten shared audit and SQL boundary types, preserve scoped connection updates, and localize sign-out cleanup errors.
  • 3a2fa31: Allow application-selected empty-state suggestion sizing and explicit optional-value clearing for sharing and charts.
  • d795784: A sheet opened from inside a dialog now opens above it instead of behind it, and a popover inside a dialog or sheet scrolls with the mouse wheel instead of only by dragging its scrollbar.
  • 4699487: Opening a menu or popover no longer restyles the whole page in Safari. A message-queue rule in the AgentKit styles used :first-of-type, which made WebKit recompute every element's style whenever an overlay inserted its focus guards at the top of <body>.
  • Updated dependencies
    • @agent-native/agentkit@0.223.0

Don't miss a new agent-native release

NewReleases is sending notifications on new releases.