Skip to content

Release 2.64.0 - #912

Merged
adibhanna merged 3 commits into
mainfrom
v2.64.0
Oct 8, 2026
Merged

adibhanna merged 3 commits into
mainfrom
v2.64.0

Conversation

@adibhanna

@adibhanna adibhanna commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

ZenNotes 2.64.0.

Fixes

  • Long Mermaid labels wrap instead of being cut off at 200px ([Bug] Mermaid Diagram doesn't properly render diagrams #911). Mermaid wraps a label only when it measures exactly its 200px cap, and at fractional device scales (a 1.333 display scale, app zoom at 90% or 120%) the browser reports 199.9953px or 200.00001px. While mermaid lays a diagram out, a label within half a device pixel of its own cap now reports the cap (withCapAwareLabelMeasurement in lib/mermaid-render.ts).
  • macOS apps are notarized once: build.mac.notarize: false turns off electron-builder's built-in step, so the afterSign hook is the only submission (2.63.0 notarized every Mac app twice).

Cycle verification: the reporter's two diagrams in the built app over CDP at twelve scales (display scales 1.25 to 1.75, app zoom 90% to 130% on 2x, 90% and 120% on 1x): 0 of 21 labels clipped at every one, where 2.63.0 clipped 12 at 90%, 120% and 1.333. mermaid-render.test.ts fails 3 of 5 without the fix.

Local gates on 82943baf: typecheck 8/8 and test:run 6/6 with no turbo cache (shared-domain 1,896, app-core 3,127, quicklook 15, desktop 1,052), npm audit --omit=dev --audit-level=high clean (15 low or moderate remain in dompurify, ip-address and smol-toml). npm run pack signed the app (this Mac's codesign lost one timestamp over IPv6, so the pack finished against Apple's timestamp server by IPv4; CI signs on GitHub's runner), deep strict codesign OK, the pack log shows electron-builder's "skipped macOS notarization" next to the hook, bundled zn v0.6.3 in Resources/zn-cli (drwxr-xr-x), packaged launch check: page target in 1.4 s reporting 2.64.0. Smoke suites on the built app: vim-editor, sidebar-vim and editor-improvements passed on their first run. Demo clip: the packaged 2.63.0 at a 133% display scale cuts off 7 of the demo diagram's 9 labels, this build none.

Reported in #911: long flowchart labels were cut off mid-word ("aurora,
forwarding disabled P"), while GitHub, GitLab and Zed wrap the same
diagrams onto two or three lines.

Mermaid lays a label out on one line under an inline 200px max-width and
switches it to wrapping only when it measures exactly 200px wide. At a
fractional device scale the browser lays that cap out in device pixels and
hands back a width just off it: 199.9953px at a 1.333 display scale,
200.0000152px at 120% app zoom on a Retina Mac. The check fails, the label
stays on one line, its node is sized to the cap, and the rest of the text
is clipped. Mermaid 11.17.2 and 12.1.0 still compare exactly, so an
upgrade would not help.

While mermaid lays a diagram out, a label measured within half a device
pixel of its own max-width is now reported at exactly that width. Laying
the cap out in device pixels moves it by far less than that, and a label
genuinely that much narrower still fits on one line once mermaid wraps it,
so nothing visible changes for it. Every surface that draws a diagram
renders through this one helper (Preview, the live preview, the expanded
view, PDF export, the share viewer, and the phone apps once they take this
core), so they all get it.

What it deliberately does not do: change mermaid's wrapping width or turn
labels into SVG text. Diagrams look the way they always did; long labels
now wrap.

Verified in the built app over CDP with isolated stores and the reporter's
two diagrams, across twelve scales: forced display scales 1.25, 1.333,
1.5, 1.666 and 1.75, app zoom 90% to 130% on a 2x display, and 90% and
120% on a 1x one. Seven of them hand back a cap width that is not exactly
200px. Before the fix 12 of 21 labels were clipped in both the live
preview and Preview (observed at 90%, 120% and 1.333); after it, none are
at any of the twelve, and the labels wrap the way Zed draws them.
mermaid-render.test.ts feeds the measured widths through a stand-in
mermaid and fails without the fix.
2.63.0's Mac apps were each notarized twice. electron-builder runs its own
@electron/notarize step whenever the APPLE_* secrets are set and
build.mac.notarize is left unset, and the afterSign hook
(scripts/notarize.cjs) then submitted the same app again. On a slow Apple
queue that doubled the wait: the 2.63.0 macOS job sat 95 minutes, and the
first rebuild failed on the second x64 pass with an empty "unexpected
result" from notarytool.

build.mac.notarize is now false, which electron-builder 26 treats as an
explicit skip (it logs "skipped macOS notarization"), so the hook is the
only submission. The hook still demands the credentials when
REQUIRE_MAC_SIGNING is set, and @electron/notarize staples the app after
it is accepted, so the shipped apps come out the same: notarized and
stapled.

What it deliberately does not do: change which credentials notarize, or
notarize the DMG itself. The release run's macOS log is the proof: one
"[notarize] Notarizing" per architecture next to electron-builder's skip.
@adibhanna
adibhanna merged commit 82943ba into main Oct 8, 2026
9 checks passed
@adibhanna
adibhanna deleted the v2.64.0 branch October 8, 2026 21:07
@adibhanna
adibhanna restored the v2.64.0 branch October 8, 2026 21:07
@adibhanna
adibhanna deployed to boundary-artifacts October 8, 2026 21:13 — with GitHub Actions Active
@adibhanna
adibhanna deployed to boundary-artifacts October 8, 2026 21:14 — with GitHub Actions Active
@adibhanna
adibhanna deployed to boundary-artifacts October 8, 2026 21:17 — with GitHub Actions Active

This branch was successfully deployed

1 active deployment
boundary-artifacts — 82943baf Deployed Oct 8, 2026 by adibhanna via draft #36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant