Skip to content

fix: dispose MicrotasksRunner when startup fails early (44-x-y) - #54794

Merged
ckerr merged 1 commit into
44-x-yfrom
trop/44-x-y-bp-fix-dispose-microtasksrunner-when-startup-fails-early-45-x-y--1791512834416
Oct 9, 2026
Merged

ckerr merged 1 commit into
44-x-yfrom
trop/44-x-y-bp-fix-dispose-microtasksrunner-when-startup-fails-early-45-x-y--1791512834416

Conversation

@trop

@trop trop Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

Backport of #54163

See that PR for details.

Notes: Fixed a crash when starting without an available display server on Linux.

When toolkit initialization fails before the main loop runs, PostMainMessageLoopRun() is skipped. Destroy the microtasks runner while the isolate is still alive so registered shutdown observers are removed before isolate disposal.

Focused manual backport of the early-shutdown fix and no-display regression from #54163. Keep the Electron 45 Gin disposal hooks; omit the unrelated cppgc, WebContents, Debugger, Session, serialization, and Bluetooth changes. Adapt the spec filename and wait for close so stderr is fully collected.

Refs: #54530

(partially cherry picked from commit 08c729b)

Co-authored-by: Copilot <[email protected]>

Co-authored-by: Samuel Attard <[email protected]>
@trop
trop Bot requested a review from ckerr October 9, 2026 02:27
@trop trop Bot added 44-x-y backport This is a backport PR semver/patch backwards-compatible bug fixes labels Oct 9, 2026
@ckerr
ckerr merged commit 5572fe0 into 44-x-y Oct 9, 2026
86 checks passed
@ckerr
ckerr deleted the trop/44-x-y-bp-fix-dispose-microtasksrunner-when-startup-fails-early-45-x-y--1791512834416 branch October 9, 2026 03:33
@release-clerk

release-clerk Bot commented Oct 9, 2026

Copy link
Copy Markdown

Release Notes Persisted

Fixed a crash when starting without an available display server on Linux.

@jkleinsc jkleinsc mentioned this pull request Oct 12, 2026
3 tasks done
renovate Bot added a commit to cigaleapp/cigale that referenced this pull request Oct 25, 2026
##### [v44.9.0](https://github.com/electron/electron/releases/tag/v44.9.0)

### Release Notes for v44.9.0

#### Features

- Added app shims on macOS to show windows under another app's Dock icon. [#55073](electron/electron#55073) <sup>(Also in [45](https://github.com/electron/electron/pull/55072))</sup>

#### Fixes

