github BuilderIO/agent-native @agent-native/core@0.197.0

latest releases: clips-nightly-v0.1.521-0, clips-nightly-v0.1.520-0, v0.1.297...
one month ago

Minor Changes

  • b8845eb: Bound framework list reads and remove the vault-wide resync from process startup.

  • 7032734: Add an Ink setup wizard to agent-native create with project previews and clear cancellation and help behavior.

  • 8fd97ec: Let workspaces choose which hosted first-party apps they offer with agent-native.builtinAgents (mode: "all" | "none" | "selected", include) in the root or standalone package.json. Dispatch's app list now follows that config instead of always adding the chat-first defaults, and local workspaces outside the framework repo link built-ins to their hosted URLs.

  • 82ad87c: Move optional integration, ingestion, telemetry, and CLI packages out of Core's install-time dependency graph. Features now load peers on demand and report a typed install error when invoked without them. initServerSentry is now async and callers must await its Promise<boolean> result. Auth pages can use injected renderers, with a plain HTML fallback; without an injected renderer, the form is rendered after client hydration. Remove the decorative WebGPU ocean background from Core's auth and onboarding UI.

  • 6d1b545: Make background sync opt-in and refresh local agent edits from the chat run stream.

  • b8845eb: Remove getAllSettings() and listSettingsByKeySegments(); use getSetting() or getSettings(keys) when the required keys are known. Remove CollabPluginOptions.resolveCollabDocumentId and its whole-table lazy-seed lookup; use resolveSourceIdFromCollabDocumentId to map a collaboration document id to its keyed source row. These exported APIs are removed because they require table-wide reads.

  • bee46b1: The redesigned Settings is now the only Settings for every app, with no feature flag. SETTINGS_REDESIGN_FLAG is deprecated and no longer registered; useFeatureFlag and useFeatureFlagState read it as on, so apps generated from older templates that still check it keep the redesigned layout.

  • f12a2de: Add a speech-synthesis route: POST /_agent-native/speak turns text into
    audio/mpeg bytes through the request's own OPENAI_API_KEY, and
    @agent-native/core/client/speak exposes it to app code as fetchSpeechClip.

    It returns 400 with reason: "no-provider" when no key is configured, so a
    caller can fall back to the browser's speech synthesiser without mistaking an
    unconfigured app for a failing one. Every other refusal carries its own reason,
    and an empty 200 from the provider is reported as a failure rather than played
    as silence.

