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' );