From 8b9533c22a47bbf6f916667e2c25d8e8e419da37 Mon Sep 17 00:00:00 2001 From: Adam Malczewski Date: Mon, 1 Jun 2026 01:46:13 +0900 Subject: feat(tabs): tab-to-tab agent communication via short handles Add send_to_tab / read_tab tools so an agent can message or read another tab by a git-style short handle (shortest unique prefix of the tab UUID, min 4 chars), shown in the tab bar. - core/db/tabs: resolveTabPrefix + shortestUniquePrefix (open tabs only, LIKE-sanitized prefix matching) - new tools read-tab.ts / send-to-tab.ts (+ tests) decoupled from the DB TabRow via a minimal ResolvedTabRef projection - agent-manager: unified deliverMessage routing (busy -> queue, idle -> new turn) shared by POST /chat and send_to_tab; agent->agent auto-wake budget (MAX_AGENT_AUTO_WAKES) to bound ping-pong loops - summon/loader: send_to_tab + read_tab as grantable tools - frontend: shortHandleFor + handle badge in TabBar; perm toggles - notes: tab-comm / user-agents / todo-redesign plans - chore: biome format fixes (debug-logger, summon.test) Refs notes/plan-tab-comm.md --- packages/frontend/src/lib/components/TabBar.svelte | 2 ++ packages/frontend/src/lib/components/ToolPermissions.svelte | 10 ++++++++++ 2 files changed, 12 insertions(+) (limited to 'packages/frontend/src/lib/components') diff --git a/packages/frontend/src/lib/components/TabBar.svelte b/packages/frontend/src/lib/components/TabBar.svelte index feb1e5b..3cbd849 100644 --- a/packages/frontend/src/lib/components/TabBar.svelte +++ b/packages/frontend/src/lib/components/TabBar.svelte @@ -56,6 +56,7 @@ const activeUserTabId = $derived( > + {tabStore.shortHandleFor(tab.id)} {tab.title}