Minor Changes
- 210c7d0: Introduce AgentKit as one public package with subpath exports for the protocol,
headless client, HTTP transport, transport conformance, and React runtime
(@agent-native/agentkit,/protocol,/http,/conformance,/react, and
/react/*), where the root and/httpentries stay React-free; a
versioned, provider-neutral protocol; validated messages, runs, capabilities,
approvals, activities, smart objects, uploads, actions, participants, tasks,
custom content, and durable thread snapshots; and typed compatibility,
cancellation, and error semantics. Add the headless client, resumable HTTP and
SSE adapters, executable transport conformance, and composable React provider,
hooks, slots, registries, semantic UI, safe streamed Markdown, run recovery,
host-aware copy confirmation, capability-gated feedback and forking with
visible mutation state, and durable queued-message promotion.
Add typed, replay-safe contextual connection requests with host-controlled
setup, retry, decline, and resumable-run handling.
Choice prompts now offer a focused custom response by default, preserve that
answer separately from predefined option ids across transports, and let hosts
disable the affordance for deliberately constrained workflows.
Completed activity groups now collapse to a duration-aware “Worked for…” row
while preserving their expandable action history.
Execution segments now settle at the first visible assistant output rather than
the terminal run event, so response streaming time is not counted as working
time and hidden reasoning does not prematurely end the work phase.
Active execution segments now expose a duration-aware “Working for…” spine and
cluster consecutive equivalent default tool activity without discarding trace
detail or overriding host renderers.
The entire chat frame now owns transcript scrolling while the inner transcript
retains its constrained reading measure, so wheel input works from either gutter.
Activity traces now share a protocol-level semantic taxonomy, render distinct
icons for searches, reads, edits, commands, checks, MCP calls, connections,
navigation, delegation, and approvals, and give the run-level work spine its own
identity instead of presenting every operation as a generic tool.
Run startup now becomes active before the first streamed event arrives, keeping
rapid follow-ups in the durable queue instead of launching overlapping runs.
Transcript following ignores queue-only state churn, follows queue-driven
viewport resizing, distinguishes programmatic scrolls from deliberate history
navigation, and avoids redundant scroll writes during sustained streamed
output.
Chat shells can now preserve accepted AgentKit runs across thread navigation,
observe typed per-thread lifecycle state in surrounding chrome, show background
activity in rails, and surface a newly submitted conversation before durable
history catches up.
Host chrome now distinguishes active execution from the pre-response working
phase, so progress indicators settle when visible assistant output begins while
queueing and cancellation remain active through the terminal event.
Core and AgentKit now share one animation-frame-paced streaming primitive with
adaptive backlog draining, incremental grapheme segmentation, reduced-motion
support, background-tab catch-up, and stable memoized Markdown blocks, avoiding
chunk dumps and whole-response reparsing during long answers. - 210c7d0: Add shared composer and clipboard primitives for a composable PromptBar, agent-authored next
actions, a recessed message queue, contextual tool and slash discovery, voice
controls, compact assistant actions, stable focus, accessible multiline input,
and semantic elevation that remains correct across light and dark surfaces.
Patch Changes
-
743039f: Clear a submitted prompt composer's persisted localStorage draft even when the host closes or unmounts the composer before the submit promise resolves, so an abandoned draft no longer resurfaces on the next mount. Also guard against a late-resolving submit from an unmounted composer clearing a newer draft that a fresh instance persisted under the same scope in the meantime.
-
bd3e96e: Show a connection label instead of an unavailable model in the composer.
-
b83d472: Clarify the difference between live voice chat and message dictation.
-
875f793: Fix three reported Content defects at their shared boundaries.
findConnectedMcpServersForProvider()(new, from@agent-native/core/mcp-client)
resolves the remote MCP servers a user or org has saved for one catalog
provider, so an app-level status action can stop answering "not connected" for a
provider that Settings shows connected. Any app that keeps its own provider
credential registry alongside the MCP catalog had the same latent conflation.
The provider host table moved to@agent-native/core/shared/mcp-provider-hosts
so a server path can match provider URLs without importing the inlined logo data
from the client catalog.TaskListPasteNormalization(new, from@agent-native/toolkit/editor) rewrites
foreign checkbox-list HTML into the canonicaldata-type="taskList"shape
before the schema parses it, so pasting a checklist from Notion or GitHub keeps
its checkboxes instead of degrading to plain bullets. It is registered
automatically whenever the shared editor factory'stasksfeature is on.The shared block drag handle no longer opens its menu in the top-left corner of
the window.getBoundingClientRect()answers an all-zero rect rather than null
for a hidden, detached, or unlaid-out element, so the previous null-check never
fired for the case that actually happens and the zero rect clamped the menu to
the viewport padding. The menu now walks grip, block, and editor candidates and
declines to open when none of them is laid out. -
97564cd: Add reusable AppSidebar in toolkit and core, support top-left configurable alpha badges, and update app layouts to match the new sidebar design.
-
64e6346: Keep collaborative editors from briefly reverting edits received from another editor while SQL catches up, or indefinitely postponing accepted external content during presence updates.
Advance the edit baseline when peer-delivered content already matches an accepted snapshot, preventing false conflicts on subsequent edits.
Preserve subsequent local edits when an accepted replacement arrives through live sync before its saved revision, without treating identical shared changes as conflicts.
Receive collab-backed canonical revisions through fresh Yjs sync receipts instead of inserting the same accepted text again from SQL. Preserve local edits and the confirmed merge base across delayed or failed delivery.
-
64e6346: Keep local rich-text changes from being rolled back while a controlled editor toolbar returns focus to the document.
-
a30a54d: Undo and redo hotkeys now work right after committing a value in a numeric scrub field, which keeps focus after Enter.
-
587297c: Use GPT-Live as the default realtime voice transport with delegated app tools.
-
Release all public npm packages with a patch version bump.
-
7a9238c: Support
.emlchat attachments and present upload errors in a compact, dismissible banner. -
ccad889: Add an
unstyledmode toSharedRichEditorso hosts can edit text in place without the shared prose typography or wrapper box.