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/core/src/agents/loader.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'packages/core/src/agents') diff --git a/packages/core/src/agents/loader.ts b/packages/core/src/agents/loader.ts index 333716e..f4a6c5a 100644 --- a/packages/core/src/agents/loader.ts +++ b/packages/core/src/agents/loader.ts @@ -108,8 +108,8 @@ export function expandAgentToolNames(tools: string[]): string[] { default: // Pass through tool names that aren't permission-group // aliases (summon, retrieve, web_search, youtube_transcribe, - // todo, and the granular file tools themselves if a user - // hand-wrote them in a TOML). + // send_to_tab, read_tab, todo, and the granular file tools + // themselves if a user hand-wrote them in a TOML). expanded.add(t); } } -- cgit v1.2.3