Patch Changes
-
c7688dd: Give the chat-first rail one owner for active state so exactly one entry ever
reads as active.activeAppIdalone could not distinguish "no surface resolved
yet" from "a nav surface is active with no app selected", so every app icon kept
its in-color active treatment whenever Search Chats, Scheduled, Integrations, or
New chat owned the main area. Search Chats was worse: it rendered outside the
tablist with hover-only styling and noChatFirstPrimaryTabmember, so it could
never show an active state at all.ChatFirstPrimaryTabnow includessearch,ChatFirstAppsRailaccepts
activeTab, and both the rail and the primary navigation derive their
active/inactive presentation from the sharedchatFirstActiveSurface,
chatFirstAppIconState, andchatFirstNavTabActivehelpers. -
97564cd: Add reusable AppSidebar in toolkit and core, support top-left configurable alpha badges, and update app layouts to match the new sidebar design.
-
71e22e1: Add canonical cross-app and lifecycle tracking signals across templates.
-
210c7d0: Keep Dispatch covered by the AgentKit framework changeset contract.
-
048bbe1: Stop the usage dashboard from reporting zero spend for the signed-in user when usage rows carry no organization id.
token_usage.org_idis filled from the request context, so recurring jobs, automations, and every row written before that column was populated are NULL, and the org-equality read filter hid them from a query already narrowed to that user. Unattributed rows are admitted only for the viewer's own usage; workspace roll-ups and admin-selected members keep strict organization equality, so unattributed spend is never claimed for an organization that cannot be shown to own it. -
b9bda76: Prevent repeated transient inline submissions, allow inline frames to shrink to content, route workspace apps to their authenticated homes, preserve sibling-app navigation from chat handoffs, and coalesce active-run cursor updates.
-
Release all public npm packages with a patch version bump.
-
4515fe2: Settings gets a top-level API keys tab for every app, with a provider-tile empty state and a "+ New" menu that searches the keys the app declares or adds a custom one; the Integrations tab becomes one alphabetical provider list (MCP, messaging platforms, and Email together) with Builder.io featured at the top, and the two tabs link to each other. The Dispatch Vault uses the same "+ New" key picker. OpenRouter, Google Gemini, Groq, Mistral, and Cohere keys are registered so they appear wherever keys are added.
-
5c40943: Tell MCP hosts to route granted app requests through their existing Dispatch connection.
-
Updated dependencies [210c7d0]
-
Updated dependencies [743039f]
-
Updated dependencies [bd3e96e]
-
Updated dependencies [b83d472]
-
Updated dependencies [875f793]
-
Updated dependencies [97564cd]
-
Updated dependencies [64e6346]
-
Updated dependencies [64e6346]
-
Updated dependencies [a30a54d]
-
Updated dependencies [587297c]
-
Updated dependencies
-
Updated dependencies [210c7d0]
-
Updated dependencies [7a9238c]
-
Updated dependencies [ccad889]
- @agent-native/toolkit@0.20.0