From ab4e217d744c88ee4e795fb0c6a913607e9d6e13 Mon Sep 17 00:00:00 2001 From: David Kaya Date: Wed, 25 Mar 2026 21:11:36 +0100 Subject: [PATCH] refactor: rename app to aryx Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .github/workflows/release.yml | 14 ++++----- ARCHITECTURE.md | 16 +++++----- README.md | 30 +++++++++---------- package.json | 2 +- scripts/releaseTarget.ts | 4 +-- .../Services/CopilotCliPathResolver.cs | 2 +- .../CopilotConnectionMetadataResolver.cs | 2 +- .../Eryx.AgentHost/Services/LspToolSession.cs | 4 +-- .../Services/SidecarProtocolHost.cs | 10 +++---- src/main/EryxAppService.ts | 4 +-- src/main/secrets/secretStore.ts | 2 +- src/main/sidecar/sidecarProcess.ts | 2 +- src/main/windows/createMainWindow.ts | 2 +- src/preload/index.ts | 2 +- src/renderer/components/SettingsPanel.tsx | 4 +-- src/renderer/components/Sidebar.tsx | 4 +-- src/renderer/components/WelcomePane.tsx | 2 +- src/renderer/env.d.ts | 2 +- src/renderer/index.html | 2 +- src/renderer/lib/electronApi.ts | 4 +-- src/renderer/lib/markdownEditor.ts | 2 +- src/renderer/lib/sessionActivity.ts | 2 +- tests/main/appIcon.test.ts | 8 ++--- tests/main/sidecarRuntime.test.ts | 8 ++--- tests/scripts/releaseTarget.test.ts | 22 +++++++------- tests/shared/project.test.ts | 6 ++-- 26 files changed, 81 insertions(+), 81 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 444539d..f809473 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -94,13 +94,13 @@ jobs: include: - os: windows-latest label: Windows - asset_path: release/Eryx-windows-x64.zip + asset_path: release/Aryx-windows-x64.zip - os: macos-13 label: macOS - asset_path: release/Eryx-macos-x64.zip + asset_path: release/Aryx-macos-x64.zip - os: ubuntu-latest label: Linux - asset_path: release/Eryx-linux-x64.tar.gz + asset_path: release/Aryx-linux-x64.tar.gz steps: - name: Check out repository @@ -130,20 +130,20 @@ jobs: - name: Ad-hoc sign macOS app bundle if: runner.os == 'macOS' - run: codesign --force --deep --sign - release/Eryx-macos-x64/Eryx.app + run: codesign --force --deep --sign - release/Aryx-macos-x64/Aryx.app - name: Create Windows release archive if: runner.os == 'Windows' shell: pwsh - run: Compress-Archive -Path 'release\Eryx-windows-x64\*' -DestinationPath 'release\Eryx-windows-x64.zip' -Force + run: Compress-Archive -Path 'release\Aryx-windows-x64\*' -DestinationPath 'release\Aryx-windows-x64.zip' -Force - name: Create macOS release archive if: runner.os == 'macOS' - run: ditto -c -k --sequesterRsrc --keepParent release/Eryx-macos-x64/Eryx.app release/Eryx-macos-x64.zip + run: ditto -c -k --sequesterRsrc --keepParent release/Aryx-macos-x64/Aryx.app release/Aryx-macos-x64.zip - name: Create Linux release archive if: runner.os == 'Linux' - run: tar -czf release/Eryx-linux-x64.tar.gz -C release Eryx-linux-x64 + run: tar -czf release/Aryx-linux-x64.tar.gz -C release Aryx-linux-x64 - name: Upload asset to GitHub release shell: bash diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md index 4099510..c847525 100644 --- a/ARCHITECTURE.md +++ b/ARCHITECTURE.md @@ -2,7 +2,7 @@ ## What this system is -Eryx is a desktop workspace for Copilot-powered development work. It combines a persistent session model, project-aware context, reusable multi-agent orchestration patterns, optional external tooling, and live run visibility inside a single Electron application. +Aryx is a desktop workspace for Copilot-powered development work. It combines a persistent session model, project-aware context, reusable multi-agent orchestration patterns, optional external tooling, and live run visibility inside a single Electron application. At a high level, the architecture is built around one core idea: @@ -63,7 +63,7 @@ This split is the most important architectural feature in the app. It is what ke ## High-level runtime model -Eryx runs as a multi-process desktop application: +Aryx runs as a multi-process desktop application: 1. The **renderer** displays the workspace and captures user intent. 2. The **preload bridge** exposes a small, typed API into the browser context. @@ -101,7 +101,7 @@ sequenceDiagram M-->>R: Final workspace snapshot ``` -This flow is important because it shows that Eryx is not architected as a simple "send prompt, get string" application. It treats execution as a structured, observable process. +This flow is important because it shows that Aryx is not architected as a simple "send prompt, get string" application. It treats execution as a structured, observable process. ## Application state model @@ -113,7 +113,7 @@ The durable state of the app is a **workspace**. The workspace contains: - settings - run history -This gives Eryx a persistent operating model rather than a transient chat model. +This gives Aryx a persistent operating model rather than a transient chat model. ### Projects @@ -155,7 +155,7 @@ A session is the working unit of the product. It binds together: - optional per-session tool selection - persisted run history -This is how Eryx keeps "ongoing work" first class. Sessions can survive restarts, can be organized, and can accumulate operational history over time. +This is how Aryx keeps "ongoing work" first class. Sessions can survive restarts, can be organized, and can accumulate operational history over time. ### Runs @@ -171,7 +171,7 @@ That run model is what enables the activity panel and historical timeline instea ## Communication model -Eryx uses two main communication links: +Aryx uses two main communication links: ### 1. Renderer <-> main process @@ -301,7 +301,7 @@ This keeps those concerns out of the renderer while still letting the UI feel na ## Build and release architecture -Eryx ships as an Electron application bundled together with a self-contained .NET sidecar. +Aryx ships as an Electron application bundled together with a self-contained .NET sidecar. The build pipeline is organized around three layers: @@ -315,7 +315,7 @@ This packaging model matches the runtime architecture: one desktop shell plus on ## Why this architecture works well -This architecture fits the product because it gives Eryx: +This architecture fits the product because it gives Aryx: - a clear privilege split between UI and native capabilities - a stable, persistent workspace model diff --git a/README.md b/README.md index 43b0af3..46a9064 100644 --- a/README.md +++ b/README.md @@ -1,21 +1,21 @@

