refactor: rename Kopaya to Eryx

Rename the product, runtime surfaces, sidecar projects, docs, tests, and packaging outputs from Kopaya to Eryx across the repository.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
David Kaya
2026-03-23 22:01:23 +01:00
co-authored by Copilot
parent fd120b6f60
commit 50a8e5dfbe
50 changed files with 157 additions and 157 deletions
@@ -54,7 +54,7 @@ function isBuiltinPattern(patternId: string): boolean {
return patternId.startsWith('pattern-');
}
export class KopayaAppService extends EventEmitter<AppServiceEvents> {
export class EryxAppService extends EventEmitter<AppServiceEvents> {
private readonly workspaceRepository = new WorkspaceRepository();
private readonly sidecar = new SidecarClient();
private readonly secretStore = new SecretStore();
@@ -79,7 +79,7 @@ export class KopayaAppService extends EventEmitter<AppServiceEvents> {
if (!this.didScheduleInitialProjectGitRefresh) {
this.didScheduleInitialProjectGitRefresh = true;
void this.refreshProjectGitContext().catch((error) => {
console.error('[kopaya git]', error);
console.error('[eryx git]', error);
});
}
+3 -3
View File
@@ -1,14 +1,14 @@
import { app, BrowserWindow } from 'electron';
import { registerIpcHandlers } from '@main/ipc/registerIpcHandlers';
import { KopayaAppService } from '@main/KopayaAppService';
import { EryxAppService } from '@main/EryxAppService';
import { createMainWindow } from '@main/windows/createMainWindow';
let mainWindow: BrowserWindow | undefined;
let appService: KopayaAppService | undefined;
let appService: EryxAppService | undefined;
async function bootstrap(): Promise<void> {
appService = new KopayaAppService();
appService = new EryxAppService();
mainWindow = createMainWindow();
registerIpcHandlers(mainWindow, appService);
+2 -2
View File
@@ -14,9 +14,9 @@ import type {
} from '@shared/contracts/ipc';
import type { QuerySessionsInput } from '@shared/domain/sessionLibrary';
import { KopayaAppService } from '@main/KopayaAppService';
import { EryxAppService } from '@main/EryxAppService';
export function registerIpcHandlers(window: BrowserWindow, service: KopayaAppService): void {
export function registerIpcHandlers(window: BrowserWindow, service: EryxAppService): void {
ipcMain.handle(ipcChannels.describeSidecarCapabilities, () => service.describeSidecarCapabilities());
ipcMain.handle(ipcChannels.refreshSidecarCapabilities, () => service.refreshSidecarCapabilities());
ipcMain.handle(ipcChannels.loadWorkspace, () => service.loadWorkspace());
+1 -1
View File
@@ -1,6 +1,6 @@
import keytar from 'keytar';
const serviceName = 'kopaya';
const serviceName = 'eryx';
export class SecretStore {
async get(account: string): Promise<string | null> {
+1 -1
View File
@@ -98,7 +98,7 @@ export class SidecarClient {
childProcess.stderr.setEncoding('utf8');
childProcess.stderr.on('data', (chunk: string) => {
console.error('[kopaya sidecar]', chunk.trim());
console.error('[eryx sidecar]', chunk.trim());
});
childProcess.on('exit', (code) => {
+2 -2
View File
@@ -18,7 +18,7 @@ function getPathModule(platform: NodeJS.Platform) {
}
function getBundledSidecarExecutableName(platform: NodeJS.Platform): string {
return platform === 'win32' ? 'Kopaya.AgentHost.exe' : 'Kopaya.AgentHost';
return platform === 'win32' ? 'Eryx.AgentHost.exe' : 'Eryx.AgentHost';
}
export function resolveSidecarProcess(context: SidecarRuntimeContext): ResolvedSidecarProcess {
@@ -39,7 +39,7 @@ export function resolveSidecarProcess(context: SidecarRuntimeContext): ResolvedS
args: [
'run',
'--project',
pathModule.join(context.appPath, 'sidecar', 'src', 'Kopaya.AgentHost', 'Kopaya.AgentHost.csproj'),
pathModule.join(context.appPath, 'sidecar', 'src', 'Eryx.AgentHost', 'Eryx.AgentHost.csproj'),
'--',
'--stdio',
],
+1 -1
View File
@@ -11,7 +11,7 @@ export function createMainWindow(): BrowserWindow {
height: 960,
minWidth: 1120,
minHeight: 720,
title: 'kopaya',
title: 'eryx',
icon: resolveWindowIconPath({
appPath: app.getAppPath(),
platform: process.platform,
+1 -1
View File
@@ -41,4 +41,4 @@ const api: ElectronApi = {
},
};
contextBridge.exposeInMainWorld('kopayaApi', api);
contextBridge.exposeInMainWorld('eryxApi', api);
+1 -1
View File
@@ -186,7 +186,7 @@ function ConnectionSection({
<div className="mb-1">
<h3 className="text-sm font-semibold text-zinc-200">GitHub Copilot</h3>
<p className="mt-0.5 text-[12px] text-zinc-500">
Kopaya uses your installed GitHub Copilot CLI for AI capabilities
Eryx uses your installed GitHub Copilot CLI for AI capabilities
</p>
</div>
<div className="mt-4 rounded-xl border border-[var(--color-border)] bg-zinc-900/30 p-4">
+1 -1
View File
@@ -499,7 +499,7 @@ export function Sidebar({
<Sparkles className="size-4" />
</div>
<div>
<span className="text-sm font-semibold text-zinc-100">kopaya</span>
<span className="text-sm font-semibold text-zinc-100">eryx</span>
<span className="ml-1.5 rounded bg-zinc-800 px-1 py-0.5 text-[9px] font-medium text-zinc-500">
BETA
</span>
+1 -1
View File
@@ -21,7 +21,7 @@ export function WelcomePane({
</div>
<div>
<h1 className="text-xl font-semibold text-zinc-100">Welcome to kopaya</h1>
<h1 className="text-xl font-semibold text-zinc-100">Welcome to eryx</h1>
<p className="mt-2 max-w-md text-sm leading-relaxed text-zinc-500">
Start a scratchpad conversation for ad-hoc questions or connect a project to work with
repo-aware Copilot agents.
+1 -1
View File
@@ -2,7 +2,7 @@ import type { ElectronApi } from '@shared/contracts/ipc';
declare global {
interface Window {
kopayaApi: ElectronApi;
eryxApi: ElectronApi;
}
}
+1 -1
View File
@@ -6,7 +6,7 @@
name="viewport"
content="width=device-width, initial-scale=1.0"
/>
<title>kopaya</title>
<title>eryx</title>
</head>
<body class="bg-slate-950 text-slate-100">
<div id="root"></div>
+2 -2
View File
@@ -1,7 +1,7 @@
export function getElectronApi() {
if (!window.kopayaApi) {
if (!window.eryxApi) {
throw new Error('The Electron preload API is unavailable.');
}
return window.kopayaApi;
return window.eryxApi;
}
+1 -1
View File
@@ -24,7 +24,7 @@ export function applySessionEventActivity(
if (event.kind === 'agent-activity') {
const agentKey = resolveAgentKey(event);
if (!agentKey) {
console.warn('[kopaya activity] Dropping agent-activity event without agentId/agentName.', event);
console.warn('[eryx activity] Dropping agent-activity event without agentId/agentName.', event);
return current;
}