From 38bac6e4ad5b477df1d22891007a49af69cde50a Mon Sep 17 00:00:00 2001 From: LukeParkerDev <10430890+Hona@users.noreply.github.com> Date: Fri, 22 May 2026 17:01:03 +1000 Subject: [PATCH] feat(app): improve desktop v2 startup and controls --- .../app/src/components/dialog-select-mcp.tsx | 5 +- packages/app/src/components/prompt-input.tsx | 656 ++++++++++++++---- .../components/prompt-input/submit.test.ts | 94 ++- .../app/src/components/prompt-input/submit.ts | 17 +- .../src/components/session/session-header.tsx | 420 ++++++----- .../session/session-new-design-view.tsx | 63 +- .../app/src/components/settings-general.tsx | 15 +- .../src/components/status-popover-body.tsx | 262 +++++-- .../app/src/components/status-popover.tsx | 156 ++++- packages/app/src/components/titlebar.tsx | 85 ++- packages/app/src/context/global-sync.tsx | 18 +- .../context/global-sync/child-store.test.ts | 1 + .../src/context/global-sync/child-store.ts | 7 + .../src/context/global-sync/event-reducer.ts | 6 + packages/app/src/context/layout.tsx | 34 +- packages/app/src/context/settings.tsx | 6 + packages/app/src/i18n/en.ts | 11 + packages/app/src/pages/home.tsx | 273 ++++++-- packages/app/src/pages/session.tsx | 3 +- .../composer/session-composer-region.tsx | 2 - .../src/pages/session/session-side-panel.tsx | 10 +- .../pages/session/use-session-commands.tsx | 8 +- packages/opencode/src/cli/cmd/mcp.ts | 3 + packages/opencode/src/mcp/index.ts | 195 ++++-- .../instance/httpapi/groups/experimental.ts | 13 + .../instance/httpapi/handlers/experimental.ts | 5 + packages/opencode/src/worktree/index.ts | 44 +- packages/opencode/test/mcp/lifecycle.test.ts | 119 +++- .../opencode/test/project/worktree.test.ts | 42 ++ packages/sdk/js/src/v2/gen/sdk.gen.ts | 32 + packages/sdk/js/src/v2/gen/types.gen.ts | 103 ++- packages/ui/src/v2/components/icon.tsx | 12 + 32 files changed, 2038 insertions(+), 682 deletions(-) diff --git a/packages/app/src/components/dialog-select-mcp.tsx b/packages/app/src/components/dialog-select-mcp.tsx index 5a28173ead..f6046fb625 100644 --- a/packages/app/src/components/dialog-select-mcp.tsx +++ b/packages/app/src/components/dialog-select-mcp.tsx @@ -11,6 +11,7 @@ import { pathKey } from "@/utils/path-key" const statusLabels = { connected: "mcp.status.connected", + connecting: "mcp.status.connecting", failed: "mcp.status.failed", needs_auth: "mcp.status.needs_auth", needs_client_registration: "mcp.status.needs_client_registration", @@ -79,6 +80,7 @@ export const DialogSelectMcp: Component = () => { if (s?.status === "failed" || s?.status === "needs_client_registration") return s.error } const enabled = () => status() === "connected" + const connecting = () => status() === "connecting" return (