Skip to content

Release: server 2.71.1 with D2 in Safari - #34

Merged
adibhanna merged 1 commit into
mainfrom
release/2.71.1
Oct 19, 2026
Merged

adibhanna merged 1 commit into
mainfrom
release/2.71.1

Conversation

@adibhanna

Copy link
Copy Markdown
Contributor

Pins web-2.71.0-web.h61d3d46948495489 (built from ZenNotes/zennotes ae288166, desktop main with ZenNotes/zennotes#959; published as a pre-release) and sets release.json to 2.71.1, a server-only patch as 2.60.1 was. In 2.71.0, every d2 fence failed in Safari and every other WebKit browser ("undefined is not an object (evaluating 'd2.compile')"): D2's Go runtime overflows the smaller stack of a WebKit worker. The client now probes the worker and, when it cannot answer, runs the compiler on the page through new Function, which the existing CSP (script-src 'self' 'unsafe-eval') allows. Chromium keeps the worker. No header, route, Go code or Go dependency changed, so vendorHash stays.

Local: prepare-web (draft archive and published URL give the same tree, 582 files), go vet, go test ./..., go test -tags=embed_web ./..., and an embed_web binary on a scratch vault: v2.71.1, 200 for the app, 401 without the token, the 22-note tour generates. In a WKWebView, 05c D2 Diagrams draws 5/5 with no diagram error, CSP violation or script error, and 05 Mermaid Diagrams 6/6; the released 2.71.0 server draws 0/5 on the same page. Headless Chrome draws 5/5 through its worker.

…rver 2.71.1

The browser app moves to web-2.71.0-web.h61d3d46948495489, built from
ZenNotes/zennotes ae288166 (main, carrying 3d6feedb from
ZenNotes/zennotes#959). Server 2.71.0 pinned web-2.71.0-web.h851a4e72d0ad429c
from 603fc6dc, and in Safari every ```d2 fence failed with "undefined is
not an object (evaluating 'd2.compile')": D2's Go runtime overflows the
smaller stack of a WebKit worker while it starts. The client now asks the
worker for its version first and, when it cannot answer, runs the
package's worker script on the page through new Function, which the
existing Content-Security-Policy (script-src 'self' 'unsafe-eval')
already allows, so no header changes. Chromium keeps the worker.

Nothing else in the client moved since 603fc6dc besides the core, bridge
and shared-domain version strings; the server's Go code is unchanged since
2.71.0 and no Go dependency moved, so vendorHash stays. release.json moves
to 2.71.1, a server-only patch as 2.60.1 was; the desktop stays 2.71.0.

Local: prepare-web verified the draft archive into a clean web/dist (582
files; the archive's SHA-256 matches its provenance and GitHub's digest).
go vet, go test ./... and go test -tags=embed_web ./... pass. A server
built like the release on a scratch vault with a scratch config reports
v2.71.1, serves the app (200), answers 401 without the token and
generates the 22-note tour. In a WKWebView, 05c D2 Diagrams draws all
five diagrams in Preview with no diagram error, no CSP violation and no
script error, and 05 Mermaid Diagrams draws its six; the released 2.71.0
server fails all five with the d2.compile error on the same page.
Headless Chrome draws the same five through its module worker.
@adibhanna
adibhanna merged commit 8c7efcb into main Oct 19, 2026
10 checks passed
@adibhanna
adibhanna deleted the release/2.71.1 branch October 19, 2026 02:18
@adibhanna
adibhanna deployed to server-release October 19, 2026 02:20 — with GitHub Actions Active
@adibhanna
adibhanna deployed to server-docker-publisher October 19, 2026 02:22 — with GitHub Actions Active

This branch was successfully deployed

2 active deployments
server-docker-publisher — 8c7efcbe Deployed Oct 19, 2026 by adibhanna via Build and push multi-arch image #20
server-release — 8c7efcbe Deployed Oct 19, 2026 by adibhanna via draft #19
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