From 88030eb48d2e2f6d1bd805c4fc7d037ea078165e Mon Sep 17 00:00:00 2001 From: David Kaya Date: Thu, 26 Mar 2026 00:17:14 +0100 Subject: [PATCH] refactor: finish Aryx rebrand sweep Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- package.json | 6 +++--- .../{EryxAppService.ts => AryxAppService.ts} | 2 +- src/main/index.ts | 6 +++--- src/main/ipc/registerIpcHandlers.ts | 4 ++-- tests/main/appIcon.test.ts | 4 ++-- tests/main/appServiceDiscoveredTooling.test.ts | 12 ++++++------ .../main/appServiceSidecarCapabilities.test.ts | 14 +++++++------- tests/main/appServiceTooling.test.ts | 18 +++++++++--------- tests/main/configScanner.test.ts | 2 +- tests/main/sidecarProcess.test.ts | 2 +- tests/main/sidecarRuntime.test.ts | 16 ++++++++-------- 11 files changed, 43 insertions(+), 43 deletions(-) rename src/main/{EryxAppService.ts => AryxAppService.ts} (99%) diff --git a/package.json b/package.json index 435cc42..d47ef3d 100644 --- a/package.json +++ b/package.json @@ -20,15 +20,15 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/davidkaya/eryx.git" + "url": "git+https://github.com/davidkaya/aryx.git" }, "keywords": [], "author": "", "license": "ISC", "bugs": { - "url": "https://github.com/davidkaya/eryx/issues" + "url": "https://github.com/davidkaya/aryx/issues" }, - "homepage": "https://github.com/davidkaya/eryx#readme", + "homepage": "https://github.com/davidkaya/aryx#readme", "packageManager": "bun@1.3.6", "devDependencies": { "@lexical/headless": "0.42.0", diff --git a/src/main/EryxAppService.ts b/src/main/AryxAppService.ts similarity index 99% rename from src/main/EryxAppService.ts rename to src/main/AryxAppService.ts index ee05509..84e3ad1 100644 --- a/src/main/EryxAppService.ts +++ b/src/main/AryxAppService.ts @@ -138,7 +138,7 @@ function isSidecarStoppedBeforeCompletionError(error: unknown): error is Error { return error instanceof Error && error.message === SIDECAR_STOPPED_BEFORE_COMPLETION_MESSAGE; } -export class EryxAppService extends EventEmitter { +export class AryxAppService extends EventEmitter { private readonly workspaceRepository = new WorkspaceRepository(); private readonly sidecar = new SidecarClient(); private readonly secretStore = new SecretStore(); diff --git a/src/main/index.ts b/src/main/index.ts index ae4eb8b..95d98dc 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -1,15 +1,15 @@ import { app, BrowserWindow } from 'electron'; import { registerIpcHandlers } from '@main/ipc/registerIpcHandlers'; -import { EryxAppService } from '@main/EryxAppService'; +import { AryxAppService } from '@main/AryxAppService'; import { createMainWindow } from '@main/windows/createMainWindow'; import { applyTitleBarTheme } from '@main/windows/titleBarTheme'; let mainWindow: BrowserWindow | undefined; -let appService: EryxAppService | undefined; +let appService: AryxAppService | undefined; async function bootstrap(): Promise { - appService = new EryxAppService(); + appService = new AryxAppService(); mainWindow = createMainWindow(); registerIpcHandlers(mainWindow, appService); diff --git a/src/main/ipc/registerIpcHandlers.ts b/src/main/ipc/registerIpcHandlers.ts index 3603ca0..d97dc4d 100644 --- a/src/main/ipc/registerIpcHandlers.ts +++ b/src/main/ipc/registerIpcHandlers.ts @@ -24,10 +24,10 @@ import type { import type { QuerySessionsInput } from '@shared/domain/sessionLibrary'; import type { AppearanceTheme } from '@shared/domain/tooling'; -import { EryxAppService } from '@main/EryxAppService'; +import { AryxAppService } from '@main/AryxAppService'; import { applyTitleBarTheme } from '@main/windows/titleBarTheme'; -export function registerIpcHandlers(window: BrowserWindow, service: EryxAppService): void { +export function registerIpcHandlers(window: BrowserWindow, service: AryxAppService): void { ipcMain.handle(ipcChannels.describeSidecarCapabilities, () => service.describeSidecarCapabilities()); ipcMain.handle(ipcChannels.refreshSidecarCapabilities, () => service.refreshSidecarCapabilities()); ipcMain.handle(ipcChannels.loadWorkspace, () => service.loadWorkspace()); diff --git a/tests/main/appIcon.test.ts b/tests/main/appIcon.test.ts index 55985f7..7fbe90f 100644 --- a/tests/main/appIcon.test.ts +++ b/tests/main/appIcon.test.ts @@ -6,10 +6,10 @@ describe('resolveWindowIconPath', () => { test('uses the Windows ico asset from the platform-specific icon directory', () => { expect( resolveWindowIconPath({ - appPath: 'C:\\workspace\\personal\\repositories\\eryx', + appPath: 'C:\\workspace\\personal\\repositories\\aryx', platform: 'win32', }), - ).toBe('C:\\workspace\\personal\\repositories\\eryx\\assets\\icons\\windows\\icon.ico'); + ).toBe('C:\\workspace\\personal\\repositories\\aryx\\assets\\icons\\windows\\icon.ico'); }); test('uses the macOS icns asset on Darwin', () => { diff --git a/tests/main/appServiceDiscoveredTooling.test.ts b/tests/main/appServiceDiscoveredTooling.test.ts index 7432501..cf69823 100644 --- a/tests/main/appServiceDiscoveredTooling.test.ts +++ b/tests/main/appServiceDiscoveredTooling.test.ts @@ -11,8 +11,8 @@ const TIMESTAMP = '2026-03-25T00:00:00.000Z'; mock.module('electron', () => ({ app: { isPackaged: false, - getAppPath: () => 'C:\\workspace\\personal\\repositories\\eryx', - getPath: () => 'C:\\workspace\\personal\\repositories\\eryx\\tests\\fixtures', + getAppPath: () => 'C:\\workspace\\personal\\repositories\\aryx', + getPath: () => 'C:\\workspace\\personal\\repositories\\aryx\\tests\\fixtures', }, dialog: { showOpenDialog: async () => ({ canceled: true, filePaths: [] }), @@ -30,7 +30,7 @@ mock.module('keytar', () => ({ }, })); -const { EryxAppService } = await import('@main/EryxAppService'); +const { AryxAppService } = await import('@main/AryxAppService'); function createProject(overrides?: Partial): ProjectRecord { return { @@ -63,8 +63,8 @@ function createService( options?: { captureRunTurn?: (command: RunTurnCommand) => void; }, -): InstanceType { - const service = new EryxAppService(); +): InstanceType { + const service = new AryxAppService(); const internals = service as unknown as Record; internals.loadWorkspace = async () => workspace; internals.persistAndBroadcast = async (nextWorkspace: WorkspaceState) => nextWorkspace; @@ -97,7 +97,7 @@ function createService( return service; } -describe('EryxAppService discovered tooling', () => { +describe('AryxAppService discovered tooling', () => { test('allows project-discovered MCP servers to be accepted and used in project sessions', async () => { const workspace = createWorkspaceSeed(); const pattern = workspace.patterns.find((candidate) => candidate.mode === 'single'); diff --git a/tests/main/appServiceSidecarCapabilities.test.ts b/tests/main/appServiceSidecarCapabilities.test.ts index c50014e..8622786 100644 --- a/tests/main/appServiceSidecarCapabilities.test.ts +++ b/tests/main/appServiceSidecarCapabilities.test.ts @@ -5,8 +5,8 @@ import type { SidecarCapabilities } from '@shared/contracts/sidecar'; mock.module('electron', () => ({ app: { isPackaged: false, - getAppPath: () => 'C:\\workspace\\personal\\repositories\\eryx', - getPath: () => 'C:\\workspace\\personal\\repositories\\eryx\\tests\\fixtures', + getAppPath: () => 'C:\\workspace\\personal\\repositories\\aryx', + getPath: () => 'C:\\workspace\\personal\\repositories\\aryx\\tests\\fixtures', }, dialog: { showOpenDialog: async () => ({ canceled: true, filePaths: [] }), @@ -24,7 +24,7 @@ mock.module('keytar', () => ({ }, })); -const { EryxAppService } = await import('@main/EryxAppService'); +const { AryxAppService } = await import('@main/AryxAppService'); const SIDECAR_STOPPED_BEFORE_COMPLETION_MESSAGE = 'The .NET sidecar was stopped before the command completed.'; @@ -49,7 +49,7 @@ const CAPABILITIES_FIXTURE: SidecarCapabilities = { }; function setSidecar( - service: InstanceType, + service: InstanceType, describeCapabilities: () => Promise, ): void { ( @@ -74,9 +74,9 @@ function createDeferred() { return { promise, resolve }; } -describe('EryxAppService sidecar capabilities', () => { +describe('AryxAppService sidecar capabilities', () => { test('retries describe-capabilities after an intentional sidecar stop', async () => { - const service = new EryxAppService(); + const service = new AryxAppService(); let attempts = 0; setSidecar(service, async () => { @@ -93,7 +93,7 @@ describe('EryxAppService sidecar capabilities', () => { }); test('coalesces concurrent capability requests while the cache is empty', async () => { - const service = new EryxAppService(); + const service = new AryxAppService(); const deferred = createDeferred(); let calls = 0; diff --git a/tests/main/appServiceTooling.test.ts b/tests/main/appServiceTooling.test.ts index 0e22cb0..c014f6b 100644 --- a/tests/main/appServiceTooling.test.ts +++ b/tests/main/appServiceTooling.test.ts @@ -7,13 +7,13 @@ import type { SessionRecord } from '@shared/domain/session'; import { createWorkspaceSeed, type WorkspaceState } from '@shared/domain/workspace'; const TIMESTAMP = '2026-03-25T00:00:00.000Z'; -const SCRATCHPAD_PATH = 'C:\\workspace\\personal\\repositories\\eryx\\scratchpad'; +const SCRATCHPAD_PATH = 'C:\\workspace\\personal\\repositories\\aryx\\scratchpad'; mock.module('electron', () => ({ app: { isPackaged: false, - getAppPath: () => 'C:\\workspace\\personal\\repositories\\eryx', - getPath: () => 'C:\\workspace\\personal\\repositories\\eryx\\tests\\fixtures', + getAppPath: () => 'C:\\workspace\\personal\\repositories\\aryx', + getPath: () => 'C:\\workspace\\personal\\repositories\\aryx\\tests\\fixtures', }, dialog: { showOpenDialog: async () => ({ canceled: true, filePaths: [] }), @@ -31,7 +31,7 @@ mock.module('keytar', () => ({ }, })); -const { EryxAppService } = await import('@main/EryxAppService'); +const { AryxAppService } = await import('@main/AryxAppService'); function createWorkspaceFixture(): { workspace: WorkspaceState; @@ -70,7 +70,7 @@ function createWorkspaceFixture(): { transport: 'local', command: 'node', args: ['server.js', '--stdio'], - cwd: 'C:\\workspace\\personal\\repositories\\eryx', + cwd: 'C:\\workspace\\personal\\repositories\\aryx', tools: ['git.status'], timeoutMs: 1500, createdAt: TIMESTAMP, @@ -101,8 +101,8 @@ function createService( captureRunTurn?: (command: RunTurnCommand) => void; knownApprovalToolNames?: string[]; }, -): InstanceType { - const service = new EryxAppService(); +): InstanceType { + const service = new AryxAppService(); const internals = service as unknown as Record; internals.loadWorkspace = async () => workspace; internals.persistAndBroadcast = async (nextWorkspace: WorkspaceState) => nextWorkspace; @@ -135,7 +135,7 @@ function createService( return service; } -describe('EryxAppService scratchpad tooling support', () => { +describe('AryxAppService scratchpad tooling support', () => { test('allows scratchpad sessions to save MCP and LSP selections', async () => { const { workspace, pattern, session } = createWorkspaceFixture(); const service = createService(workspace, pattern); @@ -189,7 +189,7 @@ describe('EryxAppService scratchpad tooling support', () => { transport: 'local', command: 'node', args: ['server.js', '--stdio'], - cwd: 'C:\\workspace\\personal\\repositories\\eryx', + cwd: 'C:\\workspace\\personal\\repositories\\aryx', tools: ['git.status'], timeoutMs: 1500, }, diff --git a/tests/main/configScanner.test.ts b/tests/main/configScanner.test.ts index d4bb9fe..d624e17 100644 --- a/tests/main/configScanner.test.ts +++ b/tests/main/configScanner.test.ts @@ -14,7 +14,7 @@ afterEach(async () => { }); async function createTempDirectory(): Promise { - const directory = await mkdtemp(join(tmpdir(), 'eryx-config-scanner-')); + const directory = await mkdtemp(join(tmpdir(), 'aryx-config-scanner-')); temporaryPaths.push(directory); return directory; } diff --git a/tests/main/sidecarProcess.test.ts b/tests/main/sidecarProcess.test.ts index 01a8c8c..c7e9399 100644 --- a/tests/main/sidecarProcess.test.ts +++ b/tests/main/sidecarProcess.test.ts @@ -45,7 +45,7 @@ const spawnedProcesses: FakeChildProcess[] = []; mock.module('electron', () => ({ app: { isPackaged: false, - getAppPath: () => 'C:\\workspace\\personal\\repositories\\eryx', + getAppPath: () => 'C:\\workspace\\personal\\repositories\\aryx', }, })); diff --git a/tests/main/sidecarRuntime.test.ts b/tests/main/sidecarRuntime.test.ts index 04191f7..2147ba7 100644 --- a/tests/main/sidecarRuntime.test.ts +++ b/tests/main/sidecarRuntime.test.ts @@ -7,8 +7,8 @@ describe('resolveSidecarProcess', () => { expect( resolveSidecarProcess({ isPackaged: false, - appPath: 'C:\\workspace\\personal\\repositories\\eryx', - resourcesPath: 'C:\\workspace\\personal\\repositories\\eryx\\resources', + appPath: 'C:\\workspace\\personal\\repositories\\aryx', + resourcesPath: 'C:\\workspace\\personal\\repositories\\aryx\\resources', platform: 'win32', }), ).toEqual({ @@ -16,11 +16,11 @@ describe('resolveSidecarProcess', () => { args: [ 'run', '--project', - 'C:\\workspace\\personal\\repositories\\eryx\\sidecar\\src\\Aryx.AgentHost\\Aryx.AgentHost.csproj', + 'C:\\workspace\\personal\\repositories\\aryx\\sidecar\\src\\Aryx.AgentHost\\Aryx.AgentHost.csproj', '--', '--stdio', ], - cwd: 'C:\\workspace\\personal\\repositories\\eryx', + cwd: 'C:\\workspace\\personal\\repositories\\aryx', }); }); @@ -28,14 +28,14 @@ describe('resolveSidecarProcess', () => { expect( resolveSidecarProcess({ isPackaged: true, - appPath: 'C:\\workspace\\personal\\repositories\\eryx\\release\\win-unpacked\\resources\\app', - resourcesPath: 'C:\\workspace\\personal\\repositories\\eryx\\release\\win-unpacked\\resources', + appPath: 'C:\\workspace\\personal\\repositories\\aryx\\release\\win-unpacked\\resources\\app', + resourcesPath: 'C:\\workspace\\personal\\repositories\\aryx\\release\\win-unpacked\\resources', platform: 'win32', }), ).toEqual({ - command: 'C:\\workspace\\personal\\repositories\\eryx\\release\\win-unpacked\\resources\\sidecar\\Aryx.AgentHost.exe', + command: 'C:\\workspace\\personal\\repositories\\aryx\\release\\win-unpacked\\resources\\sidecar\\Aryx.AgentHost.exe', args: ['--stdio'], - cwd: 'C:\\workspace\\personal\\repositories\\eryx\\release\\win-unpacked\\resources\\sidecar', + cwd: 'C:\\workspace\\personal\\repositories\\aryx\\release\\win-unpacked\\resources\\sidecar', }); });