SHARED PAIR2c–2eAbout →
← Reports

R–01 · Architecture

What belongs where

Which files belong to the runtime, which stay with each app, and why.

Review state
Draft for approval
Updated
31 Aug 2026
Scope
Cross-project

Conclusion

Share the generic Electron distribution. Keep application identity, code, native modules, private helpers, and mutable state with the application.

01

The shared side

A versioned runtime package owns Electron, Chromium, common locales and resources, and the setuid sandbox for one Electron major. Electron 42 and Electron 44 install beside one another rather than competing for a single global executable.

  • One immutable path per runtime major.
  • One sandbox owned and permissioned by the runtime package.
  • Applications declare bounded dependencies on the runtime they passed against.
02

The private side

Application resources remain app-owned. That includes ASAR content, desktop files, icons, native Node modules, product-specific helpers, and components whose redistribution or update policy differs from Electron itself.

  • LosslessCut retains its private FFmpeg.
  • MarkText retains ABI-specific native modules.
  • JupyterLab Desktop retains its offline Python and Jupyter environment.
  • Audex remains held because sharing Electron does not settle Chrome or Widevine redistribution.
03

Why the line matters

A smaller package is not enough. The boundary must preserve application behavior, make ownership inspectable, and allow a runtime security update without silently replacing app-private components. When an application requires a new Electron major, it moves only after its own test passes.