electron+tests: zoom plumbing (construction-only lights), hermeticity fence for the jobs suite

- ZOOM: the ⌘±/⌘0 ladder is owned, not stock roles — applyZoom sets the
  factor and broadcasts 'lh:zoom'; the renderer publishes --lh-zoom; the
  gutter lengths (.lh-lights-gutter / .lh-closed-toggle) divide by it so
  their RENDERED size is a physical constant at every zoom — the graph
  button stays glued next to the lights, nothing slides under them.
  before-input-event catches ⌘=/layout variants the menu's Plus may not
  claim; did-finish-load re-pushes on reload; getZoom covers first paint.
  The lights themselves stay at construction position — Electron 44 has
  NO setTrafficLightPosition (options-only; the first run crashed on
  it). HIG-acceptable: native lights hug the corner; the web chrome
  compensates around them.
- JOBS SUITE FLAKE, actually fixed this time: the seams are
  module-global and the sweep scans every record — a timed-out async
  test left a running orphan + late wake that poisoned its NEIGHBORS
  (respawned 3 !== 0). New afterEach fence: settle every tracked
  running job, unregister aborts, seams reset to inert no-ops — every
  test starts from identical state regardless of upstream flake.
  Verified: two consecutive full-suite runs 1326/1326.
This commit is contained in:
amosblomqvist
2026-10-05 05:42:27 +03:00
parent f4775ebc93
commit 6b58d87d9e
5 changed files with 147 additions and 6 deletions
+12 -3
View File
@@ -516,12 +516,21 @@ body {
-webkit-app-region: no-drag;
}
/* 92px = measured lights' right edge (~75pt) + the lights' own 16px
inset from the window edge — comfortable, symmetric air (owner). */
inset from the window edge — comfortable, symmetric air (owner).
PHYSICAL-CONSTANT under zoom (owner round 7, 2026-10-05): ⌘±/⌘0 scale
every CSS px by the zoomFactor while the native lights never move —
so these lengths DIVIDE by --lh-zoom (published by the renderer from
the lh:zoom IPC) to render at the same physical size at every zoom.
The graph button stays glued next to the lights zoomed in; nothing
slides under them zoomed out. Default 1 until the first push lands. */
.lh-electron {
--lh-zoom: 1;
}
.lh-electron .lh-lights-gutter {
padding-left: 92px;
padding-left: calc(92px / var(--lh-zoom));
}
.lh-electron .lh-closed-toggle {
margin-left: 92px;
margin-left: calc(92px / var(--lh-zoom));
}
/* --font-title deliberately NOT @theme inline (see comment above): the