* 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).