- Eryx logo + Aryx logo

-

Eryx

+

Aryx

A desktop workspace for Copilot-powered work across real projects.

-Eryx is built for people who want more than a generic AI chat window. It gives you a place to ask quick questions, connect real projects, run reusable agent patterns, and keep ongoing work organized in one app. +Aryx is built for people who want more than a generic AI chat window. It gives you a place to ask quick questions, connect real projects, run reusable agent patterns, and keep ongoing work organized in one app. It works especially well when you want AI help that stays grounded in an actual codebase: your folders, your repository state, your current branch, and your active work. -## Why use Eryx? +## Why use Aryx? - **Start fast** with a scratchpad conversation for quick questions and ad-hoc work. -- **Work against real projects** by attaching local folders and letting Eryx stay aware of repository context. +- **Work against real projects** by attaching local folders and letting Aryx stay aware of repository context. - **Go beyond one assistant** with orchestration patterns such as single-agent, sequential, concurrent, handoff, and group-chat flows. - **See what is happening** with live activity for each agent while a run is in progress. - **Stay organized** with persistent sessions you can rename, pin, archive, and return to later. @@ -29,11 +29,11 @@ If you just want to think through an idea, draft something, or ask for help with ### Connect a real project -Add a local folder when you want help that is grounded in your work. Eryx is designed to feel strongest when it is attached to a real project instead of acting like a general-purpose chatbot. +Add a local folder when you want help that is grounded in your work. Aryx is designed to feel strongest when it is attached to a real project instead of acting like a general-purpose chatbot. ### Choose how agents collaborate -Eryx supports several ways of working: +Aryx supports several ways of working: - **Single** for direct one-agent help - **Sequential** for pipeline-style work where each agent sees the full conversation and appends its contribution @@ -59,7 +59,7 @@ Sessions are persistent, so you can return to ongoing work instead of starting f ## Before you start -To use Eryx comfortably, make sure you have: +To use Aryx comfortably, make sure you have: - a **Windows machine** - **GitHub Copilot CLI** installed and available as `copilot` @@ -67,11 +67,11 @@ To use Eryx comfortably, make sure you have: - a local folder or git repository ready to connect if you want project-aware help - any MCP servers or language servers you want to use installed and reachable from your machine -Eryx includes connection status in the app so you can quickly tell whether Copilot is ready before you start a session. +Aryx includes connection status in the app so you can quickly tell whether Copilot is ready before you start a session. ## Getting started -1. **Open Eryx** +1. **Open Aryx** Launch the app and head to settings if you want to confirm your Copilot connection first. 2. **Check that Copilot is ready** @@ -84,14 +84,14 @@ Eryx includes connection status in the app so you can quickly tell whether Copil Use a simple single-agent setup to begin, or choose a saved multi-agent pattern when you want a more structured workflow. 5. **Configure optional tooling** - If you want MCP or LSP support, add the global definitions in settings and then enable the ones you want for the current session from the Activity panel. Eryx also surfaces Copilot CLI runtime tools for tool auto-approval, and you can set pattern-level defaults and override them per session. + If you want MCP or LSP support, add the global definitions in settings and then enable the ones you want for the current session from the Activity panel. Aryx also surfaces Copilot CLI runtime tools for tool auto-approval, and you can set pattern-level defaults and override them per session. 6. **Start working** Ask a question, describe a task, or explore a project. As the run progresses, you can watch the participating agents and keep the session for later. -## When Eryx feels most useful +## When Aryx feels most useful -Eryx shines when you want to: +Aryx shines when you want to: - move from quick chat to deeper multi-step work without leaving the app - keep AI conversations tied to actual projects instead of isolated prompts @@ -115,6 +115,6 @@ GitHub Actions now runs validation on pushes and pull requests, and pushing a gi ## Current focus -Eryx is focused on local, project-based work with your GitHub Copilot account. It already covers the essentials for working with projects, sessions, and reusable orchestration patterns, and it is growing toward a fuller AI workstation experience over time. +Aryx is focused on local, project-based work with your GitHub Copilot account. It already covers the essentials for working with projects, sessions, and reusable orchestration patterns, and it is growing toward a fuller AI workstation experience over time. -If you want an AI app that feels closer to a control room for real work than a blank chat box, Eryx is built for that. +If you want an AI app that feels closer to a control room for real work than a blank chat box, Aryx is built for that. diff --git a/package.json b/package.json index 2af20d8..4ad9eba 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "eryx", + "name": "aryx", "version": "1.0.0", "description": "Electron orchestrator for Copilot-powered agent workflows across multiple projects.", "private": true, diff --git a/scripts/releaseTarget.ts b/scripts/releaseTarget.ts index 8252c74..f726af6 100644 --- a/scripts/releaseTarget.ts +++ b/scripts/releaseTarget.ts @@ -1,5 +1,5 @@ -export const productName = 'Eryx'; -export const macBundleIdentifier = 'com.davidkaya.eryx'; +export const productName = 'Aryx'; +export const macBundleIdentifier = 'com.davidkaya.aryx'; type SupportedPlatform = 'win32' | 'darwin' | 'linux'; type SupportedArch = 'x64' | 'arm64'; diff --git a/sidecar/src/Eryx.AgentHost/Services/CopilotCliPathResolver.cs b/sidecar/src/Eryx.AgentHost/Services/CopilotCliPathResolver.cs index 4d4e942..4ede267 100644 --- a/sidecar/src/Eryx.AgentHost/Services/CopilotCliPathResolver.cs +++ b/sidecar/src/Eryx.AgentHost/Services/CopilotCliPathResolver.cs @@ -27,7 +27,7 @@ internal static class CopilotCliPathResolver if (string.IsNullOrWhiteSpace(cliPath)) { throw new InvalidOperationException( - "Eryx requires the system-installed 'copilot' command on PATH. Install the GitHub Copilot CLI and ensure it is available in the current environment."); + "Aryx requires the system-installed 'copilot' command on PATH. Install the GitHub Copilot CLI and ensure it is available in the current environment."); } CopilotCliLaunch launch = ResolveCliLaunch( diff --git a/sidecar/src/Eryx.AgentHost/Services/CopilotConnectionMetadataResolver.cs b/sidecar/src/Eryx.AgentHost/Services/CopilotConnectionMetadataResolver.cs index 7c9d2aa..ecc08d1 100644 --- a/sidecar/src/Eryx.AgentHost/Services/CopilotConnectionMetadataResolver.cs +++ b/sidecar/src/Eryx.AgentHost/Services/CopilotConnectionMetadataResolver.cs @@ -156,7 +156,7 @@ internal static partial class CopilotConnectionMetadataResolver } catch (Exception exception) { - Console.Error.WriteLine($"[eryx sidecar] Failed to inspect Copilot auth status: {exception.Message}"); + Console.Error.WriteLine($"[aryx sidecar] Failed to inspect Copilot auth status: {exception.Message}"); return null; } } diff --git a/sidecar/src/Eryx.AgentHost/Services/LspToolSession.cs b/sidecar/src/Eryx.AgentHost/Services/LspToolSession.cs index 1c43f7b..de9786f 100644 --- a/sidecar/src/Eryx.AgentHost/Services/LspToolSession.cs +++ b/sidecar/src/Eryx.AgentHost/Services/LspToolSession.cs @@ -198,7 +198,7 @@ internal sealed class LspToolSession : IAsyncDisposable }, clientInfo = new { - name = "Eryx", + name = "Aryx", version = "1.0.0", }, }, @@ -516,7 +516,7 @@ internal sealed class LspToolSession : IAsyncDisposable if (!string.IsNullOrWhiteSpace(line)) { RecordStderrLine(line); - Console.Error.WriteLine($"[eryx lsp:{_profile.Id}] {line}"); + Console.Error.WriteLine($"[aryx lsp:{_profile.Id}] {line}"); } } } diff --git a/sidecar/src/Eryx.AgentHost/Services/SidecarProtocolHost.cs b/sidecar/src/Eryx.AgentHost/Services/SidecarProtocolHost.cs index 713b2bb..2fdb1e0 100644 --- a/sidecar/src/Eryx.AgentHost/Services/SidecarProtocolHost.cs +++ b/sidecar/src/Eryx.AgentHost/Services/SidecarProtocolHost.cs @@ -236,7 +236,7 @@ public sealed class SidecarProtocolHost catch (Exception exception) { SidecarConnectionDiagnosticsDto connection = CreateMissingCliDiagnostics(exception); - Console.Error.WriteLine($"[eryx sidecar] {connection.Summary} {exception.Message}"); + Console.Error.WriteLine($"[aryx sidecar] {connection.Summary} {exception.Message}"); return CreateCapabilities([], [], connection); } } @@ -279,7 +279,7 @@ public sealed class SidecarProtocolHost catch (Exception exception) { cliVersion = await cliVersionTask.ConfigureAwait(false); - Console.Error.WriteLine($"[eryx sidecar] Failed to list available Copilot models: {exception.Message}"); + Console.Error.WriteLine($"[aryx sidecar] Failed to list available Copilot models: {exception.Message}"); return new CapabilityProbeResult( models, @@ -351,7 +351,7 @@ public sealed class SidecarProtocolHost } catch (Exception exception) { - Console.Error.WriteLine($"[eryx sidecar] Failed to list available Copilot runtime tools: {exception.Message}"); + Console.Error.WriteLine($"[aryx sidecar] Failed to list available Copilot runtime tools: {exception.Message}"); return []; } } @@ -423,8 +423,8 @@ public sealed class SidecarProtocolHost { string status = ClassifyConnectionStatus(exception); string summary = status == "copilot-auth-required" - ? "GitHub Copilot requires authentication before Eryx can load models." - : "GitHub Copilot was found, but Eryx could not load its model list."; + ? "GitHub Copilot requires authentication before Aryx can load models." + : "GitHub Copilot was found, but Aryx could not load its model list."; return new SidecarConnectionDiagnosticsDto { diff --git a/src/main/EryxAppService.ts b/src/main/EryxAppService.ts index 3101e24..3ff7413 100644 --- a/src/main/EryxAppService.ts +++ b/src/main/EryxAppService.ts @@ -145,7 +145,7 @@ export class EryxAppService extends EventEmitter { if (!this.didScheduleInitialProjectGitRefresh) { this.didScheduleInitialProjectGitRefresh = true; void this.refreshProjectGitContext().catch((error) => { - console.error('[eryx git]', error); + console.error('[aryx git]', error); }); } @@ -1348,7 +1348,7 @@ export class EryxAppService extends EventEmitter { changed = true; const failedAt = nowIso(); - const error = 'Pending approval was interrupted because Eryx restarted before a decision was recorded.'; + const error = 'Pending approval was interrupted because Aryx restarted before a decision was recorded.'; const requestIds = this.rejectPendingApprovals(session, failedAt, error); session.status = 'error'; session.lastError = error; diff --git a/src/main/secrets/secretStore.ts b/src/main/secrets/secretStore.ts index 76a248d..e98cbdf 100644 --- a/src/main/secrets/secretStore.ts +++ b/src/main/secrets/secretStore.ts @@ -1,6 +1,6 @@ import keytar from 'keytar'; -const serviceName = 'eryx'; +const serviceName = 'aryx'; export class SecretStore { async get(account: string): Promise { diff --git a/src/main/sidecar/sidecarProcess.ts b/src/main/sidecar/sidecarProcess.ts index 6a77172..b59f1a2 100644 --- a/src/main/sidecar/sidecarProcess.ts +++ b/src/main/sidecar/sidecarProcess.ts @@ -115,7 +115,7 @@ export class SidecarClient { childProcess.stderr.setEncoding('utf8'); childProcess.stderr.on('data', (chunk: string) => { - console.error('[eryx sidecar]', chunk.trim()); + console.error('[aryx sidecar]', chunk.trim()); }); childProcess.on('exit', (code) => { diff --git a/src/main/windows/createMainWindow.ts b/src/main/windows/createMainWindow.ts index 7579be0..e733c50 100644 --- a/src/main/windows/createMainWindow.ts +++ b/src/main/windows/createMainWindow.ts @@ -11,7 +11,7 @@ export function createMainWindow(): BrowserWindow { height: 960, minWidth: 1120, minHeight: 720, - title: 'eryx', + title: 'aryx', icon: resolveWindowIconPath({ appPath: app.getAppPath(), platform: process.platform, diff --git a/src/preload/index.ts b/src/preload/index.ts index 9ede59f..4abda24 100644 --- a/src/preload/index.ts +++ b/src/preload/index.ts @@ -50,4 +50,4 @@ const api: ElectronApi = { }, }; -contextBridge.exposeInMainWorld('eryxApi', api); +contextBridge.exposeInMainWorld('aryxApi', api); diff --git a/src/renderer/components/SettingsPanel.tsx b/src/renderer/components/SettingsPanel.tsx index 740b2d5..dee7f38 100644 --- a/src/renderer/components/SettingsPanel.tsx +++ b/src/renderer/components/SettingsPanel.tsx @@ -293,7 +293,7 @@ function AppearanceSection({

