refactor: finish Aryx rebrand sweep

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
David Kaya
2026-03-26 00:17:14 +01:00
co-authored by Copilot
parent 1edd3aed55
commit 88030eb48d
11 changed files with 43 additions and 43 deletions
+3 -3
View File
@@ -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",
@@ -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<AppServiceEvents> {
export class AryxAppService extends EventEmitter<AppServiceEvents> {
private readonly workspaceRepository = new WorkspaceRepository();
private readonly sidecar = new SidecarClient();
private readonly secretStore = new SecretStore();
+3 -3
View File
@@ -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<void> {
appService = new EryxAppService();
appService = new AryxAppService();
mainWindow = createMainWindow();
registerIpcHandlers(mainWindow, appService);
+2 -2
View File
@@ -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());
+2 -2
View File
@@ -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', () => {
@@ -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>): ProjectRecord {
return {
@@ -63,8 +63,8 @@ function createService(
options?: {
captureRunTurn?: (command: RunTurnCommand) => void;
},
): InstanceType<typeof EryxAppService> {
const service = new EryxAppService();
): InstanceType<typeof AryxAppService> {
const service = new AryxAppService();
const internals = service as unknown as Record<string, unknown>;
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');
@@ -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<typeof EryxAppService>,
service: InstanceType<typeof AryxAppService>,
describeCapabilities: () => Promise<SidecarCapabilities>,
): void {
(
@@ -74,9 +74,9 @@ function createDeferred<T>() {
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<SidecarCapabilities>();
let calls = 0;
+9 -9
View File
@@ -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<typeof EryxAppService> {
const service = new EryxAppService();
): InstanceType<typeof AryxAppService> {
const service = new AryxAppService();
const internals = service as unknown as Record<string, unknown>;
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,
},
+1 -1
View File
@@ -14,7 +14,7 @@ afterEach(async () => {
});
async function createTempDirectory(): Promise<string> {
const directory = await mkdtemp(join(tmpdir(), 'eryx-config-scanner-'));
const directory = await mkdtemp(join(tmpdir(), 'aryx-config-scanner-'));
temporaryPaths.push(directory);
return directory;
}
+1 -1
View File
@@ -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',
},
}));
+8 -8
View File
@@ -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',
});
});