Skip to content

fix(packaging): spawn Electron's node, relocate whisper, gitignore artifacts, drop unused dep#53

Merged
thisiscsim merged 1 commit into
mainfrom
fix/packaging-blockers
Jul 19, 2026
Merged

fix(packaging): spawn Electron's node, relocate whisper, gitignore artifacts, drop unused dep#53
thisiscsim merged 1 commit into
mainfrom
fix/packaging-blockers

Conversation

@thisiscsim

Copy link
Copy Markdown
Owner

Summary

Audit roadmap Phase 5 (shippability). Three things that work in dev but break a packaged build or dirty the repo:

  • Engine scripts spawned via node from PATH with a repo-relative cwd — a packaged app has no system node, so every Generate/Export/Transcribe would fail with spawn node ENOENT. runScriptArgs now spawns process.execPath with ELECTRON_RUN_AS_NODE=1 (Electron's bundled Node), and generate-llm.mjs's nested spawnSyncs use process.execPath too (they inherit the flag).
  • whisper.cpp + model installed into <repo>/.whisper — read-only in a packaged bundle, and ~140 MB one git add . from being committed. transcribe.mjs now honors APERTURE_WHISPER_DIR (main points it at userData/whisper); .whisper/ is gitignored as the CLI fallback, alongside storybook-static.
  • Removed @remotion/transitions — declared in app/package.json but imported nowhere (verified across app/src, app/scripts, packages/); dropped from the lockfile.

Main-process + engine-script change — restart npm run dev.

Test plan

  • node --check on the changed scripts; typecheck / lint / format / 101 tests / build green
  • @remotion/transitions absent from package-lock.json, no source imports
  • Manual (post-merge, dev restart): Generate/Transcribe still run (spawn via Electron node); whisper installs under userData/whisper

Made with Cursor

…tifacts, drop unused dep

Three things that "work in dev" but break a packaged build or dirty the repo:

- Engine scripts were spawned as `node` from PATH with a repo-relative cwd;
  a packaged app has no system node. runScriptArgs now spawns
  process.execPath with ELECTRON_RUN_AS_NODE=1 (Electron's bundled node),
  and generate-llm.mjs's nested spawns use process.execPath too (they
  inherit the flag).
- whisper.cpp + model installed into <repo>/.whisper — read-only in a
  packaged bundle and one `git add .` from being committed. transcribe.mjs
  now honors APERTURE_WHISPER_DIR (main points it at userData/whisper);
  .whisper/ is gitignored as the CLI fallback, alongside storybook-static.
- Removed @remotion/transitions: declared but imported nowhere.

Co-authored-by: Cursor <cursoragent@cursor.com>
@thisiscsim
thisiscsim merged commit cbf75c8 into main Jul 19, 2026
1 check passed
@thisiscsim
thisiscsim deleted the fix/packaging-blockers branch July 19, 2026 23:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant