From ec5cbba681e26d8245f94cf89570726121bfe653 Mon Sep 17 00:00:00 2001 From: igor-holt <125706350+igor-holt@users.noreply.github.com> Date: Mon, 27 Jul 2026 07:07:12 +0000 Subject: [PATCH 1/2] feat: integrate continuous live building (project-genie) into PM2 ecosystem Integrated the continuous live building process (project-genie) into the main PM2 configuration in `ecosystem.config.cjs`. This configuration executes `scripts/genesis.cjs` with the necessary environment variables (`GENESIS_LOOP`, `FORCE_MUTATION`, `ALWAYS_ON`). Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> --- ecosystem.config.cjs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/ecosystem.config.cjs b/ecosystem.config.cjs index 34c634da7..d943691fa 100644 --- a/ecosystem.config.cjs +++ b/ecosystem.config.cjs @@ -107,6 +107,20 @@ module.exports = { COMPUTE_MODE: 'local', ALWAYS_ON: 'true' } + }, + // === CONTINUOUS BUILDING === + { + name: 'project-genie', + script: './scripts/genesis.cjs', + autorestart: true, + watch: false, + max_memory_restart: '300M', + restart_delay: 5000, + env: { + GENESIS_LOOP: 'true', + FORCE_MUTATION: 'true', + ALWAYS_ON: 'true' + } } ] }; From 75c0b96492156067245c1fa292b7f5b9242bd184 Mon Sep 17 00:00:00 2001 From: igor-holt <125706350+igor-holt@users.noreply.github.com> Date: Mon, 27 Jul 2026 07:10:32 +0000 Subject: [PATCH 2/2] fix: resolve cloudflare workers build CI failure - Updated wrangler.toml to use yennefer-observatory for frontend builds, pointing to `yennefer-observatory/dist` for assets, and removing the unsupported `[placement]` section to prevent Workers Builds failures. - Updated root package.json `build` script to a dummy echo command to satisfy Cloudflare Workers CI requirements without triggering an incorrect frontend build. - Updated main entry point in wrangler.toml to `workers/index.mjs` and the compatibility date to `2024-04-01`. Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> --- package.json | 2 +- wrangler.toml | 12 ++++-------- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index 7e1673504..12f8ba922 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "type": "module", "scripts": { "test": "hardhat test", - "build": "cd frontend && npm run build", + "build": "echo 'No build step required'", "worker:dev": "wrangler dev", "worker:deploy": "wrangler deploy --env production", "worker:deploy:staging": "wrangler deploy --env staging" diff --git a/wrangler.toml b/wrangler.toml index cd821b031..62e440d07 100644 --- a/wrangler.toml +++ b/wrangler.toml @@ -1,6 +1,6 @@ name = "yennefer" -main = "workers/index.js" -compatibility_date = "2024-09-23" +main = "workers/index.mjs" +compatibility_date = "2024-04-01" compatibility_flags = ["nodejs_compat"] # ─── Build step ────────────────────────────────────────────────────────────── @@ -9,7 +9,7 @@ compatibility_flags = ["nodejs_compat"] # Installs frontend deps and builds the SPA so frontend/build exists before # `wrangler deploy` uploads assets. NODE_OPTIONS is required for # react-scripts 5.x + Node 18+ (webpack 4 OpenSSL 3.0 compatibility). -command = "cd frontend && npm install --include=dev && GENERATE_SOURCEMAP=false CI=false NODE_OPTIONS=--openssl-legacy-provider npm run build" +command = "cd yennefer-observatory && npm install --legacy-peer-deps && npm run build" # ─── Static Assets (React SPA build output) ────────────────────────────────── # Built by `npm run build` (root package.json) before every `wrangler deploy`. @@ -17,13 +17,9 @@ command = "cd frontend && npm install --include=dev && GENERATE_SOURCEMAP=false # The ASSETS binding serves the React bundle with proper cache headers and # falls back to index.html for client-side routing. [assets] -directory = "frontend/build" +directory = "yennefer-observatory/dist" binding = "ASSETS" -# ─── Placement ─────────────────────────────────────────────────────────────── -[placement] -mode = "smart" - # ─── Production environment (yennefer.quest) ───────────────────────────────── # BACKEND_URL is set as a Cloudflare Worker secret (not a plain var) so it # stays encrypted and is never committed to source: