From 32a31e0b4eeda1bffaeb309ddd3e5377858a9aca Mon Sep 17 00:00:00 2001 From: Joshua Cold Date: Thu, 14 May 2026 09:14:57 -0600 Subject: [PATCH] fix(build): Install as Agent-Teams-UI, display with spaces. This changes how the app's install directory functions so there are not spaces in the destination path, but adds spaces to the Apps display name so it should look the same in installed environments when launching the application. fixes: #111 --- .github/workflows/release.yml | 2 +- package.json | 7 +++++-- src/main/index.ts | 4 ++++ test/main/services/team/ClaudeBinaryResolver.test.ts | 4 ++-- 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1ab97a28..41f5883a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -254,7 +254,7 @@ jobs: run: ${{ matrix.dist_command }} --publish never - name: Validate packaged bundle (macOS ${{ matrix.arch }}) - run: node ./scripts/electron-builder/verifyBundle.cjs "release/mac-${{ matrix.arch }}/Agent Teams UI.app" darwin ${{ matrix.arch }} + run: node ./scripts/electron-builder/verifyBundle.cjs "release/mac-${{ matrix.arch }}/Agent-Teams-UI.app" darwin ${{ matrix.arch }} - name: Upload assets to release if: startsWith(github.ref, 'refs/tags/v') diff --git a/package.json b/package.json index b6ee7177..d3f74fd9 100644 --- a/package.json +++ b/package.json @@ -230,7 +230,7 @@ }, "build": { "appId": "com.agent-teams.app", - "productName": "Agent Teams UI", + "productName": "Agent-Teams-UI", "directories": { "output": "release" }, @@ -305,7 +305,10 @@ "pacman" ], "icon": "resources/icons/png", - "category": "Development" + "category": "Development", + "desktop": { + "Name": "Agent Teams UI" + } }, "appImage": { "artifactName": "Agent.Teams.AI-${version}.${ext}" diff --git a/src/main/index.ts b/src/main/index.ts index 4c914fc7..ba782746 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -107,6 +107,10 @@ import { app, BrowserWindow, ipcMain } from 'electron'; import { existsSync } from 'fs'; import { join } from 'path'; +// productName uses hyphens to avoid spaces in the Linux install path (/opt/Agent-Teams-UI/). +// Restore the human-readable display name for macOS menus and Windows system dialogs. +app.setName('Agent Teams UI'); + import { cleanupEditorState, setEditorMainWindow } from './ipc/editor'; import { initializeIpcHandlers, removeIpcHandlers } from './ipc/handlers'; import { registerRendererLogHandlers } from './ipc/rendererLogs'; diff --git a/test/main/services/team/ClaudeBinaryResolver.test.ts b/test/main/services/team/ClaudeBinaryResolver.test.ts index 2378db8e..810a90eb 100644 --- a/test/main/services/team/ClaudeBinaryResolver.test.ts +++ b/test/main/services/team/ClaudeBinaryResolver.test.ts @@ -72,7 +72,7 @@ describe('ClaudeBinaryResolver', () => { }); process.cwd = vi.fn(() => workspaceRoot); Object.defineProperty(process, 'resourcesPath', { - value: '/Applications/Agent Teams UI.app/Contents/Resources', + value: '/Applications/Agent-Teams-UI.app/Contents/Resources', configurable: true, writable: true, }); @@ -200,7 +200,7 @@ describe('ClaudeBinaryResolver', () => { it('prefers the bundled runtime binary for packaged agent_teams_orchestrator builds', async () => { const expectedBinary = path.join( - '/Applications/Agent Teams UI.app/Contents/Resources', + '/Applications/Agent-Teams-UI.app/Contents/Resources', 'runtime', 'claude-multimodel' );