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
This commit is contained in:
Joshua Cold 2026-05-14 09:14:57 -06:00
parent 3f3569e1ae
commit 32a31e0b4e
4 changed files with 12 additions and 5 deletions

View file

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

View file

@ -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}"

View file

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

View file

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