- Fixed link-opened windows not using the opener's session and `webPreferences`. [#55048](electron/electron#55048) <sup>(Also in [42](electron/electron#55050), [43](electron/electron#55049), [45](https://github.com/electron/electron/pull/55051))</sup>
- Fixed `setCertificateVerifyProc` occasionally not being applied to a request issued concurrently with the first request to a host. [#55046](electron/electron#55046) <sup>(Also in [42](electron/electron#55054), [43](electron/electron#55047), [45](https://github.com/electron/electron/pull/55045))</sup>
##### [v44.8.0](https://github.com/electron/electron/releases/tag/v44.8.0)

### Release Notes for v44.8.0

#### Features

- Added support for `Notification` action buttons on Linux. [#54890](electron/electron#54890) <sup>(Also in [45](https://github.com/electron/electron/pull/54889))</sup>

#### Fixes

- Fixed mouse cursor missing over native dialogs in certain scenarios on Windows. [#54987](electron/electron#54987)
- Fixed `net.fetch` and `session.fetch` failing permanently with `net::ERR_FAILED` after the Network Service process restarts. [#54909](electron/electron#54909) <sup>(Also in [42](electron/electron#54925), [43](electron/electron#54908), [45](https://github.com/electron/electron/pull/54910))</sup>
- Fixed `utilityProcess` dropping messages posted with `process.parentPort.postMessage()` right before the process exits. [#54960](electron/electron#54960) <sup>(Also in [42](electron/electron#55000), [43](electron/electron#54962), [45](https://github.com/electron/electron/pull/54956))</sup>
- Fixed `win.isFullScreen()` being stale in fullscreen events on Windows. [#55009](electron/electron#55009) <sup>(Also in [45](https://github.com/electron/electron/pull/55008))</sup>

#### Other Changes

- Backported fixes from upstream Chromium and V8. [#55034](electron/electron#55034)
- Updated Chromium to 152.0.7977.167. [#54928](electron/electron#54928)
- Updated Node.js to v24.22.0. [#55004](electron/electron#55004)
##### [v44.7.2](https://github.com/electron/electron/releases/tag/v44.7.2)

### Release Notes for v44.7.2

#### Fixes

- Fixed an issue where clicks posted to a background app were dropped on macOS. [#54819](electron/electron#54819) <sup>(Also in [45](https://github.com/electron/electron/pull/54818))</sup>
- Fixed interrupted macOS updates leaving a broken app behind. [#54844](electron/electron#54844) <sup>(Also in [45](https://github.com/electron/electron/pull/54843))</sup>

#### Other Changes

- Backported fixes from upstream ANGLE, Chromium, PDFium and V8. [#54898](electron/electron#54898)

#### Documentation

- Documentation changes: [#54880](electron/electron#54880)
##### [v44.7.1](https://github.com/electron/electron/releases/tag/v44.7.1)

### Release Notes for v44.7.1

#### Fixes

- Fixed a crash when starting without an available display server on Linux. [#54794](electron/electron#54794) <sup>(Also in [45](https://github.com/electron/electron/pull/54781))</sup>
- Fixed a Linux crash creating a window with a menu bar when GTK failed to load. [#54859](electron/electron#54859) <sup>(Also in [45](https://github.com/electron/electron/pull/54846))</sup>
- Fixed a `WebContentsView` that was removed with `removeChildView()` and re-added with `addChildView()` staying hidden behind its sibling views on Linux. [#54798](electron/electron#54798)
- Fixed asar archives in non-ASCII folders failing to load on Linux. [#54849](electron/electron#54849) <sup>(Also in [45](https://github.com/electron/electron/pull/54848))</sup>
- Fixed renderer crashes during garbage collection inside ShadowRealms. [#54865](electron/electron#54865) <sup>(Also in [45](https://github.com/electron/electron/pull/54864))</sup>

#### Other Changes

- Refactored mouse forwarding on Windows to fix `setIgnoreMouseEvents(true, { forward: true })` related issues. [#54802](electron/electron#54802) <sup>(Also in [45](https://github.com/electron/electron/pull/54803))</sup>
- Updated Chromium to 152.0.7977.149. [#54085](electron/electron#54085)
##### [v44.7.0](https://github.com/electron/electron/releases/tag/v44.7.0)

### Release Notes for v44.7.0

#### Features

- The macOS `autoUpdater` now streams update downloads to disk, resumes an interrupted download on the next check instead of starting over, and applies a binary delta when the update feed offers one for the running version. [#54204](electron/electron#54204)

#### Fixes

- Fixed an uncatchable TypeError in `net.fetch` when receiving response headers with non-ASCII characters, and preserved multiple Set-Cookie headers. [#54672](electron/electron#54672)

#### Other Changes

- Backported fixes from upstream ANGLE, Chromium, Dawn, fontconfig, Skia, V8 and WebRTC. [#54666](electron/electron#54666)
- Backported fixes from upstream ANGLE, Chromium, Skia, V8 and WebRTC. [#54657](electron/electron#54657)
##### [v44.6.0](https://github.com/electron/electron/releases/tag/v44.6.0)

### Release Notes for v44.6.0

#### Features

- Added the experimental `protocol.registerSource()` to serve a custom scheme from directories on disk without a JavaScript handler. [#54522](electron/electron#54522) <sup>(Also in [45](https://github.com/electron/electron/pull/54521))</sup>

#### Fixes

- Fixed a crash on launch on macOS when the system refused to register the app for sleep/wake notifications. [#54596](electron/electron#54596)
- Fixed a crash on `navigator.usb.requestDevice()` in in-memory sessions. [#54616](electron/electron#54616) <sup>(Also in [45](https://github.com/electron/electron/pull/54615))</sup>
- Fixed `webview.findInPage()` hanging when the host page also has an iframe. [#54586](electron/electron#54586) <sup>(Also in [43](electron/electron#54584), [45](https://github.com/electron/electron/pull/54585))</sup>
- Updated time zone data to tzdata 2026d, including British Columbia's move to permanent UTC-7. [#54623](electron/electron#54623)

#### Documentation

- Documentation changes: [#54589](electron/electron#54589)
renovate Bot added a commit to cigaleapp/cigale that referenced this pull request Oct 26, 2026
##### [v44.9.0](https://github.com/electron/electron/releases/tag/v44.9.0)

### Release Notes for v44.9.0

#### Features

- Added app shims on macOS to show windows under another app's Dock icon. [#55073](electron/electron#55073) <sup>(Also in [45](https://github.com/electron/electron/pull/55072))</sup>

#### Fixes

- Fixed link-opened windows not using the opener's session and `webPreferences`. [#55048](electron/electron#55048) <sup>(Also in [42](electron/electron#55050), [43](electron/electron#55049), [45](https://github.com/electron/electron/pull/55051))</sup>
- Fixed `setCertificateVerifyProc` occasionally not being applied to a request issued concurrently with the first request to a host. [#55046](electron/electron#55046) <sup>(Also in [42](electron/electron#55054), [43](electron/electron#55047), [45](https://github.com/electron/electron/pull/55045))</sup>
##### [v44.8.0](https://github.com/electron/electron/releases/tag/v44.8.0)

### Release Notes for v44.8.0

#### Features

- Added support for `Notification` action buttons on Linux. [#54890](electron/electron#54890) <sup>(Also in [45](https://github.com/electron/electron/pull/54889))</sup>

#### Fixes

- Fixed mouse cursor missing over native dialogs in certain scenarios on Windows. [#54987](electron/electron#54987)
- Fixed `net.fetch` and `session.fetch` failing permanently with `net::ERR_FAILED` after the Network Service process restarts. [#54909](electron/electron#54909) <sup>(Also in [42](electron/electron#54925), [43](electron/electron#54908), [45](https://github.com/electron/electron/pull/54910))</sup>
- Fixed `utilityProcess` dropping messages posted with `process.parentPort.postMessage()` right before the process exits. [#54960](electron/electron#54960) <sup>(Also in [42](electron/electron#55000), [43](electron/electron#54962), [45](https://github.com/electron/electron/pull/54956))</sup>
- Fixed `win.isFullScreen()` being stale in fullscreen events on Windows. [#55009](electron/electron#55009) <sup>(Also in [45](https://github.com/electron/electron/pull/55008))</sup>

#### Other Changes

- Backported fixes from upstream Chromium and V8. [#55034](electron/electron#55034)
- Updated Chromium to 152.0.7977.167. [#54928](electron/electron#54928)
- Updated Node.js to v24.22.0. [#55004](electron/electron#55004)
##### [v44.7.2](https://github.com/electron/electron/releases/tag/v44.7.2)

### Release Notes for v44.7.2

#### Fixes

- Fixed an issue where clicks posted to a background app were dropped on macOS. [#54819](electron/electron#54819) <sup>(Also in [45](https://github.com/electron/electron/pull/54818))</sup>
- Fixed interrupted macOS updates leaving a broken app behind. [#54844](electron/electron#54844) <sup>(Also in [45](https://github.com/electron/electron/pull/54843))</sup>

#### Other Changes

- Backported fixes from upstream ANGLE, Chromium, PDFium and V8. [#54898](electron/electron#54898)

#### Documentation

- Documentation changes: [#54880](electron/electron#54880)
##### [v44.7.1](https://github.com/electron/electron/releases/tag/v44.7.1)

### Release Notes for v44.7.1

#### Fixes

- Fixed a crash when starting without an available display server on Linux. [#54794](electron/electron#54794) <sup>(Also in [45](https://github.com/electron/electron/pull/54781))</sup>
- Fixed a Linux crash creating a window with a menu bar when GTK failed to load. [#54859](electron/electron#54859) <sup>(Also in [45](https://github.com/electron/electron/pull/54846))</sup>
- Fixed a `WebContentsView` that was removed with `removeChildView()` and re-added with `addChildView()` staying hidden behind its sibling views on Linux. [#54798](electron/electron#54798)
- Fixed asar archives in non-ASCII folders failing to load on Linux. [#54849](electron/electron#54849) <sup>(Also in [45](https://github.com/electron/electron/pull/54848))</sup>
- Fixed renderer crashes during garbage collection inside ShadowRealms. [#54865](electron/electron#54865) <sup>(Also in [45](https://github.com/electron/electron/pull/54864))</sup>

#### Other Changes

- Refactored mouse forwarding on Windows to fix `setIgnoreMouseEvents(true, { forward: true })` related issues. [#54802](electron/electron#54802) <sup>(Also in [45](https://github.com/electron/electron/pull/54803))</sup>
- Updated Chromium to 152.0.7977.149. [#54085](electron/electron#54085)
##### [v44.7.0](https://github.com/electron/electron/releases/tag/v44.7.0)

### Release Notes for v44.7.0

#### Features

- The macOS `autoUpdater` now streams update downloads to disk, resumes an interrupted download on the next check instead of starting over, and applies a binary delta when the update feed offers one for the running version. [#54204](electron/electron#54204)

#### Fixes

- Fixed an uncatchable TypeError in `net.fetch` when receiving response headers with non-ASCII characters, and preserved multiple Set-Cookie headers. [#54672](electron/electron#54672)

#### Other Changes

- Backported fixes from upstream ANGLE, Chromium, Dawn, fontconfig, Skia, V8 and WebRTC. [#54666](electron/electron#54666)
- Backported fixes from upstream ANGLE, Chromium, Skia, V8 and WebRTC. [#54657](electron/electron#54657)
##### [v44.6.0](https://github.com/electron/electron/releases/tag/v44.6.0)

### Release Notes for v44.6.0

#### Features

- Added the experimental `protocol.registerSource()` to serve a custom scheme from directories on disk without a JavaScript handler. [#54522](electron/electron#54522) <sup>(Also in [45](https://github.com/electron/electron/pull/54521))</sup>

#### Fixes

- Fixed a crash on launch on macOS when the system refused to register the app for sleep/wake notifications. [#54596](electron/electron#54596)
- Fixed a crash on `navigator.usb.requestDevice()` in in-memory sessions. [#54616](electron/electron#54616) <sup>(Also in [45](https://github.com/electron/electron/pull/54615))</sup>
- Fixed `webview.findInPage()` hanging when the host page also has an iframe. [#54586](electron/electron#54586) <sup>(Also in [43](electron/electron#54584), [45](https://github.com/electron/electron/pull/54585))</sup>
- Updated time zone data to tzdata 2026d, including British Columbia's move to permanent UTC-7. [#54623](electron/electron#54623)

#### Documentation

- Documentation changes: [#54589](electron/electron#54589)
renovate Bot added a commit to cigaleapp/cigale that referenced this pull request Nov 2, 2026
##### [v44.9.3](https://github.com/electron/electron/releases/tag/v44.9.3)

### Release Notes for v44.9.3

#### Other Changes

- Backported fixes from upstream ANGLE, Chromium, PDFium, Skia and V8. [#55149](electron/electron#55149)
##### [v44.9.2](https://github.com/electron/electron/releases/tag/v44.9.2)

### Release Notes for v44.9.2
##### [v44.9.1](https://github.com/electron/electron/releases/tag/v44.9.1)

### Release Notes for v44.9.1

> \[!NOTE]
> This release contains the fix for <GHSA-jr5w-w6x2-84p9>, the mitigation for compromised eMudhra intermediate certificates
##### [v44.9.0](https://github.com/electron/electron/releases/tag/v44.9.0)

### Release Notes for v44.9.0

#### Features

- Added app shims on macOS to show windows under another app's Dock icon. [#55073](electron/electron#55073) <sup>(Also in [45](https://github.com/electron/electron/pull/55072))</sup>

#### Fixes

- Fixed link-opened windows not using the opener's session and `webPreferences`. [#55048](electron/electron#55048) <sup>(Also in [42](electron/electron#55050), [43](electron/electron#55049), [45](https://github.com/electron/electron/pull/55051))</sup>
- Fixed `setCertificateVerifyProc` occasionally not being applied to a request issued concurrently with the first request to a host. [#55046](electron/electron#55046) <sup>(Also in [42](electron/electron#55054), [43](electron/electron#55047), [45](https://github.com/electron/electron/pull/55045))</sup>
##### [v44.8.0](https://github.com/electron/electron/releases/tag/v44.8.0)

### Release Notes for v44.8.0

#### Features

- Added support for `Notification` action buttons on Linux. [#54890](electron/electron#54890) <sup>(Also in [45](https://github.com/electron/electron/pull/54889))</sup>

#### Fixes

- Fixed mouse cursor missing over native dialogs in certain scenarios on Windows. [#54987](electron/electron#54987)
- Fixed `net.fetch` and `session.fetch` failing permanently with `net::ERR_FAILED` after the Network Service process restarts. [#54909](electron/electron#54909) <sup>(Also in [42](electron/electron#54925), [43](electron/electron#54908), [45](https://github.com/electron/electron/pull/54910))</sup>
- Fixed `utilityProcess` dropping messages posted with `process.parentPort.postMessage()` right before the process exits. [#54960](electron/electron#54960) <sup>(Also in [42](electron/electron#55000), [43](electron/electron#54962), [45](https://github.com/electron/electron/pull/54956))</sup>
- Fixed `win.isFullScreen()` being stale in fullscreen events on Windows. [#55009](electron/electron#55009) <sup>(Also in [45](https://github.com/electron/electron/pull/55008))</sup>

#### Other Changes

- Backported fixes from upstream Chromium and V8. [#55034](electron/electron#55034)
- Updated Chromium to 152.0.7977.167. [#54928](electron/electron#54928)
- Updated Node.js to v24.22.0. [#55004](electron/electron#55004)
##### [v44.7.2](https://github.com/electron/electron/releases/tag/v44.7.2)

### Release Notes for v44.7.2

#### Fixes

- Fixed an issue where clicks posted to a background app were dropped on macOS. [#54819](electron/electron#54819) <sup>(Also in [45](https://github.com/electron/electron/pull/54818))</sup>
- Fixed interrupted macOS updates leaving a broken app behind. [#54844](electron/electron#54844) <sup>(Also in [45](https://github.com/electron/electron/pull/54843))</sup>

#### Other Changes

- Backported fixes from upstream ANGLE, Chromium, PDFium and V8. [#54898](electron/electron#54898)

#### Documentation

- Documentation changes: [#54880](electron/electron#54880)
##### [v44.7.1](https://github.com/electron/electron/releases/tag/v44.7.1)

### Release Notes for v44.7.1

#### Fixes

- Fixed a crash when starting without an available display server on Linux. [#54794](electron/electron#54794) <sup>(Also in [45](https://github.com/electron/electron/pull/54781))</sup>
- Fixed a Linux crash creating a window with a menu bar when GTK failed to load. [#54859](electron/electron#54859) <sup>(Also in [45](https://github.com/electron/electron/pull/54846))</sup>
- Fixed a `WebContentsView` that was removed with `removeChildView()` and re-added with `addChildView()` staying hidden behind its sibling views on Linux. [#54798](electron/electron#54798)
- Fixed asar archives in non-ASCII folders failing to load on Linux. [#54849](electron/electron#54849) <sup>(Also in [45](https://github.com/electron/electron/pull/54848))</sup>
- Fixed renderer crashes during garbage collection inside ShadowRealms. [#54865](electron/electron#54865) <sup>(Also in [45](https://github.com/electron/electron/pull/54864))</sup>

#### Other Changes

- Refactored mouse forwarding on Windows to fix `setIgnoreMouseEvents(true, { forward: true })` related issues. [#54802](electron/electron#54802) <sup>(Also in [45](https://github.com/electron/electron/pull/54803))</sup>
- Updated Chromium to 152.0.7977.149. [#54085](electron/electron#54085)
##### [v44.7.0](https://github.com/electron/electron/releases/tag/v44.7.0)

### Release Notes for v44.7.0

#### Features

- The macOS `autoUpdater` now streams update downloads to disk, resumes an interrupted download on the next check instead of starting over, and applies a binary delta when the update feed offers one for the running version. [#54204](electron/electron#54204)

#### Fixes

- Fixed an uncatchable TypeError in `net.fetch` when receiving response headers with non-ASCII characters, and preserved multiple Set-Cookie headers. [#54672](electron/electron#54672)

#### Other Changes

- Backported fixes from upstream ANGLE, Chromium, Dawn, fontconfig, Skia, V8 and WebRTC. [#54666](electron/electron#54666)
- Backported fixes from upstream ANGLE, Chromium, Skia, V8 and WebRTC. [#54657](electron/electron#54657)
##### [v44.6.0](https://github.com/electron/electron/releases/tag/v44.6.0)

### Release Notes for v44.6.0

#### Features

- Added the experimental `protocol.registerSource()` to serve a custom scheme from directories on disk without a JavaScript handler. [#54522](electron/electron#54522) <sup>(Also in [45](https://github.com/electron/electron/pull/54521))</sup>

#### Fixes

- Fixed a crash on launch on macOS when the system refused to register the app for sleep/wake notifications. [#54596](electron/electron#54596)
- Fixed a crash on `navigator.usb.requestDevice()` in in-memory sessions. [#54616](electron/electron#54616) <sup>(Also in [45](https://github.com/electron/electron/pull/54615))</sup>
- Fixed `webview.findInPage()` hanging when the host page also has an iframe. [#54586](electron/electron#54586) <sup>(Also in [43](electron/electron#54584), [45](https://github.com/electron/electron/pull/54585))</sup>
- Updated time zone data to tzdata 2026d, including British Columbia's move to permanent UTC-7. [#54623](electron/electron#54623)

#### Documentation

- Documentation changes: [#54589](electron/electron#54589)
ninemate added a commit to ninemate/althar that referenced this pull request Nov 6, 2026
* docs: design shared cross-harness skills

* docs: tighten skills design review controls

* docs: plan default skills catalog from agent-skills and superpowers

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>

* Linux and Windows: this computer, not this Mac, and Ctrl, not ⌘

One device vocabulary and one keys helper, both in @althar/ui: the UI's
text names the system it runs on, the shortcuts are drawn and heard with
the system's primary modifier. The runtime's words use the same names.
macOS output is unchanged.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>

* docs: settle catalog review findings

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>

* docs: measure agent-skills and superpowers, recommend hybrid catalog

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>

* Add @althar/skills: validation, shared store, catalog format, projection and repository guard

First slice of the shared-skills plan. Nothing in the runtime or adapters uses it yet.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>

* Settle skills review: activation needs review, hash checks, push lint wired, nested openspec

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>

* Mac keeps accepting Ctrl where it always did

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>

* Say this computer in the words upstream added since

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>

* A sign-in the keychain can no longer open says to sign in again, not that it is unreachable

safeStorage.decryptString throwing means the key the keychain holds is not the one a
token was sealed with: main marks it unreadable, the runtime doesn't ask again, and the
connection goes to reauth_required. Main's keyring and unreadable marks now reach the
runtime (the keyring one was dropped). A host's refusal is said in the person's words on
the pull request card, and a lost sign-in there is not 'not connected'. Notes on why the
Flatpak's key changes at every start.

Co-authored-by: Althar <[email protected]>

* Test that a lost key reaches the runtime as unreadable: the answer's mapping out of runtime.ts

Co-authored-by: Althar <[email protected]>

* New project shortcuts follow the platform too

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>

* The coordinator's tool says this computer too

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>

* Give Claude Code leads the shared skills, and guard pushes of skill and OpenSpec files

Claude Code leads get the active skills as a session-scoped local plugin in
Althar's own skills folder (never the repository or the person's Claude
folder), seeded from a local fixture catalog. Per-project repositoryFiles
settings (write skills, write OpenSpec, push protected) are all off by default,
and every push Althar makes first checks the changed paths and refuses skill
and OpenSpec files unless the project allows pushing them.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>

* Settle skills review: both consents at push, a base for pushes with none, serialized and pruned catalog installs

Skill and OpenSpec files now need the class's write setting and the push
setting to leave the machine (a harness's own commits cannot be checked at
staging). With no base commit recorded, a push is compared with where the
branch left the default branch. Installing the local catalog is serialized per
store and drops defaults the catalog no longer lists. Delivery is one runtime
switch, not per project; the plan says so.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>

* Seal with KWallet itself in a Flatpak on KDE, so the sealing key survives a restart

Inside the sandbox libsecret keeps a file keyring and stores the key there, but Chromium
looks it up in the host's service, finds none and makes a new key at every start. KWallet's
wallet is the host's: ask for kwallet6 (kwallet5 on Plasma 5) and let the manifest talk to
org.kde.kwalletd6/5.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>

* Tell Plasma 5 from 6 in a Flatpak by asking the session bus, not an environment variable the sandbox lacks

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>

* New project, create and dictation shortcuts bind to the platform's modifier

Co-authored-by: Althar <[email protected]>

* Revert "Tell Plasma 5 from 6 in a Flatpak by asking the session bus, not an environment variable the sandbox lacks"

This reverts commit d4d8f62.

* Revert "Seal with KWallet itself in a Flatpak on KDE, so the sealing key survives a restart"

This reverts commit 2ec7208.

* Say in the docs that the Flatpak's key is decided on AltharIDE#201 and AltharIDE#207

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>

* Test that a lost keychain token asks to sign in again before a fork's pull request is opened

Co-authored-by: Althar <[email protected]>

* Guard the tip a push sends, refuse a projection that would remove a repository, and read only a missing installs.json as empty

Co-authored-by: Althar <[email protected]>

* Push the guarded tip itself, and compare canonical paths before a projection removes its run directory

Co-authored-by: Althar <[email protected]>

* Treat only a real parent segment as outside when comparing a projection's paths

Co-authored-by: Althar <[email protected]>

* Give Codex and OpenCode leads the run's skills too, each the way its harness finds them

Codex gets the run folder as an added directory, whose .agents/skills codex-acp sets as an extra skill root;
OpenCode gets it among its config's skills.paths; Claude Code keeps its session plugin. A skill an agent can't
use is left out and the thread says so.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* Say in the skills plan how Codex and OpenCode leads are given skills, and what is still off

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* Install, review, update and roll back a skill from GitHub

A ref is resolved once to a commit and only the skill's directory is fetched; a symlink, submodule or oversized
tree is refused before any file is read. Each fetched version is staged with a review card (files, findings,
line diff against the installed version), installed only when the person approves that card, and kept so an
update can be rolled back. The default catalog no longer writes over a person's install of the same name.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* Ship a default catalog of 33 skills from agent-skills and superpowers

Every skill of both MIT repositories, read in full, except where two do the same job and the better is kept
(catalog/CURATION.md says which and why) and diagnosing-superpowers, which only works on the superpowers
plugin. Anthropic's authoring guide, which their licence does not cover, is left out. Patches take out push
and pull-request steps, keep planning files out of commits, keep Althar's worktrees off limits and make the
text harness-neutral. scripts/vendor.ts builds the catalog from pinned clones; the tests load it as the app does.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* Turn skills on in the app and the CLI, seeded from the shipped catalog

The store is the profile's skills folder; the packaged app carries the catalog in its resources.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* Fetch a skill's files from GitHub's raw host, each checked against the commit's tree

Without a token, GitHub's API allows 60 requests an hour; the raw host isn't counted, and each file's git blob
hash must match the one the commit's tree names, so nothing is taken on the host's word.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* Let the window list, install from GitHub, review, update, roll back and turn off skills

New calls on the API, refused in words where the runtime has no store; GitHub is reached over the app's own
network, for public repositories.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* Add a Skills section to Settings: every skill on or off, installing from GitHub by its card, updates and rollback

The kit gains SkillList, SkillInstall and SkillReview with their stories; the section reads the store through
the new calls, opens one review at a time and checks for updates only when asked.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* Say in the skills plan what now ships: the catalog, GitHub installs with review, and what was checked live

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* Test that Super alone is no command key on Linux and Windows

Co-authored-by: Althar <[email protected]>

* Route the start, new-project and tabs shortcuts through the shared key helpers

StartView, NewProjectView and TabsFrame drew and heard their keys with
hand-rolled platform checks; they use modKey, keys and primaryDown now.
The finder test that stood in for Linux through the host's platform now
says so for the kit's keys too.

Co-authored-by: Althar <[email protected]>

* Settle the skills review: show every file before install, roll back to the source replaced, split /tree/ refs with slashes, check the packaged catalog

A first install's card shows each file besides SKILL.md in full, and a replacement what changes; a file that
can't be shown says so. History keeps each earlier version's source, so rolling back a replacement restores it.
A pasted /tree/ path is split by asking GitHub which prefix is a ref. Packaging copies the catalog through
stageSkillsCatalog, which looks for it where the packaged main process will, and fails without it.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* Keep a skill off when its update is approved, and call a skill from another folder of the same repository a replacement

Approving an update from the same repository and folder keeps whether the person had it on. A review card says
where the installed one's folder is, so the settings page offers to replace one from another folder, as approving
it needs, instead of calling it an update that would then be refused.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* Add Repository files to a project's settings, and point a held-back push there

The project's Settings panel has a Repository files module that says where skill and OpenSpec files stand and
opens out to three switches, Write Althar-managed skills, Write OpenSpec artifacts and Push skill/OpenSpec files,
each off until turned on, each saved as a new revision of the project's rules. The kit has the switches as
RepositoryFiles, with its stories. A push held back for those files now says to turn on Push skill/OpenSpec
files in the project's Settings, under Repository files.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* Name the Repository files switches a held-back push needs

The guard holds back skill or OpenSpec files when writing them is off as well as when pushing them is, so
the refusal now carries which switches are off for what it held back, and says to turn on those, not always
Push skill/OpenSpec files.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* Hold back only the task's own skill and OpenSpec files, and check the skills package in CI

The push guard counted every path between the task's base and its head, so skill or OpenSpec files that came in
with a merged default branch were refused as the task's own. It now reads the commits no remote, no default
branch Althar fetched and nothing it pushed before already has, and a merge only for what its resolution changed.
The harness, post-merge and desktop workflows now include packages/skills.

Co-authored-by: Althar <[email protected]>

* Read skills before Settings shows them, keep them across windows, and say what the switches do

The settings route reads the skills before the Skills page shows, and a skill change in the window's feed reads
them again. The update-or-replace decision moved from the page into useSkills. The Repository files switches
now say what they allow: files a task commits under the agents' skill folders or openspec/, held back from a
push while off; Althar never writes them itself. The catalog line says a change reaches each lead the next time
it starts, the page names the device as the rest of the window does, and no line says runtime.

Co-authored-by: Althar <[email protected]>

* Write the skills package in Effect, record what the person does to a skill, and say in the thread when a session starts without its skills

@althar/skills now returns Effects with typed failures (SkillRefused for the
person to put right, SkillStoreFailed for the store), and the runtime takes
them through api() so only the unexpected is reported. Installing, turning
on or off, rolling back and removing a skill is recorded as the person's act
(migration 0034 adds the skill aggregate), and a session's record says which
skills it was given at which version. ADR-048 and ADR-049 set down the store,
the catalog and keeping skill and OpenSpec files off the repository.

Co-authored-by: Althar <[email protected]>

* Ship the catalog's skills off, let a repository push the skills and specs it already tracks, and leave merging and worktrees to Althar

From the review of AltharIDE#259:
- The push guard holds back only a protected directory the task brought in;
  one the repository already tracked at the base or on its default branch
  (.claude/skills, web/openspec) is its own and goes.
- Catalog defaults install off; the person turns on what every lead gets.
- The catalog is installed once per catalog.json hash, not on every session
  start or listing.
- finishing-a-development-branch hands merging and discarding to Althar and
  never leaves the task's worktree; using-git-worktrees is left out (32
  skills); git-workflow-and-versioning adds no worktrees and never resets hard.
- The push lint reads every text file, scripts included.
- An update check whose newer commit left the skill's files as they were
  reports it current.
- A merge-to-default push whose branch can't be read fails instead of
  sending the task's head.

Co-authored-by: Althar <[email protected]>

* Give a run the skills that read when one install doesn't, show an install's problem in Settings, and test what the record keeps of skill changes

- A malformed row in installs.json no longer costs a session every skill:
  the run's selection reads installs one by one, and a catalog that can't be
  installed over a damaged record is only read for what each skill needs.
- Settings shows why an install is broken and how to put it right.
- The skills API tests assert the skill.* events each change records.

Co-authored-by: Althar <[email protected]>

* Count a protected path as the repository's only where it was a directory, and leave deleting a task's branch to Althar

- The push guard took a file named openspec or .claude/skills at the base
  for the repository's own directory, so a task that replaced it with one
  pushed its files unasked; it now requires a tree.
- git-workflow-and-versioning no longer says to delete branches after merge.

Co-authored-by: Althar <[email protected]>

* Expect a skill file taken out in a later commit to stay held, as the push guard reads each commit

Since the guard reads every commit a push would send, a file the task added
and then removed still leaves in the commit that added it. The test still
expected only the branch's end result to count; it now expects that push
held, and the same work in commits that never had the files to go.

Co-authored-by: Althar <[email protected]>

* Make the setup stories look for the device's own words

The sign-in and repository map stories asked for 'this computer'; the
components say this Mac, this PC or this computer by the system, so the
stories use the same device words.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>

* Expect only the agents with a way in to be given a run's skills

Main added seven ACP agents with no skills entry, so they are given none;
the registry test listed every agent and failed on them. It now checks how
Claude Code, Codex and OpenCode are given skills, and that the rest are not.

Co-authored-by: Althar <[email protected]>

* Settle the plain task in the follow-up test with markDone, as seeing a task no longer does

Main's AltharIDE#273 left seeing a task moving nothing, so a finished quick task waits
until the person marks it Done; the follow-up test, from AltharIDE#267, still waited
for seeing it to settle it, and for the follow-up to settle it again.

Co-authored-by: Althar <[email protected]>

* Have every agent say how it is given a run's skills, the new ACP agents none

skills was optional, so an agent left without it got none unsaid, and the
registry test broke when seven came in from main. It is required now, a
delivery or null: Copilot, Junie, Grok, Kimi, Mistral Vibe, Qwen Code and
Antigravity say null, since each one's skills folder is the person's own and
none has a known way to load one for a session alone. The test names every
agent's entry, so one added fails it until it says; the plan lists them to
probe.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* Turn every skill on or off at once, and ask about agent skills on the first screen

Settings' Skills has Turn all on, and Turn all off once every one is on; a
skill Althar can't read is left as it is. The first screen asks once, as a
quiet line beside crash reports, whether the leads get Althar's skills, off
until turned on as each skill is, and says Settings is where to choose them
one by one later. Both go through one toggleAll in useSkills.

Co-authored-by: Althar <[email protected]>

* Test the whole path a run's skills take, where tests didn't yet

Claude Code, Codex and OpenCode leads are given only the skills turned on,
as read-only copies, and nothing reaches the home, an account's home or the
worktree; a skill turned on while a lead works reaches the session after;
the coordinator gets none on any agent, and onlyReads, now named, counts
reviewers and a review's lead as reading too; the notice for a skill left
out is checked by its title. A GitHub skill with hooks is refused at
approval like one with allowed-tools, and an update keeps the version it
replaced, whose files stay stored after a rollback.

Co-authored-by: Althar <[email protected]>

* Say on the first screen why skills couldn't be switched, and count only those that can be

The first screen's skills line counts only the skills Althar can read, so a
broken one left on never holds its switch on, and a switch that wasn't kept
says why there as Settings does. onlyReads takes a task's review as given,
so a caller can't leave it out and count a lead as reading; the test no
longer looks for account homes the fake agents don't have.

Co-authored-by: Althar <[email protected]>

* Make the repositories story look for the device's own words

Co-authored-by: Althar <[email protected]>

* Show the first screen's skills switch on only when every skill is

With some skills on and some off, the switch read as on and could only turn
them all off. It now reads as on only when every skill Althar can read is,
so a click turns the rest on, as Settings' Turn all on does.

Co-authored-by: Althar <[email protected]>

* Ask a lead given skills to look for one that fits and load it

A lead's agent lists the skills it was given, but beside a brief that says
how to work, the list went unread: no lead loaded one. Its brief now names
the skills it got and asks it to see first whether one fits what it picks
up, load it and say so, with the brief, the project's instructions and the
person coming first where a skill differs. It goes in where the session
knows what it was given, so a start, a takeover and a handover all say it,
for every agent.

Co-authored-by: Althar <[email protected]>

* Raise Electron to 44.9.0, so a start that fails early exits instead of crashing

On Electron 44.5.0, a start that fails before the main loop runs (no
display reachable, for one) tore the JavaScript environment down after its
isolate and aborted with SIGTRAP in gin::PerIsolateData::NotifyDisposed.
That is the stack of the Flatpak's main-process dumps of 2026-10-12 16:00
and 21:23. Electron fixed it in 44.7.1 (electron/electron#54794, issue
#54530); 44.9.0 is the latest 44.x.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
(cherry picked from commit deb72fb)

* Format the merged StartView import on one line

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* Give the kit Linux too in the off-a-Mac tests, as AltharIDE#217 draws the keys there

AltharIDE#217 moved the keys to @althar/ui, which reads the preload's platform as it
loads; the off-a-Mac tests (AltharIDE#299) mocked only the renderer's shared/device,
so the kit still drew ⌘. The app itself was right: both read the same
platform.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* Flatpak: link git's dashed commands to git itself, so a fetch from a folder works

The SDK links git-upload-pack and the rest to ../../bin/git, which in the
Flatpak is git.sh. It runs git as plain `git`, so git took the folder it
was given for a command ("is not a git command"), and every fetch from a
folder on this computer failed. Since AltharIDE#332 the coordinator's folder is
fetched that way (its mirror from the checkout, its copies from the
mirror), so the coordinator couldn't start: "git fetch didn't work: and
the repository exists".

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* Never let Althar's own git wait on a question nobody can answer

A Flatpak build's fetch over SSH asked the host-key question on the
terminal Althar was started from, and the coordinator waited on it.
Althar's git now runs in a session of its own (no terminal to ask on),
with stdin closed, no askpass, SSH_ASKPASS_REQUIRE=never and Git
Credential Manager kept quiet; when its time is up the whole process
group goes, ssh included. The coordinator's fetch of origin gets 15 s
and falls back to the last fetch.

Co-authored-by: Althar <[email protected]>

* Flatpak: git over SSH through the device, pinned code hosts inside

Althar's own git in the Flatpak runs the device's ssh for its SSH remotes, so the person's agent, ssh config and known hosts sign it in, and neither the agent's socket nor their ssh folder enters the sandbox. ssh in the sandbox trusts the code hosts pinned under /app/share/althar, from each vendor's documented fingerprints (checked by a test), never asks and gives up after 15 s; an agent's git over SSH there can't sign in. An unknown host fails at once, saying how to trust it. The rules keep agents from running the device's ssh. ADR-061 records it, amending ADR-027; the smoke check covers it.

Co-authored-by: Althar <[email protected]>

* Refuse the device's ssh to agents when a git config keeps it too

The rule caught git -c and GIT_SSH_COMMAND, but not git config core.sshCommand followed by a plain git fetch. A line that names the bridge with any way git is told what to run (its ssh settings in any spelling, GIT_CONFIG_*, an alias) is now refused, and the bridge itself as git's ssh likewise. ADR-061 says what the rules can and can't cover.

Co-authored-by: Althar <[email protected]>

* Let a search or commit message name the device's ssh beside git's settings

The guard refused any line naming the bridge and a git ssh setting, so a search for the rule or a commit message about it was refused. It now refuses only a line that sets the bridge for git: as a variable's value or with -c, beside a GIT_SSH* or GIT_CONFIG_* assignment, with git config, or written into a git folder.

Co-authored-by: Althar <[email protected]>

* Refuse the device's ssh as git's ssh when a substitution finds it

git -c core.sshCommand="$(command -v althar-host-ssh)" fetch got past the guard: the value pattern ended at the space inside the substitution. A value that starts with $(…) or backticks and names the bridge is now refused too. ADR-061 says a text rule catches the plain spellings, not every one.

Co-authored-by: Althar <[email protected]>

* Let a single-quoted message quote a substitution that names the device's ssh

The substitution check read the raw line, so a commit message in single quotes that quoted such a command was refused. It now reads the line as the shell substitutes in it: single-quoted text, outside double quotes, is left out, unless the line hands it to sh -c or eval.

Co-authored-by: Althar <[email protected]>

* Read single-quoted text as inert only in a git commit or tag message

Leaving out all single-quoted text let python3 -c, node -e, perl -e or echo ... | sh run a substitution that sets the device's ssh as git's. Only a git commit or git tag message in single quotes is now read as text; any other single-quoted text is checked as source something may run.

Co-authored-by: Althar <[email protected]>

* Let a commit message name eval or sh -c beside the device's ssh

The guard read the whole raw line once eval or sh -c appeared anywhere in it, a single-quoted commit message included. It now looks for them only after the message text is left out.

Co-authored-by: Althar <[email protected]>

* Read a commit message as text after a quoted git -c setting

git -c user.name='A Name' commit -m '…' was read as running its message, because the prefix took -c values only unquoted. Quoted words, with no substitution, now count before the command and among its own words. A single-quoted -c value is still checked, as git runs it.

Co-authored-by: Althar <[email protected]>

* Don't let a comment, heredoc or $'…' fake a commit message's start

The text left out as a git message was found without regard to comments, $'…' or lines, so '#; git commit -m '\'' on one line hid a real git -c core.sshCommand="$(command -v althar-host-ssh)" fetch on the next. Comments are now skipped as the shell skips them, $'…' is read with its escapes, and a message that runs across a line is kept.

Co-authored-by: Althar <[email protected]>

* Read a # after a line continuation as part of a word, not a comment

The shell removes a trailing \ and its newline, so in 'echo x\<newline>#; git -c core.sshCommand="$(command -v althar-host-ssh)" fetch' the # is part of a word and the fetch runs. The guard read it as a comment and left the fetch out. The walk now drops a \ and newline as the shell does, and decides whether # starts a comment from what it has kept.

Co-authored-by: Althar <[email protected]>

* Read a # after an escaped blank as part of a word, not a comment

In 'echo x\ #; git -c core.sshCommand="$(command -v althar-host-ssh)" fetch' the shell keeps the escaped space in the word, so # is literal and the fetch runs. The guard saw a space before # and left the fetch out as a comment. The walk now tracks where a word starts: only an unescaped blank or operator starts one.

Co-authored-by: Althar <[email protected]>

* Read the guard's characters with charAt, so each is a string

command[at] is string | undefined under noUncheckedIndexedAccess, which failed the type check where it is passed to RegExp.test.

Co-authored-by: Althar <[email protected]>

* Start the held review's usage reset from its first refusal, as main does

heldKept's two "no reviewer named" tests set codex's reset five seconds from
the test's start, the same five seconds the other task's lead holds the one
place, so on a busy runner the reset fell after that lead stopped and the
review ran without waiting, timing out the test. main fixed it in AltharIDE#341 by
counting 2.5 seconds from the reviewer's first refusal; this is that file
as main has it.

Co-authored-by: Althar <[email protected]>

* Name the device in main's runtime tests, as the branch's words do

The branch says "this PC" on Windows and "this Mac" on a Mac where main
says "this computer", through thisDevice(). Tests that came with main
still expected "this computer", so the Windows runtime shards failed on
the merge; they now expect thisDevice(), as the branch's own tests do.

Co-authored-by: Althar <[email protected]>

* fix: resolve merged pull request checks

Use the locked Claude adapter patch hunk, exercise the off-Mac shortcut regardless of the test host, and reserve model probes before the asynchronous sign-in check so simultaneous catalog reads start only one agent. Choose a free callback port for the Linear flow and keep its Git path fixture representable on Windows.

Co-authored-by: Althar <[email protected]>

* fix(runtime): guard model probe reservations

Co-authored-by: Althar <[email protected]>

* test(runtime): isolate temporary git fixtures

Co-authored-by: Althar <[email protected]>

* fix: restore checks after main merge

* fix(runtime): keep git stderr separate

* style(desktop): format merged settings rule

* fix(sqlite): sync generated schema vocabulary order

---------

Co-authored-by: ninemate <[email protected]>
Co-authored-by: Claude Sonnet 5.5 <[email protected]>
Co-authored-by: Althar <[email protected]>
Co-authored-by: T <[email protected]>
Co-authored-by: Balázs <[email protected]>
renovate Bot added a commit to cigaleapp/cigale that referenced this pull request Nov 8, 2026
##### [v44.10.1](https://github.com/electron/electron/releases/tag/v44.10.1)

### Release Notes for v44.10.1

#### Fixes

- Fixed DevTools "Save" prompting for a location every time instead of reusing the previously chosen file. [#55484](electron/electron#55484)
  - Fixed DevTools "Save As" using the old file and Linux cancels treated as saved.
- Fixed `webContents.adjustSelection()` ignoring the `end` option. [#55461](electron/electron#55461) <sup>(Also in [45](electron/electron#55462), [46](https://github.com/electron/electron/pull/55463))</sup>

#### Performance Improvements

- Improved performance of `net.fetch()` requests without a body. [#55445](electron/electron#55445) <sup>(Also in [43](electron/electron#55447), [45](electron/electron#55446), [46](https://github.com/electron/electron/pull/55444))</sup>
- Improved performance of repeated `net.fetch()` calls for `file:` URLs. [#55458](electron/electron#55458) <sup>(Also in [45](electron/electron#55459), [46](https://github.com/electron/electron/pull/55457))</sup>

#### Other Changes

- Backported fixes from upstream Chromium, Dawn, Skia and V8. [#55492](electron/electron#55492)
##### [v44.10.0](https://github.com/electron/electron/releases/tag/v44.10.0)

### Release Notes for v44.10.0

#### Features

- Added filtering options to `session.registerPreloadScript` - `matches`, `excludeMatches`, `includeGlobs`, `excludeGlobs`, `matchOriginAsFallback`. [#55182](electron/electron#55182) <sup>(Also in [45](https://github.com/electron/electron/pull/55181))</sup>

#### Fixes

- Fixed a crash on Linux when a D-Bus method call was made on a disconnected bus. [#55290](electron/electron#55290) <sup>(Also in [45](electron/electron#55292), [46](https://github.com/electron/electron/pull/55289))</sup>
- Fixed a main process crash when `onSendHeaders` observed Blob uploads. [#55168](electron/electron#55168) <sup>(Also in [45](https://github.com/electron/electron/pull/55169))</sup>
- Fixed `app.getLoginItemSettings()` not finding login items on Windows when the executable path contains spaces. [#55207](electron/electron#55207) <sup>(Also in [45](https://github.com/electron/electron/pull/54419))</sup>
- Fixed Europe/London and Europe/Dublin time zone names showing as "GMT+00:00" in winter by updating ICU to tzdata 2026e. [#55335](electron/electron#55335)
- Fixed File System Access blocklist gaps for `.git/hooks` writes and hypervisor UNC shares. [#55330](electron/electron#55330)
- Fixed handling of malformed asar archives whose size fields do not match the file length. [#55176](electron/electron#55176) <sup>(Also in [43](electron/electron#55179), [45](https://github.com/electron/electron/pull/55175))</sup>
- Fixed inconsistent handling of asar archive paths between the main process and child processes. [#55183](electron/electron#55183) <sup>(Also in [43](electron/electron#55185), [45](https://github.com/electron/electron/pull/55184))</sup>
- Fixed `Menu.popup()` on macOS sometimes not showing a menu after another closed. [#55325](electron/electron#55325) <sup>(Also in [45](electron/electron#55326), [46](https://github.com/electron/electron/pull/55324))</sup>
- Fixed MV3 extension events not arriving to background service workers. [#55152](electron/electron#55152) <sup>(Also in [43](electron/electron#55153), [45](https://github.com/electron/electron/pull/55154))</sup>
- Fixed paste hanging indefinitely on Linux X11 until the app was restarted. [#55327](electron/electron#55327)
- Fixed `protocol.registerSource` schemes not applying the same fetch rules as `protocol.handle` schemes. [#55177](electron/electron#55177) <sup>(Also in [45](https://github.com/electron/electron/pull/55178))</sup>
- Fixed `utilityProcess` not emitting an `exit` event when the app quit while the process was still launching. [#55273](electron/electron#55273) <sup>(Also in [43](electron/electron#55272), [45](electron/electron#55274), [46](https://github.com/electron/electron/pull/55264))</sup>

#### Other Changes

- Updated Chromium to 152.0.7977.169. [#55033](electron/electron#55033)
- Updated Node.js to v24.22.1. [#55162](electron/electron#55162)
##### [v44.9.3](https://github.com/electron/electron/releases/tag/v44.9.3)

### Release Notes for v44.9.3

#### Other Changes

- Backported fixes from upstream ANGLE, Chromium, PDFium, Skia and V8. [#55149](electron/electron#55149)
##### [v44.9.2](https://github.com/electron/electron/releases/tag/v44.9.2)

### Release Notes for v44.9.2
##### [v44.9.1](https://github.com/electron/electron/releases/tag/v44.9.1)

### Release Notes for v44.9.1

> \[!NOTE]
> This release contains the fix for <GHSA-jr5w-w6x2-84p9>, the mitigation for compromised eMudhra intermediate certificates
##### [v44.9.0](https://github.com/electron/electron/releases/tag/v44.9.0)

### Release Notes for v44.9.0

#### Features

- Added app shims on macOS to show windows under another app's Dock icon. [#55073](electron/electron#55073) <sup>(Also in [45](https://github.com/electron/electron/pull/55072))</sup>

#### Fixes

- Fixed link-opened windows not using the opener's session and `webPreferences`. [#55048](electron/electron#55048) <sup>(Also in [42](electron/electron#55050), [43](electron/electron#55049), [45](https://github.com/electron/electron/pull/55051))</sup>
- Fixed `setCertificateVerifyProc` occasionally not being applied to a request issued concurrently with the first request to a host. [#55046](electron/electron#55046) <sup>(Also in [42](electron/electron#55054), [43](electron/electron#55047), [45](https://github.com/electron/electron/pull/55045))</sup>
##### [v44.8.0](https://github.com/electron/electron/releases/tag/v44.8.0)

### Release Notes for v44.8.0

#### Features

- Added support for `Notification` action buttons on Linux. [#54890](electron/electron#54890) <sup>(Also in [45](https://github.com/electron/electron/pull/54889))</sup>

#### Fixes

- Fixed mouse cursor missing over native dialogs in certain scenarios on Windows. [#54987](electron/electron#54987)
- Fixed `net.fetch` and `session.fetch` failing permanently with `net::ERR_FAILED` after the Network Service process restarts. [#54909](electron/electron#54909) <sup>(Also in [42](electron/electron#54925), [43](electron/electron#54908), [45](https://github.com/electron/electron/pull/54910))</sup>
- Fixed `utilityProcess` dropping messages posted with `process.parentPort.postMessage()` right before the process exits. [#54960](electron/electron#54960) <sup>(Also in [42](electron/electron#55000), [43](electron/electron#54962), [45](https://github.com/electron/electron/pull/54956))</sup>
- Fixed `win.isFullScreen()` being stale in fullscreen events on Windows. [#55009](electron/electron#55009) <sup>(Also in [45](https://github.com/electron/electron/pull/55008))</sup>

#### Other Changes

- Backported fixes from upstream Chromium and V8. [#55034](electron/electron#55034)
- Updated Chromium to 152.0.7977.167. [#54928](electron/electron#54928)
- Updated Node.js to v24.22.0. [#55004](electron/electron#55004)
##### [v44.7.2](https://github.com/electron/electron/releases/tag/v44.7.2)

### Release Notes for v44.7.2

#### Fixes

- Fixed an issue where clicks posted to a background app were dropped on macOS. [#54819](electron/electron#54819) <sup>(Also in [45](https://github.com/electron/electron/pull/54818))</sup>
- Fixed interrupted macOS updates leaving a broken app behind. [#54844](electron/electron#54844) <sup>(Also in [45](https://github.com/electron/electron/pull/54843))</sup>

#### Other Changes

- Backported fixes from upstream ANGLE, Chromium, PDFium and V8. [#54898](electron/electron#54898)

#### Documentation

- Documentation changes: [#54880](electron/electron#54880)
##### [v44.7.1](https://github.com/electron/electron/releases/tag/v44.7.1)

### Release Notes for v44.7.1

#### Fixes

- Fixed a crash when starting without an available display server on Linux. [#54794](electron/electron#54794) <sup>(Also in [45](https://github.com/electron/electron/pull/54781))</sup>
- Fixed a Linux crash creating a window with a menu bar when GTK failed to load. [#54859](electron/electron#54859) <sup>(Also in [45](https://github.com/electron/electron/pull/54846))</sup>
- Fixed a `WebContentsView` that was removed with `removeChildView()` and re-added with `addChildView()` staying hidden behind its sibling views on Linux. [#54798](electron/electron#54798)
- Fixed asar archives in non-ASCII folders failing to load on Linux. [#54849](electron/electron#54849) <sup>(Also in [45](https://github.com/electron/electron/pull/54848))</sup>
- Fixed renderer crashes during garbage collection inside ShadowRealms. [#54865](electron/electron#54865) <sup>(Also in [45](https://github.com/electron/electron/pull/54864))</sup>

#### Other Changes

- Refactored mouse forwarding on Windows to fix `setIgnoreMouseEvents(true, { forward: true })` related issues. [#54802](electron/electron#54802) <sup>(Also in [45](https://github.com/electron/electron/pull/54803))</sup>
- Updated Chromium to 152.0.7977.149. [#54085](electron/electron#54085)
##### [v44.7.0](https://github.com/electron/electron/releases/tag/v44.7.0)

### Release Notes for v44.7.0

#### Features

- The macOS `autoUpdater` now streams update downloads to disk, resumes an interrupted download on the next check instead of starting over, and applies a binary delta when the update feed offers one for the running version. [#54204](electron/electron#54204)

#### Fixes

- Fixed an uncatchable TypeError in `net.fetch` when receiving response headers with non-ASCII characters, and preserved multiple Set-Cookie headers. [#54672](electron/electron#54672)

#### Other Changes

- Backported fixes from upstream ANGLE, Chromium, Dawn, fontconfig, Skia, V8 and WebRTC. [#54666](electron/electron#54666)
- Backported fixes from upstream ANGLE, Chromium, Skia, V8 and WebRTC. [#54657](electron/electron#54657)
##### [v44.6.0](https://github.com/electron/electron/releases/tag/v44.6.0)

### Release Notes for v44.6.0

#### Features

- Added the experimental `protocol.registerSource()` to serve a custom scheme from directories on disk without a JavaScript handler. [#54522](electron/electron#54522) <sup>(Also in [45](https://github.com/electron/electron/pull/54521))</sup>

#### Fixes

- Fixed a crash on launch on macOS when the system refused to register the app for sleep/wake notifications. [#54596](electron/electron#54596)
- Fixed a crash on `navigator.usb.requestDevice()` in in-memory sessions. [#54616](electron/electron#54616) <sup>(Also in [45](https://github.com/electron/electron/pull/54615))</sup>
- Fixed `webview.findInPage()` hanging when the host page also has an iframe. [#54586](electron/electron#54586) <sup>(Also in [43](electron/electron#54584), [45](https://github.com/electron/electron/pull/54585))</sup>
- Updated time zone data to tzdata 2026d, including British Columbia's move to permanent UTC-7. [#54623](electron/electron#54623)

#### Documentation

- Documentation changes: [#54589](electron/electron#54589)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

44-x-y backport This is a backport PR semver/patch backwards-compatible bug fixes

Projects

No open projects
Status: No status

Development

Successfully merging this pull request may close these issues.

1 participant