From e032ac04bdf11582ebb1ff1fec3de5e1cbff66c4 Mon Sep 17 00:00:00 2001 From: Eden AHOUSSOU Date: Thu, 30 Apr 2026 12:36:12 +0100 Subject: [PATCH] fix(windows): resolve daemon project root in src mode; add start/stop scripts; approve sharp build --- apps/daemon/src/server.ts | 3 ++- package.json | 3 ++- start-open-design.ps1 | 44 +++++++++++++++++++++++++++++++++++++++ stop-open-design.ps1 | 19 +++++++++++++++++ 4 files changed, 67 insertions(+), 2 deletions(-) create mode 100644 start-open-design.ps1 create mode 100644 stop-open-design.ps1 diff --git a/apps/daemon/src/server.ts b/apps/daemon/src/server.ts index e8b20587..749b0211 100644 --- a/apps/daemon/src/server.ts +++ b/apps/daemon/src/server.ts @@ -69,7 +69,8 @@ import { const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); export function resolveProjectRoot(moduleDir: string): string { - const daemonDir = path.basename(moduleDir) === 'dist' + const base = path.basename(moduleDir); + const daemonDir = base === 'dist' || base === 'src' ? path.dirname(moduleDir) : moduleDir; return path.resolve(daemonDir, '../..'); diff --git a/package.json b/package.json index 0e85b0ce..303615cd 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,8 @@ "onlyBuiltDependencies": [ "better-sqlite3", "electron", - "esbuild" + "esbuild", + "sharp" ] } } diff --git a/start-open-design.ps1 b/start-open-design.ps1 new file mode 100644 index 00000000..0105238d --- /dev/null +++ b/start-open-design.ps1 @@ -0,0 +1,44 @@ +$ErrorActionPreference = "Stop" + +$repoRoot = "C:\Users\aeden\Documents\Codex\2026-04-29\https-github-com-nexu-io-open" +$webDir = Join-Path $repoRoot "apps\web" +$pnpmCmd = "C:\Program Files\nodejs\pnpm.cmd" +$nodeVersion = "24.7.0" + +Set-Location $repoRoot + +Write-Host "Using Node $nodeVersion..." +nvm use $nodeVersion | Out-Host + +Write-Host "Starting daemon..." +& $pnpmCmd tools-dev start daemon | Out-Host + +$statusOutput = & $pnpmCmd tools-dev status | Out-String +$daemonUrl = [regex]::Match($statusOutput, 'http://127\.0\.0\.1:(\d+)').Value +if (-not $daemonUrl) { + throw "Unable to detect daemon URL from tools-dev status." +} +$daemonPort = [regex]::Match($daemonUrl, ':(\d+)$').Groups[1].Value + +Write-Host "Daemon URL: $daemonUrl" +Write-Host "Restarting web dev server on localhost:3000..." + +$existing = Get-NetTCPConnection -LocalPort 3000 -State Listen -ErrorAction SilentlyContinue +if ($existing) { + $existing | ForEach-Object { + Stop-Process -Id $_.OwningProcess -Force -ErrorAction SilentlyContinue + } +} + +$env:OD_PORT = $daemonPort +Start-Process -FilePath $pnpmCmd -ArgumentList "dev" -WorkingDirectory $webDir + +Start-Sleep -Seconds 6 +$listening = Get-NetTCPConnection -LocalPort 3000 -State Listen -ErrorAction SilentlyContinue +if (-not $listening) { + Write-Warning "Web server not detected on port 3000 yet. Check terminal logs in apps/web." +} else { + Write-Host "Open Design is running:" + Write-Host "- Daemon: $daemonUrl" + Write-Host "- Web: http://localhost:3000" +} diff --git a/stop-open-design.ps1 b/stop-open-design.ps1 new file mode 100644 index 00000000..3a8c4ec3 --- /dev/null +++ b/stop-open-design.ps1 @@ -0,0 +1,19 @@ +$ErrorActionPreference = "SilentlyContinue" + +$repoRoot = "C:\Users\aeden\Documents\Codex\2026-04-29\https-github-com-nexu-io-open" +$pnpmCmd = "C:\Program Files\nodejs\pnpm.cmd" + +Set-Location $repoRoot + +Write-Host "Stopping tools-dev services..." +& $pnpmCmd tools-dev stop | Out-Host + +$existing = Get-NetTCPConnection -LocalPort 3000 -State Listen -ErrorAction SilentlyContinue +if ($existing) { + Write-Host "Stopping web process on port 3000..." + $existing | ForEach-Object { + Stop-Process -Id $_.OwningProcess -Force -ErrorAction SilentlyContinue + } +} + +Write-Host "Open Design stopped."