Repository navigation
@agent-native/toolkit@0.223.0
Minor Changes
-
033d9ad: One way to show a comment, in every app:
- New
CommentBodyfrom@agent-native/toolkit/app/reviewdraws 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 likeuse <Button> herekeeps its tag; HTML comments stay hidden. Mentions come from amentionslist (@label, whole words only, or pinned withat) or from@[Name](mailto:…)text. A label two listed people share stays text, rather than name one of them for both.renderMentiondraws a mention an app's own way; returning nothing keeps the kit's chip.compactflattens 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. ReviewCommentItemuses it, so review comments keep their lists, quotes and code blocks, and mentions show as chips.- New
commentPlainText()andcommentExcerpt()from@agent-native/core/review/plain-textturn 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_LIMITandsplitCommentAtMarkdownLimit()from the same module give the cut both use. InlineMarkdownshows a protected span's own text inside inline code and code blocks, instead of its placeholder link. A newshowRawHtmloption 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
CommentBodyuses Core's comment plain text.
- New
-
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()andisComposingKey()from@agent-native/toolkit/app/reviewcheck a keydown against that rule. ReviewCommentComposernow sends on Enter by default. PasssubmitOnEnter={false}to keep Enter for new lines; Cmd/Ctrl+Enter then still sends, where before it did nothing.
- New
-
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-sharesreturnsagentsfor owners and admins in the resource's org, marks agent rows withagent: true, and resolves people's profile names intodisplayNameandownerDisplayName. Resources locked to their org accept live agents of that org, and agents are never emailed.Breaking for
ShareButton:agentTabContent,peopleTabLabel,agentsTabLabeland thesecondaryShareUrl*props are removed. Pass asendToprop (openInAgent,items,copyAgentPrompt,openMcpSettings) instead.shareUrlPlacementandshareUrlDescriptionno longer affect rendering.writeClipboardTextkeeps its fallback copy inside the open dialog or menu, so copying from a popover no longer closes it when the async clipboard is unavailable.registerShareableResourceacceptsagentRead: { actions, idParam? }naming the MCP tool that reads one resource.list-resource-sharesreturns 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.VisualColorPickertakestextColorto 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:
FontSizeFieldfrom 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 optionalscrubIconadds a drag handle that previews and commits like the inspector's scrub fields, andallowRelativeExpressionsreports a typedMixed+2on a mixed selection asmeta.relativeExpression. - 92d54bb:
@agent-native/core/serverreads Google's public font catalog withreadGoogleFontCatalog, 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 throughensureGoogleFontStylesheets. - 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:
ReviewAuthorAvataris now the one avatar for a person on every review surface, and the@picker'sReviewMentionAvataruses 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-1to--review-avatar-6tokens when an app defines them and a dark gray when it does not. It gains a 16px size (one letter) and adecorativeprop, an agent shows its brand mark, andreviewInitialsis 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 inReviewCommentItem's newmenuslot, which replaces the reply clock time (a comment now shows only its age). The card's resolve, close and More actions buttons show tooltips,ReviewThreadMenudrops its "Reply in thread" item, andReviewCommentComposerreports the text after an@throughonMentionQueryChange(and again with an empty query when it unmounts) so a host can search its people list server-side. While the host'smentionOptionsLoadingis true and nothing in the list matches yet, the picker stays hidden instead of saying no one was found, and whenmentionOptionsFailedis 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:
ShareButtontakes ananchorelement forhideTrigger, so a share popover opened from a menu can sit beside the item it shares instead of the window corner.normalizeCanvasHotkeyKeyfrom 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