Patch Changes

  • c3a770e: Expose the model's tool-call ID in action run context so apps can correlate each invocation with its progress and results.

  • b99ba49: Keep visitors on beta when they arrive there without a beta session.

  • fa62fdf: Allow routes to skip first-run onboarding while keeping the session gate active.

  • 4dae8b5: Allow Better Auth endpoints through the auth guard under a custom framework route prefix.

  • f2e8ffe: Center empty chat composers correctly and make send buttons circular across shared chat surfaces.

  • f396b49: Cast the scheduled failure-alert retry timestamp as bigint so PostgreSQL can run lease recovery on empty tables.

  • 9e87b45: Align settings content widths and controls with the shared settings layout.

  • 320d884: Report Builder-routed usage in Builder credits and show connected workspace credit balances to admins.

  • 4dae8b5: Follow server-driven run continuations in the native chat runtime.

  • c9129d5: Match the app shell backdrop to chat and square the open right-sidebar seam.

  • 23c2487: Allow apps to opt out of built-in sign-in marketing pages.

  • 4b0cea2: Report removed AgentKit chat imports in Doctor and include version-matched migration guides in diagnostics.

  • c37bd18: Match chat sidebar surfaces to app navigation and reduce composer spacing.

  • b6ce4c6: Deduplicate restored assistant messages when a server snapshot uses a new message ID.

  • f12a2de: Export isUniqueViolation from @agent-native/core/db. Apps that let a
    partial unique index arbitrate a race — two schedulers allocating the same
    sequence number, say — otherwise have to re-implement the Postgres/SQLite
    error sniffing that db/client.ts already does.

  • f12a2de: Require a session on POST /_agent-native/speak, and bound the request before
    it is parsed. The route previously enforced authentication only in production
    and otherwise resolved OPENAI_API_KEY anonymously, so an unauthenticated
    caller on any other deploy could spend its speech credits. It also parsed the
    whole body before checking the script length, and never bounded instructions.
    Callers that relied on anonymous synthesis now receive 401.

    An anonymous caller is answered with the no-provider result rather than 401,
    because that is the one reason the client starts browser speech: a no-login
    reader would otherwise hear nothing instead of the local voice. No provider key
    is resolved for them either way.

  • 0ca16fe: Report db-queries and db-connects in Server-Timing alongside db-ops, so a request's SQL statement count can be read without counting pool connects as statements.

  • 57e0a0f: Keep argument-dependent permission errors retryable, isolate terminal delegated-agent failures from parent turns, and alert on stale delegated tasks.

  • 4af4f69: A production server build now refuses to run on local PGlite: node .output/server/index.mjs, agent-native start, and Docker need DATABASE_URL set to Postgres, just like a hosted function. For local development, use pnpm dev, which still runs on PGlite. Netlify, Vercel, and Lambda invocations are now detected without NODE_ENV=production, so a fresh Netlify site with no DATABASE_URL refuses sign-up with HostedRuntimeLocalDatabaseError instead of a PGlite install error; netlify dev and vercel dev still count as local. Instead of exiting at boot, a Node or Docker server without a database now skips its boot migrations with the same message and stays up. On every host, while a deploy is missing a setting that sign-in needs, the server answers every sign-in page, including an app's own loginHtml, with an uncached 503 setup page that names each one: DATABASE_URL, and BETTER_AUTH_SECRET, or A2A_SECRET in a workspace, where it also derives the auth secret. A workspace missing only A2A_SECRET still signs in, and the in-app notice names it. Apps with a custom getSession keep their own sign-in page. A sign-up or sign-in refused for a missing setting now says so instead of showing a generic failure. The /_agent-native/ping?configuration=1 probe reports these from the same checks the refusals use, so it also recognizes app-prefixed database URLs and the workspace-derived auth secret. A hosted function or production server build now requires its auth secret even when NODE_ENV is test or development, matching the database refusal. The async A2A processor now decides from the same host markers, so a started production server build or a hosted function without NODE_ENV counts as production too, so a bare node .output/server/index.mjs or Docker server without NODE_ENV answers 503 until A2A_SECRET is set instead of accepting unsigned tasks, and the configuration probe names A2A_SECRET exactly when that happens. netlify dev, netlify serve, vercel dev, and sam local (AWS_SAM_LOCAL=true) count as local for the database, auth secret, and A2A checks, even with NODE_ENV=production.

  • 1fd5c7a: Restore the searchable Dispatch app directory and localize its action labels.

  • f12a2de: Export NarrowContainerProvider and useInNarrowContainer from
    @agent-native/core/blocks. Width-sensitive blocks (today diff) already
    choose a container-appropriate default inside tabs and columns; apps that
    render a borrowed block in their own narrow column — such as a Plan edition
    story — can now opt into the same behaviour instead of getting a split diff
    crushed into a half-width box.

  • 7220a4d: Keep development hosting markers on the local runtime path.

  • 19256a9: Refresh the retry cooldown after repeated automation identity failures so blocked jobs do not starve later scheduled jobs.

  • 56d047a: De-duplicate Settings and Team button wrappers into shared PrimitiveButton and apply ghost hover resets conditionally so solid primary buttons preserve text-primary-foreground on hover.

  • f2f6f43: Keep fresh triggers eligible while bounded stale Mail expiry leaves a backlog.

  • 4a681b7: Let ffmpeg-static run its install script in generated projects, so the binary is actually downloaded and the deploy's ffmpeg bundling has something to copy. Also stop the workspace YAML merge from skipping an entry because its name appears in a different section.

  • 023ee9b: Keep home chat visible while provider readiness is checked.

  • 4969087: Add callAgent to IntegrationsPluginOptions. It defaults to true; set it to false to leave call-agent out of messaging turns, which matches what agent-chat's workspaceApps tool group already allows on the web. call-agent is in DEFAULT_INITIAL_TOOL_NAMES, so it is on every first request even when it is not in initialToolNames. A deployment that shares no A2A secret with the first-party apps therefore had messaging turns calling analytics or content and getting back 401 Invalid or expired A2A token, when the app's own connection had the answer.

  • 2197b46: Add initialToolNames to IntegrationsPluginOptions. Messaging turns sent every action the app passed in on their first request; an app with a large action surface can now name the tools to load up front, as it already does for agent-chat, and the rest stay discoverable through tool-search. Unset, the behaviour is unchanged.

  • a8ec661: Load LaunchDarkly evaluation only when its action runs so unrelated app cold starts do not load the server SDK.

  • 0a86389: First-run onboarding extensions can run before or after provider setup, contribute their steps to progress, and wait for completion before leaving. Manual setup skips capabilities already satisfied by sign-in, including Mail's Gmail connection.

  • a826bbe: Align Mail's startup skeleton with its current inbox layout.

  • 83f709e: Enforce recurring sweep deadlines, cancel abandoned Mail work, and stop notification fanout after a sweep aborts.

  • df7e3ce: Keep stale mail events out of trigger selection when a sweep cannot check expiry.

  • 3f9c125: Keep stale trigger expiry and terminal writes inside the background sweep budget.

  • Release all public npm packages with a patch version bump.

  • 5430f9c: Connecting an MCP client now gives an account without an organization its default one, so the connection is scoped to it. The consent page no longer offers Personal to people who belong to an organization.

  • b8845eb: Scope MCP configuration and connections to the authenticated user and organization, and keep anonymous sessions out of MCP.

  • 0ea21e5: Fix blank local visual-edit screens: the design bridge now adds the preview token to multi-line import { … } from clauses, such as Vite's pre-bundled dependency chunks.

  • 61770e5: Route serverless database requests through Neon pooling, cap function pools at one connection, and record observed per-request query counts.

  • ebf5f34: Avoid loading unrelated settings when enumerating MCP and scoped settings.

  • 9c186fc: Add localized labels for trace eval promotion.

  • c86c6fa: Read the session once per page load and lower the per-request auth cost. The session bootstrap, analytics, useSession, and the beta-lane probe now share one signed-in answer, and a focus or visibility change inside that 30-second lifetime re-reads it when it expires if the tab is still focused. The identity-rekey probe and the active-org-id preference are cached per process for 15 seconds and dropped on writes; the preference is also keyed by an httpOnly org-selection cookie that every org change made by the caller and every new session rotates, so that browser reads its current org on every instance. The legacy cookie path reads its user row once. Storage secrets are fetched in one batch, file-upload/status detects each provider once, and the onboarding summary is shared across the components that show it and, like the upload status, waits until startup reads have finished.

  • 15d1110: Export and import a portable text resource pack (secrets redacted).

  • 369632b: Promote a completed production trace into a CI eval case.

  • b6ce4c6: Keep AgentKit approval continuation output in its canonical chat message instead of folding it into the server placeholder.

  • 47985fe: Export the shared agent-engine readiness check for client-side submit preflights.

  • c65d6a8: Limit cross-app discovery and delegation to requests that need peer-owned data or capabilities.

  • f25679f: Load the built-in model catalog when a visible AssistantChat picker has no host-provided catalog.

  • cfedd43: Ignore global sidebar events and preference updates while the Agent sidebar is disabled.

  • 7032734: Clarify optional reply text in Observability eval promotion.

  • cae86e4: Skip schema catalog probes and release-owned runtime migrations during hosted function requests, even when NODE_ENV is unset.

  • 7342b95: Keep sign-in working inside Builder preview iframes: session, embed, and UI-capability cookies (and Better Auth's session cookie) now use SameSite=None; Secure; Partitioned when a dev server is served through Builder's HTTPS preview tunnel, and HTTPS detection lives in one shared helper.

  • fa62fdf: Improve provider setup controls, status retry backoff, and suggestion contrast.

  • 9071b38: Let command menu items take a stable value, so keyboard selection survives an item's text changing while it is shown.

  • 7161ec2: Keep AgentKit runs active while a server-driven continuation starts.

  • d2ba564: Keep agents from repeating completed mutations, stale reads, disabled features, or oversized discovery searches, and let them summarize cleanly when a loop is stopped.

  • b8845eb: Scope ownable reads and writes to their authorized user, organization, or share.

  • 9e35bba: Add core observability labels for promoting traces into evals.

  • b8845eb: Bound automation trigger claims to the scoped FIFO head.

  • 5430f9c: Switching organizations without an organization no longer leaves the account outside its organization; the request now keeps the current one.

  • 58fe222: Expose the existing per-user Jev credential lookup to server actions so template features can use a saved key without a separate configuration path.

  • 0e8e6f8: Clarify the required-text prompt when promoting trace evaluations.

  • 734137b: Persist notification channel and sent-event completion so idempotent sweep retries do not replay deliveries.

  • 4dae8b5: Preserve chat attachments while keeping pending selection tab-scoped and non-blocking.

  • 92020c0: Let apps replace the markup and copy of framework emails with overrideTransactionalEmail(id, render), returning HTML or a React element from typed props. This covers verify signup, reset password, magic link, both email-change emails, organization invites, Builder credit limit, and the resource-shared notification. The resource-shared notification is now in the transactional email catalog as core.resource-shared. Catalog definitions accept an optional previewAsync, and the new renderTransactionalEmailPreviewAsync renders it so overridden framework emails preview with the app's design. preview and renderTransactionalEmailPreview keep their synchronous contracts.

  • 09b3645: Link the visual-edit skill to its worked usage guide.

  • 8d5f335: Run the esbuild JavaScript launcher through Node so production builds work on Windows.

  • 90048ab: New workspaces skip the 24-hour install delay for every @agent-native package, so a same-day framework publish no longer blocks pnpm install.

  • Updated dependencies [f2e8ffe]

  • Updated dependencies [023ee9b]

  • Updated dependencies [47985fe]

  • Updated dependencies

  • Updated dependencies [82ad87c]

  • Updated dependencies [57e0a0f]

  • Updated dependencies [fa62fdf]

  • Updated dependencies [82ad87c]

    • @agent-native/agentkit@0.5.1
    • @agent-native/toolkit@0.23.1
    • @agent-native/recap-cli@0.5.49

Don't miss a new agent-native release

NewReleases is sending notifications on new releases.