Commit graph

42 commits

Author SHA1 Message Date
Philip Peterson
5713d94db9
Switch from yarn to pnpm (#305)
Duplicate @types/react TypeScript error (package.json, pnpm-lock.yaml)
What: Added "pnpm": { "overrides": { "@types/react": "18.3.12" } } to the root package.json.

Why: @types/react-dom@18.3.1, @types/hoist-non-react-statics, and @types/styled-jsx all declare @types/react:
"" as a plain dependency. With yarn this was resolved by the resolutions field. With pnpm, resolutions is
ignored — pnpm only reads pnpm.overrides. Without the override, each of those packages resolved "" to the
latest @types/react@19.1.2 and nested it under their own node_modules/. TypeScript then saw two incompatible
definitions for the same React types simultaneously, producing the TS2344: Type 'C' does not satisfy the
constraint 'ComponentType' error in react-redux/es/types.d.ts.

The nested @types/react@19.1.2 directories were also stale artifacts from pre-override installs — pnpm's
--force flag reinstalls packages but does not scrub orphaned nested node_modules subdirectories. They were
removed manually, and the pnpm.overrides prevents them from reappearing on future installs.

Cannot find module 'execa' crash at app startup (app/package.json, app/session.ts)
What: Upgraded shell-env from 3.0.1 to 4.0.3, added execa@5.1.1 as a direct app dependency, removed
os-locale@5.0.0, replaced its one usage with Intl.DateTimeFormat().resolvedOptions().locale, and updated the
shellEnv.sync() call to the new named export shellEnvSync.

Why: This was a layered problem rooted in how electron-builder packages the app when using pnpm.

electron-builder builds the asar by walking pnpm's flat (hoisted) node_modules dependency tree. When two
packages need incompatible major versions of the same dependency, pnpm cannot hoist both — it puts the
minority version in a nested node_modules/ inside the requiring package's directory. electron-builder's pnpm
integration only scans the flat level; it emits "dependency not found on disk" for anything nested, and those
nested packages are silently excluded from the asar.

shell-env@3.0.1 needed execa@^1.0.0. The hoisted top-level was execa@4.1.0. So pnpm nested execa@1.0.0 under
node_modules/shell-env/node_modules/execa/. electron-builder missed it. At runtime, require('shell-env') →
require('execa') → crash, even on macOS where the shellEnv.sync() call is never actually reached (the import
itself triggers the error).

Upgrading shell-env to 4.0.3 alone would have just shifted the nesting from execa@1 to execa@5 (since 4.0.3
uses ^5.1.1). And os-locale@5.0.0 used ^4.0.0, which would then become the nested one instead. There is no
version of either package where both use the same execa major, so they can't both be hoisted simultaneously.

The fix makes execa@5.1.1 the explicit top-level dependency. shell-env@4.0.3 (needs ^5.1.1) is satisfied
without nesting. os-locale is removed entirely and its one call site replaced with
Intl.DateTimeFormat().resolvedOptions().locale, which returns the same locale string from a V8 built-in — no
execa chain at all.

CI frozen-lockfile failure inside electron-builder install-app-deps (app/.npmrc)
What: Added frozen-lockfile=false to app/.npmrc.

Why: target/ is the electron-builder app directory and is fully gitignored. That means target/pnpm-lock.yaml
is never committed. In CI, pnpm automatically enables frozen-lockfile=true when it detects CI=true in the
environment — this applies to every pnpm invocation in the process tree, including child processes.

The postinstall sequence is: webpack copies app/ to target/ → electron-builder install-app-deps runs pnpm
install inside target/. Because app/.npmrc contains ignore-workspace=true, pnpm treats target/ as a standalone
project rather than part of the workspace, and looks for a target/-local lockfile. On a fresh CI checkout
there is none. With frozen-lockfile=true inherited from the CI environment, pnpm refuses to generate one and
exits with ERR_PNPM_OUTDATED_LOCKFILE.

Locally this was invisible because target/pnpm-lock.yaml accumulated from previous runs and was simply reused.
Adding frozen-lockfile=false to app/.npmrc (which webpack copies to target/.npmrc) overrides the CI
environment default specifically for the target/ context, allowing pnpm to generate a fresh lockfile on each
CI run.

app/session.ts locale — removal of os-locale
Already covered under point 2, but worth noting separately: osLocale.sync() was the only call site.
Intl.DateTimeFormat().resolvedOptions().locale is a direct replacement — it returns the OS locale (e.g. en-US)
in the same format, available in all modern Node/Electron versions with no external dependencies. The
.replace(/-/, '_') transforms it to POSIX LANG format (en_US) exactly as before.
2026-05-28 16:13:19 -07:00
Philip Peterson
90941470fc
Upgrade eslint (#291) 2026-05-06 13:48:06 -07:00
Philip Peterson
d057ccc6e9
Fix Windows issues, upgrade dependencies (#253)
* Debug parallels

* Try fix cwd issue

* Try fix parallels issue

* Upgrade Node.js to 22.11.0 to fix Parallels build crash

libuv 1.46.0 (Node 20) calls uv_fatal_error when AssignProcessToJobObject
fails with ERROR_INVALID_PARAMETER inside Parallels, aborting the node-gyp
process with STATUS_BREAKPOINT (exit 2147483651). libuv 1.48.0 (Node 22)
handles this gracefully. Also resolves the stale Node 18 TODO in the ARM
Linux action.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Delete ava for simplicity

* Fix typings

* Remove dangling references

* Try to cleanup properly

* Allow parallels to skip gpu

* Update yarn.lock

* Try to disable gpu

* Fix ts error

* Fix flag

* Launch dev tools

* Open DevTools before loadURL so it captures renderer errors on blank window

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Add verbose diagnostic logging to trace blank window / plugin crash

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Fix icons

* Fix icons again

* Add session creation logging to trace blank window after PTY rebuild

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Various versioning fixes

* Update gitignore

* Bump version correctly

* Fixes

* Remove msvs version lock

* Fix lint errors

* Fix lint errors

* Rebuild react icons

* Fixes

* Fixes

* Restore ava, formatting

* Upgrade node

* Fix yarn lockfile

* Fix ava reference

* Fixes

* Try to fix proxyquire

* Pre-build app TS declarations before unit tests

@ava/typescript calls `tsc --incremental` which doesn't build project
references, so dist/tmp/appdts/*.d.ts didn't exist when the root
tsconfig tried to use them, causing TS6305 errors. Running
`tsc -b app/tsconfig.json` first generates those declarations.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Make tests pass

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-03 04:52:41 -07:00
Philip Peterson
5aed80d42a
Fix CI build (#98) 2025-04-13 11:11:20 -07:00
Cornelius Roemer
d08bc77cd8
wait for longer to see if that helps get the image 2024-11-23 00:34:29 -09:00
Philip Peterson
cfee97ce76
Tweak ava config (#77) 2024-11-22 23:07:22 -09:00
Labhansh Agrawal
392fee843e fix lint 2024-03-20 18:30:25 +05:30
Labhansh Agrawal
36ff6e9b95 sort imports 2023-07-26 00:16:14 +05:30
Labhansh Agrawal
ab3d4b7e8f fix lint errors 2023-07-10 19:50:08 +05:30
Labhansh Agrawal
928209b914 eslint: consistent type imports 2023-06-26 16:02:13 +05:30
Labhansh Agrawal
0d992f9a96 update node-abi 2023-05-17 11:45:13 +05:30
Labhansh Agrawal
bc37efdc23 Revert "Use desktopCapturer instead of capturePage for e2e"
This reverts commit a0126c4f44.
2022-02-02 11:24:50 +05:30
Labhansh Agrawal
a0126c4f44 Use desktopCapturer instead of capturePage for e2e
screenshot of whole window instead of just the page body
2021-11-23 12:12:29 +05:30
Labhansh Agrawal
59c18a9eb1 replace spectron with playwright for e2e testing 2021-10-13 14:15:33 +05:30
Labhansh Agrawal
e266dd00f2 Fix @typescript-eslint/no-unsafe-return errors 2021-04-07 21:50:32 +05:30
Labhansh Agrawal
c347ce8483 Fix @typescript-eslint/no-unsafe-call errors 2021-04-07 21:50:32 +05:30
Labhansh Agrawal
b9aa271bfc Fix @typescript-eslint/await-thenable errors 2021-04-07 21:50:32 +05:30
Labhansh Agrawal
e6eed0d4bb spectron testing on github actions
added screenshot capture after tests
2021-01-17 02:31:45 +01:00
Labhansh Agrawal
0d210abdd1 re-enable spectron 2021-01-17 02:31:45 +01:00
Labhansh Agrawal
b29d10cb9d disable spectron 2020-09-18 00:03:38 +02:00
Benjamin Staneck
5692d32f2a
Update eslint and a few ZEIT references to Vercel 2020-07-13 15:05:34 +02:00
Labhansh Agrawal
41b1ac1852 fix prettier errors 2020-03-25 17:12:51 +01:00
Labhansh Agrawal
09980caa67 setup ava for ts, port test/ to ts 2019-12-15 22:27:48 +01:00
Andrew Hutchings
6923e5bbb3 CLI : Fix package existence check for scoped packages (#3044)
Fixes #2999
2018-05-23 23:32:38 +02:00
Steven
24b83615d4 Ensuring that the restored window position is valid (#2459)
Fixing #1869
2018-03-02 22:11:33 +01:00
Ameya Advankar
76beaa32f5 Fix AVA tests and made them mandatory. #2705
Removed obsolete test cases and included unit tests a mandatory step while build and push.

Fixed #2703
2018-02-24 22:59:50 +01:00
CHaBou
d3cd9aee00
Merge branch 'master' into canary 2017-09-20 01:39:55 +02:00
Wilson Tayar
4c71c99325 Normalize keymap internals (#2227)
Fix #2195: normalizing keybindings using localeCompare to include non english keyboards as well
2017-09-20 01:36:06 +02:00
CHaBou
f8c19b0ef2
Merge branch 'master' into v2 2017-09-17 23:08:33 +02:00
CHaBou
e0d793eeeb Revert "Normalize keymap internals" (#2225)
This reverts commit 751c06e437.
2017-09-17 21:53:37 +01:00
CHaBou
7733067deb
Merge branch 'master' into v2 2017-09-17 10:48:16 +02:00
Wilson Tayar
751c06e437 Normalize keymap internals (#2210)
Fix #2195
2017-09-17 10:43:58 +02:00
CHaBou
1155bb54b1
Add prettier and resolve all lint errors 2017-09-10 16:04:13 +02:00
Jaga Santagostino
67d6963296 Unit tests for to-electron-background-color (#1409)
* add initial unit tests for to-electron-background-color

* extract isHexFile to test/testUtils
2017-02-16 15:44:44 -03:00
Matheus Fernandes
0585607da4 Fix/pty.js build (#1001)
* Upgrade `electron-builder` to its latest version and pin it

* Fix linux executable path – see electron-userland/electron-builder#877

* [Windows] Build `squirrel` executable instead of `nsis`
2016-11-16 10:01:02 -02:00
Matheus Fernandes
9c90e19760 Add Windows support and first-class Linux support (#946)
* `child_pty` => `pty.js`

* Create a frameless window on Windows and Linux

* Add a brand new UI for Linux and Windows 💅

* [Windows] Fix plugin installation

* [Windows] Fix the `build` script

* [Windows] Add a bigger `icon.ico`

* [Mac] Add `WebKitAppRegion: drag` when running on macOS

* Fix code style 🤔

* Add `appveyor.yml`

* Fix code style (again)

* [Windows] Fix AppVeyor's `install` script

* [Windows] Try a new AppVeyor config

* [Windows] Set the binary path so Spectron can run the tests

* [Windows] Try to build on x64

* Try again to build on x64

* Try one more time 😩

* Throw an error to indicate that `pty.js` was built incorrectly

* [Win/Linux] Add `display: hidden` to <Tabs /> if tabs.length === 1

* [Win/Linux] Reorganize SVGs – via @CodeTheory

* [Win/Linux] Fix the hamburger menu height

* Make the SVGs look better with `shape-rendering: crispEdges;`

* [Win/Linux] Add config options for the window controls and the 🍔 menu

* Add `electron-squirrel-startup` dependency

* [Win] Handle Squirrel commands

* [Win/Linux] Fix default color for the 🍔 and window controls – via @CodeTheory

* [Win/Linux] Add some padding - via @CodeTheory

* [Win/Linux] Add hover states – via @CodeTheory

* [Win] Fix empty window/tab titles

* [Win] Fix opening Preferences (#978)

* [Win] Fix opening Preferences

* Update ui.js

* Update ui.js

* Enhance messages and default editor

* [Win] Add dependency instructions to the README.md [skip ci]

* Fix code style

* [Win/Linux] Check the number of open windows before quitting the app
2016-11-11 15:18:04 -02:00
Guillermo Rauch
673f05844d fix tests 2016-10-06 08:33:07 -07:00
Brandon Bayer
cb40b59183 Fix AVA tests on Linux (#735) 2016-09-30 12:47:07 -03:00
Leo Lamprecht
e5c7d1dd13
Don't check window count 2016-09-22 08:45:42 +02:00
Leo Lamprecht
de3c7d01e9
Use spectron and ava for testing 2016-09-22 08:08:56 +02:00
Matheus Fernandes
1866104d03 [WIP] Use XO instead of Standard (#723)
* Bump `eslint-plugin-react`

* Add `eslint-config-xo-react`

* Add XO

* Remove eslint-related dependencies, add XO config and use XO as the linter

* Code style: Standard => XO ✨

* Use xo property to ignore files

* Fix remaining errors
2016-09-21 16:27:11 +02:00
Matheus Fernandes
f175268912 Add the very first test 🎉 (#549)
* Add syntactic support for tags - #412
* Add the very first test 🎉
* Simplify multiple assertions into one
2016-08-03 16:39:58 -03:00