Commit Graph
327 Commits
Author SHA1 Message Date
github-actions[bot] 8f97e0009e release: v1.3.22-rc.6 2026-04-27 23:54:23 +00:00
github-actions[bot] 821c9639fd release: 1.3.22-rc.5 [rc-slot:2026-04-27-15] 2026-04-27 22:14:03 +00:00
github-actions[bot] d8beb057c9 release: v1.3.22-rc.4 2026-04-27 21:55:00 +00:00
github-actions[bot] 4d9816283a release: v1.3.22-rc.3 2026-04-27 21:05:44 +00:00
github-actions[bot] 6b7d7d7cc0 release: v1.3.1-rc.4 2026-04-27 20:02:27 +00:00
github-actions[bot] 8cce94eb5a release: v1.3.1-rc.3 2026-04-27 18:32:06 +00:00
github-actions[bot] a06b85078f release: v1.3.22-rc.2 2026-04-27 17:04:54 +00:00
github-actions[bot] 830b78e0a7 release: 1.3.22-rc.1 [rc-slot:2026-04-27-03] 2026-04-27 10:35:49 +00:00
github-actions[bot] 4af21e1793 release: v1.3.22-rc.0 2026-04-27 07:49:33 +00:00
github-actions[bot] 6c1b6f6f3c release: v1.3.21-rc.6 2026-04-27 06:24:28 +00:00
github-actions[bot] 07fb8ccc7c release: v1.3.21-rc.5 2026-04-27 05:45:36 +00:00
cfc444242c fix(win32): resolve EPERM on userData writes, batch-file spawn failures, and native dep rebuild (#1152)
* chore: update .gitignore to include stackdump and .serena, enhance pre-commit script

* fix(win32): resolve EPERM on userData writes and batch-file spawn failures

Three Windows-specific issues prevented Orca from running correctly on
machines where Chromium resets the userData DACL during startup:

1. **EPERM on userData writes** — Chromium's BrowserWindow constructor calls
   SetNamedSecurityInfo on the userData folder with a Protected DACL.  When
   propagated to child directories the ACEs carry the Inherit-Only flag,
   meaning they apply to children-of-children but NOT to the directories
   themselves.  Any file write inside codex-runtime-home, agent-hooks, or
   similar subdirectories fails with EPERM.

   Fix: grant an explicit Full Control ACE (OI)(CI)(F) on userData and all
   existing children before BrowserWindow is created (icacls /T /C).
   Explicit ACEs survive future DACL propagation from the parent.  Per-write
   EPERM retries in fs-utils and installer-utils serve as the backstop for
   directories created after startup.

2. **Batch-file spawn failures** — resolveCodexCommand() can return a .cmd
   or .bat path (e.g. codex.cmd installed via npm).  Node's spawn() cannot
   execute batch scripts directly without shell:true, but shell:true with an
   args array triggers DEP0190 because args are concatenated rather than
   escaped.  Both service.ts and codex-fetcher.ts were affected.

   Fix: detect .cmd/.bat paths and route through cmd.exe /c explicitly,
   which is equivalent to what shell:true does internally but avoids the
   deprecation warning and arg-escaping hazard.

3. **Native dep rebuild failure** — electron-builder install-app-deps does
   not expose the ignoreModules option.  On Windows dev machines without the
   full VC++ / Python toolchain, cpu-features (an optional dep of ssh2) fails
   to build with node-gyp, aborting the entire postinstall step.

   Fix: replace electron-builder install-app-deps with a thin wrapper script
   (scripts/rebuild-native-deps.mjs) that calls @electron/rebuild's JS API
   directly with ignoreModules: ['cpu-features'] on Windows.  ssh2 detects
   the missing native module and falls back to pure-JS automatically.

Refactoring: extract shared win32-utils.ts with getIcaclsExePath(),
getCmdExePath(), isWindowsBatchScript(), isPermissionError(), grantDirAcl(),
and getSpawnArgsForWindows() to eliminate five instances of duplicated
SystemRoot path construction and two near-identical EPERM retry blocks.
Reduce startup icacls calls from three sequential blocking /T invocations
to one, removing up to 20 s of potential startup delay.

* fix(win32): address review feedback on ACL and spawn helpers

- Fall back to SID via `whoami /user` when `USERNAME` is unset so
  `grantDirAcl` works under services, CI, and hardened envs instead of
  silently no-op'ing.
- Use a 60s timeout for recursive `icacls /T` walks; the 10s cap could
  starve on large userData trees and silently fail the startup grant.
- Pass `windowsHide: true` to `icacls` and the cmd.exe-routed Codex
  spawns so no console window flashes in the packaged GUI app.
- Add `/d` to `cmd.exe /c` invocations to disable AutoRun registry
  commands — safer default for background spawns.
- Drop unused `createRequire`/`require` from rebuild-native-deps.mjs.
- Add `@electron/rebuild` as an explicit devDependency; relying on the
  electron-builder transitive was brittle under pnpm.
- Fix two misleading "Re-enable inheritance" comments that describe
  behavior opposite to what the code actually does (explicit ACL grant).
- Add unit tests for `isWindowsBatchScript`, `getSpawnArgsForWindows`,
  and `isPermissionError` to lock in Windows batch detection + cmd.exe
  routing.

Co-authored-by: Orca <help@stably.ai>

* fix(win32): unify PTY spawn through /d and document cmd.exe safety

- fetchViaPty now uses getCmdExePath() and /d /c, matching the rest of
  the codebase instead of hand-rolling 'cmd.exe' + ['/c', ...].
- getSpawnArgsForWindows gains a SAFETY note: when the .cmd/.bat branch
  is taken, cmd.exe re-parses the combined command line, so callers
  must only pass trusted/literal args.

Co-authored-by: Orca <help@stably.ai>

---------

Co-authored-by: Neil <4138956+nwparker@users.noreply.github.com>
Co-authored-by: Orca <help@stably.ai>
2026-04-26 22:29:58 -07:00
github-actions[bot] 3b82e5a3cb release: v1.3.21 2026-04-27 05:07:47 +00:00
github-actions[bot] 09e9c2f8eb release: v1.3.21-rc.4 2026-04-27 04:47:05 +00:00
github-actions[bot] 39d8a013f3 release: v1.3.21-rc.3 2026-04-27 03:52:04 +00:00
github-actions[bot] ffb6688fd2 release: 1.3.21-rc.1 [rc-slot:2026-04-26-15] 2026-04-26 22:07:45 +00:00
github-actions[bot] a4da565430 release: v1.3.21-rc.0 2026-04-26 21:16:40 +00:00
github-actions[bot] 738a08b712 release: v1.3.20 2026-04-26 18:19:03 +00:00
github-actions[bot] 49d64294a3 release: 1.3.19-rc.13 [rc-slot:2026-04-26-03] 2026-04-26 10:13:11 +00:00
github-actions[bot] eb0c952830 release: v1.3.19-rc.12 2026-04-26 07:49:02 +00:00
github-actions[bot] 3a0149982f release: v1.3.19-rc.11 2026-04-26 06:23:26 +00:00
github-actions[bot] a37fb32efb release: v1.3.19-rc.10 2026-04-26 05:30:10 +00:00
NeilandOrca d4399b4c92 feat(terminal): add programming-ligatures support (#1118)
Co-authored-by: Orca <help@stably.ai>
2026-04-25 22:26:33 -07:00
Yax PatelandJinwoo-H 2551758c88 feat/markdown preview (#849)
Co-authored-by: Jinwoo-H <jinwoo0825@gmail.com>
2026-04-25 19:27:47 -07:00
github-actions[bot] b65a3d7cb8 release: v1.3.19-rc.8 2026-04-26 02:19:36 +00:00
github-actions[bot] 6ba751c85a release: v1.3.19-rc.6 2026-04-25 22:29:01 +00:00
github-actions[bot] 83afb185cf release: v1.3.19-rc.5 2026-04-25 22:24:55 +00:00
github-actions[bot] 1d6d68e92f release: 1.3.19-rc.4 [rc-slot:2026-04-25-15] 2026-04-25 22:06:37 +00:00
github-actions[bot] 5301c3670b release: v1.3.19-rc.3 2026-04-25 21:36:08 +00:00
github-actions[bot] a04be9766d release: 1.3.19-rc.2 [rc-slot:2026-04-25-03] 2026-04-25 10:12:43 +00:00
github-actions[bot] 68970c3e71 release: v1.3.19-rc.1 2026-04-25 07:09:47 +00:00
github-actions[bot] 7ea0e8d0d1 release: v1.3.18 2026-04-25 03:55:23 +00:00
github-actions[bot] 005963192c release: v1.3.17 2026-04-25 00:19:29 +00:00
github-actions[bot] ed49380b6d release: v1.3.17-rc.5 2026-04-24 23:56:25 +00:00
github-actions[bot] 0a45c5433b release: 1.3.17-rc.4 [rc-slot:2026-04-24-15] 2026-04-24 22:11:56 +00:00
github-actions[bot] 749ba42cb2 release: v1.3.17-rc.3 2026-04-24 21:15:50 +00:00
github-actions[bot] bcce74e110 release: v1.3.17-rc.2 2026-04-24 20:56:26 +00:00
github-actions[bot] 1772087db5 release: 1.3.17-rc.1 [rc-slot:2026-04-24-03] 2026-04-24 10:27:25 +00:00
github-actions[bot] 57079da339 release: 1.3.17-rc.0 [rc-slot:2026-04-23-15] 2026-04-23 22:11:32 +00:00
Jinwoo Hong e1270486cd feat: add Linear integration (#1007) 2026-04-23 14:54:32 -07:00
github-actions[bot] 6d2ff605ff release: v1.3.16 2026-04-23 19:44:50 +00:00
github-actions[bot] d52e4eae96 release: v1.3.15 2026-04-23 18:14:28 +00:00
github-actions[bot] 243f68d6d8 release: v1.3.14 2026-04-23 16:33:30 +00:00
github-actions[bot] b2bca065de release: 1.3.14-rc.1 [rc-slot:2026-04-23-03] 2026-04-23 10:27:09 +00:00
github-actions[bot] 29743b8f3b release: v1.3.14-rc.0 2026-04-23 06:21:56 +00:00
Neil c4a6701d9f chore(release): move release cutting to a Cut Release workflow (#972)
Replaces the local `pnpm release:{rc,patch,minor,major}` scripts with a
single manually-dispatched GitHub Actions workflow (`release-cut.yml`)
that takes `kind` (rc|stable), an optional `ref`, and an optional explicit
`version`.

Why: cutting releases locally was too easy to get wrong — `npm version
prerelease` behaves differently depending on whether the current version
is already an rc, there was no guard against tagging a dirty tree or an
off-main branch, and the "bad commit just landed, release the previous
one" case had no first-class answer. The new workflow:

- Resolves the next version automatically from GitHub Releases (or takes
  an explicit override).
- Refuses to cut a stable release whose version isn't strictly greater
  than the latest published stable. This is the only invariant
  electron-updater needs within the `latest` channel.
- Only fast-forwards `main` with the version-bump commit when the caller
  released the tip of `main`. Off-main releases publish only the tag, so
  main is never polluted by a one-off RC against a feature branch.

CONTRIBUTING.md now documents the new flow with the common scenarios
(normal release, bad-commit-revert-to-previous-SHA, one-off RC, explicit
minor/major). The scheduled RC cron in release-rc.yml is untouched.
2026-04-22 23:20:04 -07:00
Neil ae0f52109f 1.3.13 2026-04-22 18:33:50 -07:00
Neil 487f300404 1.3.12 2026-04-22 18:32:16 -07:00
Neil 8b8e4505a2 1.3.12-rc.4 2026-04-22 17:52:00 -07:00
Neil c07db38dfe fix terminal resize flicker during pane drag (#962) 2026-04-22 17:50:14 -07:00