From f585ca2f60400b848ab9b842ee1f9ca795bcd037 Mon Sep 17 00:00:00 2001 From: Bohdan Triapitsyn Date: Mon, 25 May 2026 16:00:48 +0300 Subject: [PATCH] fix: send multi-run slash commands correctly Multi-run now uses the normal chat routing path Slash commands are sent as commands instead of plain text Type-check and lint pass --- packages/ui/src/stores/useMultiRunStore.ts | 23 +++++++++++----------- packages/ui/src/sync/session-ui-store.ts | 2 +- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/packages/ui/src/stores/useMultiRunStore.ts b/packages/ui/src/stores/useMultiRunStore.ts index ae6a0744..0fbd16a8 100644 --- a/packages/ui/src/stores/useMultiRunStore.ts +++ b/packages/ui/src/stores/useMultiRunStore.ts @@ -1,5 +1,5 @@ import { create } from 'zustand'; -import { useSessionUIStore } from '@/sync/session-ui-store'; +import { routeMessage, useSessionUIStore } from '@/sync/session-ui-store'; import { devtools } from 'zustand/middleware'; import type { CreateMultiRunParams, CreateMultiRunResult } from '@/types/multirun'; import { opencodeClient } from '@/lib/opencode/client'; @@ -244,17 +244,16 @@ export const useMultiRunStore = create()( createdRuns.map(async (run) => { try { const text = await expandText(run.prompt).catch(() => run.prompt); - await opencodeClient.withDirectory(run.worktreePath, () => - opencodeClient.sendMessage({ - id: run.sessionId, - providerID: run.providerID, - modelID: run.modelID, - variant: run.variant, - text, - agent, - files: filesForMessage, - }), - ); + await routeMessage({ + sessionId: run.sessionId, + directory: run.worktreePath, + content: text, + providerID: run.providerID, + modelID: run.modelID, + variant: run.variant, + agent, + files: filesForMessage, + }); } catch (err) { console.warn('[MultiRun] Failed to start run:', err); } diff --git a/packages/ui/src/sync/session-ui-store.ts b/packages/ui/src/sync/session-ui-store.ts index 727523be..61a4183b 100644 --- a/packages/ui/src/sync/session-ui-store.ts +++ b/packages/ui/src/sync/session-ui-store.ts @@ -61,7 +61,7 @@ export type { AttachedFile } // Send routing — shell mode, slash commands, or normal prompt // --------------------------------------------------------------------------- -function routeMessage(params: { +export function routeMessage(params: { sessionId: string directory?: string | null content: string