Skip to content
Merged
Show file tree
Hide file tree
Changes from 21 commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
d90c517
build: add electron-vite devDependency at workspace root
CoderCoco May 31, 2026
9019311
feat(desktop-main): add Electron app entry with BrowserWindow and IPC…
CoderCoco Jun 1, 2026
56c44ca
test(desktop-main): add electron-entry unit tests for BrowserWindow a…
CoderCoco Jun 1, 2026
51b108d
build: add electron.vite.config.ts with main/preload/renderer pipelines
CoderCoco Jun 1, 2026
7f6d494
build: wire desktop:dev and desktop:build scripts; drop Epic A stubs
CoderCoco Jun 1, 2026
16536dc
docs: document desktop:dev and desktop:build in CLAUDE.md
CoderCoco Jun 1, 2026
fedacee
fix(desktop-main): Glenn — surface bootstrap() rejection instead of s…
CoderCoco Jun 1, 2026
211b8f8
fix(desktop-main): Haise — correct test descriptions to reflect modul…
CoderCoco Jun 1, 2026
e02f782
fix: regenerate package-lock.json with Node 24/npm 11 to include cros…
CoderCoco Jun 1, 2026
49fdc3e
fix: tighten engines.node to match electron-vite@5 requirement
CoderCoco Jun 1, 2026
1648270
ci: cache Playwright browsers in e2e and integration workflows
CoderCoco Jun 1, 2026
917b645
chore: drop Node 20 support — require >=22.12.0
CoderCoco Jun 1, 2026
2c8fc40
chore: remove commented-out Claude Actions workflows
CoderCoco Jun 1, 2026
27b038e
ci: split Playwright install into deps + binary steps with timeouts
CoderCoco Jun 1, 2026
a3698ca
ci: use system Chrome instead of downloading Chromium in CI
CoderCoco Jun 1, 2026
ba3b1d9
ci: add timeout-minutes: 5 to install-deps step
CoderCoco Jun 1, 2026
93314d4
ci: install Playwright ffmpeg for video capture on test failure
CoderCoco Jun 1, 2026
b132b30
ci: disable video recording in CI; remove ffmpeg install step
CoderCoco Jun 1, 2026
81f6126
fix(desktop-main): lazy-load electron-store to avoid requiring electr…
CoderCoco Jun 1, 2026
18b774d
fix(build): address Copilot review — correct electron-vite script pat…
CoderCoco Jun 1, 2026
850bdb6
fix(desktop-main): use module-level import type for electron-store cast
CoderCoco Jun 3, 2026
d2d8ca3
fix(desktop-main): handle loadURL/loadFile rejection in createWindow
CoderCoco Jun 3, 2026
6d72d3b
fix(build): use dynamic import for electron-store; anchor config path…
CoderCoco Jun 3, 2026
0414342
docs(CLAUDE.md): clarify that desktop:build produces the Electron bundle
CoderCoco Jun 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 0 additions & 44 deletions .github/workflows/claude-code-review.yml

This file was deleted.

50 changes: 0 additions & 50 deletions .github/workflows/claude.yml

This file was deleted.

7 changes: 5 additions & 2 deletions .github/workflows/e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ permissions:
jobs:
e2e:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/checkout@v5

Expand All @@ -22,9 +23,11 @@ jobs:

- run: npm ci

- name: Install Playwright browsers
run: npx playwright install chromium --with-deps
- name: Install Playwright system dependencies
run: DEBIAN_FRONTEND=noninteractive npx playwright install-deps chromium
working-directory: app/packages/web
timeout-minutes: 5


- run: npm run app:test:e2e

Expand Down
7 changes: 5 additions & 2 deletions .github/workflows/integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ permissions:
jobs:
integration:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/checkout@v5

Expand All @@ -22,9 +23,11 @@ jobs:

- run: npm ci

- name: Install Playwright browsers
run: npx playwright install chromium --with-deps
- name: Install Playwright system dependencies
run: DEBIAN_FRONTEND=noninteractive npx playwright install-deps chromium
working-directory: app/packages/web
timeout-minutes: 5


- run: npm run app:test:integration

Expand Down
14 changes: 10 additions & 4 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,17 @@ The repo uses a single **npm-workspaces** tree rooted at the repo root. Workspac
# Install all workspaces in one go (run from repo root)
npm install

# Run the dev servers (Nest on 3001, Vite on 5173 with /api proxy)
npm run app:dev
# Launch the Electron desktop app in dev mode (HMR on renderer saves, auto-restarts main+preload)
npm run app:dev # delegates to desktop:dev — equivalent to: npm run desktop:dev

# Production build (shared → server → web)
npm run app:build && npm run app:start # http://localhost:3001
# Production build then launch
npm run app:build # compiles shared → desktop-main → web TypeScript
npm run app:start # starts the built Electron app
Comment thread
CoderCoco marked this conversation as resolved.
Outdated

# Electron desktop app — electron-vite drives three pipelines (main/preload/renderer)
# configured in electron.vite.config.ts; outputs land in out/main, out/preload, out/renderer
npm run desktop:dev # electron-vite dev: HMR on renderer saves, auto-restarts main+preload
npm run desktop:build # electron-vite build: produces out/main, out/preload, out/renderer

# Build all Lambda bundles (required before `terraform apply`)
npm run app:build:lambdas
Expand Down
1 change: 1 addition & 0 deletions app/eslint.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ export default tseslint.config(
{
ignores: [
'**/dist/**',
'**/out/**',
'**/node_modules/**',
'**/*.d.ts',
'packages/web/vite.config.ts',
Expand Down
4 changes: 2 additions & 2 deletions app/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@
"type": "module",
"scripts": {
"predev": "node scripts/embed-tfstate.mjs",
"dev": "echo 'app:dev requires the Electron launcher from Epic A (#136). Run npm run dev -w @hyveon/web for the web-only dev server.' && exit 1",
"dev": "electron-vite dev --config ../electron.vite.config.ts",
"prebuild": "node scripts/embed-tfstate.mjs",
"build": "npm run build -w @hyveon/shared && npm run build -w @hyveon/desktop-main && npm run build -w @hyveon/web",
"build:lambdas": "npm run build -w @hyveon/shared && npm run build -w @hyveon/lambda-interactions -w @hyveon/lambda-followup -w @hyveon/lambda-update-dns -w @hyveon/lambda-watchdog -w @hyveon/lambda-efs-seeder",
"start": "echo 'app:start requires the Electron launcher from Epic A (#136).' && exit 1",
"start": "electron ../out/main/index.js",
"test": "vitest run",
"test:coverage": "vitest run --coverage",
"test:watch": "vitest",
Expand Down
4 changes: 2 additions & 2 deletions app/packages/desktop-main/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
"type": "module",
"main": "./dist/main.js",
"scripts": {
"dev": "echo 'desktop-main now runs as an Electron IPC microservice. The Electron launcher is wired in Epic A (#136).' && exit 1",
"dev": "electron-vite dev --config ../../../electron.vite.config.ts",
"build": "tsc -b",
"start": "echo 'desktop-main now runs as an Electron IPC microservice. The Electron launcher is wired in Epic A (#136).' && exit 1"
"start": "electron ../../../out/main/index.js"
},
"dependencies": {
"@aws-sdk/client-cloudwatch-logs": "^3.600.0",
Expand Down
Loading
Loading