* refactor(structure): dissolve account/ into common/ and ui/
session.ts is split by import group so each file has one runtime context:
- common/account/session.ts: the isomorphic store accessors + getPrivateKey
(imports only insomnia-data + ~/runtimes), used by both main (sentry,
cloud-sync) and renderer.
- ui/account/session.ts: the window/insomnia-api auth flow (absorbKey, logout,
credential cleanup, migrateFromLocalStorage); re-exports the common core so
renderer callers keep one import surface.
crypt.ts -> common/account/ (used by ipc + both crypto adapters);
generateAES256Key now uses globalThis.crypto instead of window.crypto so the
module satisfies the common/ no-DOM-globals rule.
* refactor(structure): dissolve utils/ into ui/, common/, main/
Placed each former utils/ module by its actual importer context:
- ui/utils/: router, try-interpolate, grpc, string-check, prettify/, xpath/
(renderer-only). The index.ts barrel merged into the existing ui/utils.ts.
- common/utils/: environment-utils, graph-ql, plugin-name, invariant,
utf8-bytes, vault, url/ (imported by both renderer and main/node side).
- main/utils/: sealedbox (main-only).
prettify tests now load fixtures via import.meta.glob instead of node:fs so
they are legal in the renderer execution context.
* refactor(structure): split plugins/ into ui/, common/, and plugin host
- ui/plugins/: renderer-bridge, create, misc (renderer-only; window, no node)
- common/plugins/: types, bridge-types (pure shared types, used by main +
renderer + the plugin host)
- plugins/ retained as the plugin-host residual: index, invoke-method, context/,
themes. These run in the node-enabled plugin window and are intentionally
dual-context (index.ts forks on __IS_RENDERER__ between window.main and
electron.shell), so they belong to neither ui/ nor main/ nor common/.
* refactor(structure): split templating/ into ui/, common/, and host residual
- common/templating/: constants, types, render-error, render-context-serialization,
tokenize-args, faker-functions, local-template-tags, liquid-engine,
liquid-extension-worker, utils, mask-or-decrypt-vault-data, third_party
(pure/isomorphic, imported by both sides). types.ts now declares a local
BinaryToTextEncoding alias instead of importing node:crypto, so it is legal in
common/.
- ui/templating/: renderer-safe, worker (renderer/web-worker only).
- templating/ retained as host residual: index + liquid-extension, which use
node:crypto/os AND window.main (dual-context, like the plugin host).
Updated the one cross-package importer (insomnia-scripting-environment) to the
new common/ path.
* style: re-sort imports after folder reorg (eslint --fix)
* docs: runtime-context folder reorganization rationale
* chore: treat vendored yarn-standalone bundle as a generated artifact
The webpack-bundled bin/yarn-standalone.js is a vendored build artifact, not
hand-edited source. An accidental reformat produced a 260k-line diff. Mark it
generated/no-diff in .gitattributes (keeps git diffs fast, collapses on GitHub),
make the prettier ignore explicit, and deny Claude read/edit access. ESLint
already ignores it via the existing **/bin/* rule.
* fix: drop unused try-interpolate import after rebase onto develop
The rebase merge kept a direct tryToInterpolateRequestOrShowRenderErrorModal
import in request-url-bar and websocket action-bar, but develop refactored both
to call renderRealtimeConnectPayload instead, leaving the import unused (TS6133).
Checkout text files with LF line endings.
This prevents auto conversion from LF to CRLF on windows,
which would break unit tests expecting LF line endings.