From 5645bd95ac60edb632004a16c0112a6b2430197c Mon Sep 17 00:00:00 2001 From: Michiel de Gooijer <61051030+midego1@users.noreply.github.com> Date: Sun, 20 Sep 2026 07:44:02 +0700 Subject: [PATCH 1/2] Say what a toolkit is on the Toolkits page Every other console page carries a line under its title explaining the surface. Toolkits had only the title, so the page opened on an empty grid with no statement of what it is for. Co-Authored-By: Claude Opus 5 --- .changeset/toolkits-page-description.md | 5 +++++ packages/plugins/toolkits/src/page.tsx | 9 ++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 .changeset/toolkits-page-description.md diff --git a/.changeset/toolkits-page-description.md b/.changeset/toolkits-page-description.md new file mode 100644 index 0000000000..e0a8981ae3 --- /dev/null +++ b/.changeset/toolkits-page-description.md @@ -0,0 +1,5 @@ +--- +"@executor-js/plugin-toolkits": patch +--- + +The Toolkits page now says what a toolkit is. Every other console page carries a line under its title explaining the surface; this one had only the title, so an empty grid left the feature to be guessed at. diff --git a/packages/plugins/toolkits/src/page.tsx b/packages/plugins/toolkits/src/page.tsx index 5d1a9f2a3e..af91c86bc1 100644 --- a/packages/plugins/toolkits/src/page.tsx +++ b/packages/plugins/toolkits/src/page.tsx @@ -1415,7 +1415,7 @@ export function ToolkitsPage(props: PluginPageProps) { return (
{selectedToolkitSlug === null ? ( -
+

Toolkits

{AsyncResult.isSuccess(toolkits) && ( @@ -1424,6 +1424,13 @@ export function ToolkitsPage(props: PluginPageProps) { )}
+ {/* Every other console page says what it is for in a line under its + title; this one had only the title, which left the feature to be + guessed at from an empty grid. */} +

+ A named set of tools with its own MCP endpoint. Point an agent at a toolkit and it sees + only those tools, under the toolkit's own policies and connections. +

) : null} From c9a6cdbf2bc5e27b3739cd59ea32c3f436643389 Mon Sep 17 00:00:00 2001 From: Michiel de Gooijer <61051030+midego1@users.noreply.github.com> Date: Sun, 20 Sep 2026 07:59:36 +0700 Subject: [PATCH 2/2] Say who a Workspace or Personal toolkit belongs to The two shelves were labelled but not explained. Both lines are the ones the connection owner picker already uses, so the same distinction reads the same way wherever it appears. Co-Authored-By: Claude Opus 5 --- packages/plugins/toolkits/src/page.tsx | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packages/plugins/toolkits/src/page.tsx b/packages/plugins/toolkits/src/page.tsx index af91c86bc1..d5ac225948 100644 --- a/packages/plugins/toolkits/src/page.tsx +++ b/packages/plugins/toolkits/src/page.tsx @@ -618,6 +618,9 @@ function AddToolkitCard(props: { owner: Owner; showOwnerLabels: boolean; onClick function ToolkitSection(props: { owner: Owner; title?: string; + /** Who a toolkit on this shelf belongs to — the same distinction, and the + * same words, the connection owner picker uses. */ + subtitle?: string; showOwnerLabels: boolean; toolkits: readonly ToolkitResponse[]; onCreate: (input: { owner: Owner; name: string }) => Promise; @@ -632,6 +635,9 @@ function ToolkitSection(props: {

{props.title}

+ {props.subtitle ? ( +

{props.subtitle}

+ ) : null}
) : null} @@ -687,6 +693,7 @@ function ToolkitGrid(props: { owner="org" showOwnerLabels title="Workspace" + subtitle="Shared with everyone in this workspace." toolkits={workspaceToolkits} onCreate={props.onCreate} /> @@ -694,6 +701,7 @@ function ToolkitGrid(props: { owner="user" showOwnerLabels title="Personal" + subtitle="Saved only for your account." toolkits={personalToolkits} onCreate={props.onCreate} />