Appearance

- Choose how Eryx looks on your device + Choose how Aryx looks on your device

@@ -348,7 +348,7 @@ function ConnectionSection({

GitHub Copilot

- Eryx uses your installed GitHub Copilot CLI for AI capabilities + Aryx uses your installed GitHub Copilot CLI for AI capabilities

diff --git a/src/renderer/components/Sidebar.tsx b/src/renderer/components/Sidebar.tsx index c13b2d9..e8c98ab 100644 --- a/src/renderer/components/Sidebar.tsx +++ b/src/renderer/components/Sidebar.tsx @@ -524,9 +524,9 @@ export function Sidebar({ {/* Header — extra top padding clears the title bar overlay zone */}
- eryx + aryx
- eryx + aryx ALPHA diff --git a/src/renderer/components/WelcomePane.tsx b/src/renderer/components/WelcomePane.tsx index b4d6213..b128163 100644 --- a/src/renderer/components/WelcomePane.tsx +++ b/src/renderer/components/WelcomePane.tsx @@ -21,7 +21,7 @@ export function WelcomePane({
-

Welcome to eryx

+

Welcome to aryx

Start a scratchpad conversation for ad-hoc questions or connect a project to work with repo-aware Copilot agents. diff --git a/src/renderer/env.d.ts b/src/renderer/env.d.ts index 54872bf..251f976 100644 --- a/src/renderer/env.d.ts +++ b/src/renderer/env.d.ts @@ -2,7 +2,7 @@ import type { ElectronApi } from '@shared/contracts/ipc'; declare global { interface Window { - eryxApi: ElectronApi; + aryxApi: ElectronApi; } } diff --git a/src/renderer/index.html b/src/renderer/index.html index 70bc1e7..4877e23 100644 --- a/src/renderer/index.html +++ b/src/renderer/index.html @@ -6,7 +6,7 @@ name="viewport" content="width=device-width, initial-scale=1.0" /> - eryx + aryx

diff --git a/src/renderer/lib/electronApi.ts b/src/renderer/lib/electronApi.ts index 995cfa4..93d9849 100644 --- a/src/renderer/lib/electronApi.ts +++ b/src/renderer/lib/electronApi.ts @@ -1,7 +1,7 @@ export function getElectronApi() { - if (!window.eryxApi) { + if (!window.aryxApi) { throw new Error('The Electron preload API is unavailable.'); } - return window.eryxApi; + return window.aryxApi; } diff --git a/src/renderer/lib/markdownEditor.ts b/src/renderer/lib/markdownEditor.ts index 6531870..4613922 100644 --- a/src/renderer/lib/markdownEditor.ts +++ b/src/renderer/lib/markdownEditor.ts @@ -28,7 +28,7 @@ export interface MarkdownPasteInspection { reason: MarkdownPasteReason; } -export const markdownEditorNamespace = 'eryx-markdown-composer'; +export const markdownEditorNamespace = 'aryx-markdown-composer'; export const markdownEditorNodes: ReadonlyArray> = [ HeadingNode, diff --git a/src/renderer/lib/sessionActivity.ts b/src/renderer/lib/sessionActivity.ts index 8d631ea..282ff74 100644 --- a/src/renderer/lib/sessionActivity.ts +++ b/src/renderer/lib/sessionActivity.ts @@ -24,7 +24,7 @@ export function applySessionEventActivity( if (event.kind === 'agent-activity') { const agentKey = resolveAgentKey(event); if (!agentKey) { - console.warn('[eryx activity] Dropping agent-activity event without agentId/agentName.', event); + console.warn('[aryx activity] Dropping agent-activity event without agentId/agentName.', event); return current; } diff --git a/tests/main/appIcon.test.ts b/tests/main/appIcon.test.ts index 53f072c..55985f7 100644 --- a/tests/main/appIcon.test.ts +++ b/tests/main/appIcon.test.ts @@ -15,18 +15,18 @@ describe('resolveWindowIconPath', () => { test('uses the macOS icns asset on Darwin', () => { expect( resolveWindowIconPath({ - appPath: '/Applications/Eryx.app/Contents/Resources/app', + appPath: '/Applications/Aryx.app/Contents/Resources/app', platform: 'darwin', }), - ).toBe('/Applications/Eryx.app/Contents/Resources/app/assets/icons/macos/icon.icns'); + ).toBe('/Applications/Aryx.app/Contents/Resources/app/assets/icons/macos/icon.icns'); }); test('uses the Linux 512px PNG asset on Linux', () => { expect( resolveWindowIconPath({ - appPath: '/opt/eryx/resources/app', + appPath: '/opt/aryx/resources/app', platform: 'linux', }), - ).toBe('/opt/eryx/resources/app/assets/icons/linux/icons/512x512.png'); + ).toBe('/opt/aryx/resources/app/assets/icons/linux/icons/512x512.png'); }); }); diff --git a/tests/main/sidecarRuntime.test.ts b/tests/main/sidecarRuntime.test.ts index 9f4c73c..d1c82f6 100644 --- a/tests/main/sidecarRuntime.test.ts +++ b/tests/main/sidecarRuntime.test.ts @@ -43,14 +43,14 @@ describe('resolveSidecarProcess', () => { expect( resolveSidecarProcess({ isPackaged: true, - appPath: '/Applications/Eryx.app/Contents/Resources/app', - resourcesPath: '/Applications/Eryx.app/Contents/Resources', + appPath: '/Applications/Aryx.app/Contents/Resources/app', + resourcesPath: '/Applications/Aryx.app/Contents/Resources', platform: 'darwin', }), ).toEqual({ - command: '/Applications/Eryx.app/Contents/Resources/sidecar/Eryx.AgentHost', + command: '/Applications/Aryx.app/Contents/Resources/sidecar/Eryx.AgentHost', args: ['--stdio'], - cwd: '/Applications/Eryx.app/Contents/Resources/sidecar', + cwd: '/Applications/Aryx.app/Contents/Resources/sidecar', }); }); }); diff --git a/tests/scripts/releaseTarget.test.ts b/tests/scripts/releaseTarget.test.ts index ba53d28..0a86c62 100644 --- a/tests/scripts/releaseTarget.test.ts +++ b/tests/scripts/releaseTarget.test.ts @@ -13,10 +13,10 @@ describe('resolveReleaseTarget', () => { arch: 'x64', platformLabel: 'windows', dotnetRuntime: 'win-x64', - outputDirectoryName: 'Eryx-windows-x64', - archiveBaseName: 'Eryx-windows-x64', + outputDirectoryName: 'Aryx-windows-x64', + archiveBaseName: 'Aryx-windows-x64', sidecarExecutableName: 'Eryx.AgentHost.exe', - packagedExecutableName: 'Eryx.exe', + packagedExecutableName: 'Aryx.exe', }); }); @@ -26,10 +26,10 @@ describe('resolveReleaseTarget', () => { arch: 'arm64', platformLabel: 'macos', dotnetRuntime: 'osx-arm64', - outputDirectoryName: 'Eryx-macos-arm64', - archiveBaseName: 'Eryx-macos-arm64', + outputDirectoryName: 'Aryx-macos-arm64', + archiveBaseName: 'Aryx-macos-arm64', sidecarExecutableName: 'Eryx.AgentHost', - appBundleName: 'Eryx.app', + appBundleName: 'Aryx.app', }); }); @@ -39,16 +39,16 @@ describe('resolveReleaseTarget', () => { arch: 'x64', platformLabel: 'linux', dotnetRuntime: 'linux-x64', - outputDirectoryName: 'Eryx-linux-x64', - archiveBaseName: 'Eryx-linux-x64', + outputDirectoryName: 'Aryx-linux-x64', + archiveBaseName: 'Aryx-linux-x64', sidecarExecutableName: 'Eryx.AgentHost', - packagedExecutableName: 'Eryx', + packagedExecutableName: 'Aryx', }); }); test('exports the expected product metadata constants', () => { - expect(productName).toBe('Eryx'); - expect(macBundleIdentifier).toBe('com.davidkaya.eryx'); + expect(productName).toBe('Aryx'); + expect(macBundleIdentifier).toBe('com.davidkaya.aryx'); }); test('rejects unsupported platforms', () => { diff --git a/tests/shared/project.test.ts b/tests/shared/project.test.ts index d89b65d..bd7bba8 100644 --- a/tests/shared/project.test.ts +++ b/tests/shared/project.test.ts @@ -10,7 +10,7 @@ import { describe('scratchpad project helpers', () => { test('creates a stable built-in scratchpad project', () => { - const project = createScratchpadProject('C:\\Users\\me\\AppData\\Roaming\\eryx\\scratchpad'); + const project = createScratchpadProject('C:\\Users\\me\\AppData\\Roaming\\aryx\\scratchpad'); expect(project.id).toBe(SCRATCHPAD_PROJECT_ID); expect(project.name).toBe(SCRATCHPAD_PROJECT_NAME); @@ -38,7 +38,7 @@ describe('scratchpad project helpers', () => { addedAt: '2026-03-23T00:00:00.000Z', }, ], - 'C:\\Users\\me\\AppData\\Roaming\\eryx\\scratchpad', + 'C:\\Users\\me\\AppData\\Roaming\\aryx\\scratchpad', ); expect(merged[0].id).toBe(SCRATCHPAD_PROJECT_ID); @@ -69,7 +69,7 @@ describe('scratchpad project helpers', () => { }, }, ], - 'C:\\Users\\me\\AppData\\Roaming\\eryx\\scratchpad', + 'C:\\Users\\me\\AppData\\Roaming\\aryx\\scratchpad', ); expect(merged[0].git).toBeUndefined();