You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
14 merges (18 pull requests) since v2.7.6 went out on 2026-08-27. All of them
are fixes and features this time — no CI, no refactors — and six of them close
issues people reported.
One thing is worth reading before you cut, and it is the same thing as last
time: Windows signing (#562). This release is the one it should land in,
and the section below says why and what it takes.
Sign Windows first, then cut
Where #562 stands: you asked on 26 Aug how to sign both the portable and the
installer through SignPath, and the answer is in the thread — one artifact
configuration signs all four exes from one ZIP. Under it is the list of five
things to do in app.signpath.io and the four strings I need back (organization
id, project slug, signing policy slug, artifact configuration slug). The
workflow change on my side is one pull request, written the day the strings
arrive. Nothing else in #562 blocks this.
Why 2.7.7 rather than 2.7.8:
Do not clear the temporary files #722 is waiting on it. A user on Windows has an empty file re-created
at the old path 0.2–2 s after every rename, in document folders and next to
Markpad's own settings. The log put it outside Markpad — something on that
machine treats an unsigned process specially — and I closed it telling them
to try again on the first signed build. If 2.7.7 ships unsigned, that is
one more release they cannot test.
The release notes change with it. The SmartScreen [!NOTE] in the
release template comes out in the same pull request that wires the
signing, so it does not have to be remembered separately.
If SignPath Foundation's approval takes longer than a week, cut 2.7.7
anyway. Everything below is finished and tested; nothing in it should wait
on a third party's queue. But if the approval is days away, the signed build
is worth those days.
macOS is unchanged: signed with the identity #707 added in 2.7.5, not
notarized, and not part of this ask.
Features
An imported theme colours the preview, not only the editor (An imported theme colours the preview, not only the editor #736) —
closes Custom CSS #682. A VS Code theme's tokenColors used to stop at the splitter;
the seven constructs it names now reach the preview through CSS variables.
A theme that names none of them renders exactly as before.
Once signing is wired, or a week from now, whichever is first:
npm run release 2.7.7
then commit, tag, push, dispatch Build and Release, and publish the draft
once the assets look right. Publishing is what fires Chocolatey and the Snap
Store. With SignPath wired the Windows job pauses until you approve the
signing request; nothing is uploaded before that.
Summary
14 merges (18 pull requests) since v2.7.6 went out on 2026-08-27. All of them
are fixes and features this time — no CI, no refactors — and six of them close
issues people reported.
masteris green: 1627 tests pass (1029npm test, 434 vitest, 164 cargo).One thing is worth reading before you cut, and it is the same thing as last
time: Windows signing (#562). This release is the one it should land in,
and the section below says why and what it takes.
Sign Windows first, then cut
Where #562 stands: you asked on 26 Aug how to sign both the portable and the
installer through SignPath, and the answer is in the thread — one artifact
configuration signs all four exes from one ZIP. Under it is the list of five
things to do in app.signpath.io and the four strings I need back (organization
id, project slug, signing policy slug, artifact configuration slug). The
workflow change on my side is one pull request, written the day the strings
arrive. Nothing else in #562 blocks this.
Why 2.7.7 rather than 2.7.8:
at the old path 0.2–2 s after every rename, in document folders and next to
Markpad's own settings. The log put it outside Markpad — something on that
machine treats an unsigned process specially — and I closed it telling them
to try again on the first signed build. If 2.7.7 ships unsigned, that is
one more release they cannot test.
whatever 2.7.7 is. Unsigned, that is one more SmartScreen dialog (SECURITY: the windows installer of the new version has a trojan virus #334,
Windows portable release flagged by Microsoft VirusTotal heuristic detection #466) delivered to the 91% of downloads that are Windows. Signed, it is
the release where that dialog stops.
[!NOTE]in therelease template comes out in the same pull request that wires the
signing, so it does not have to be remembered separately.
If SignPath Foundation's approval takes longer than a week, cut 2.7.7
anyway. Everything below is finished and tested; nothing in it should wait
on a third party's queue. But if the approval is days away, the signed build
is worth those days.
macOS is unchanged: signed with the identity #707 added in 2.7.5, not
notarized, and not part of this ask.
Features
closes Custom CSS #682. A VS Code theme's
tokenColorsused to stop at the splitter;the seven constructs it names now reach the preview through CSS variables.
A theme that names none of them renders exactly as before.
ref Multiple tabs with same filename get folder slug appened #727. Each carries its containing folder, dimmed, and one more folder
only when that one is still shared — and only while the name is actually
ambiguous. Settings › Appearance ›
Show Folder for Duplicate Names, on by default.
\ce{}chemistry renders (mhchem registers on the KaTeX the preview renders with #747) — closes Feature Request: Support mhchem syntax\ce{}for chemical equations #745. mhchem was alreadyloaded, but onto the CommonJS copy of KaTeX rather than the one the
preview renders with, so
$$\ce{...}$$was a parse error. The built appnow carries one KaTeX instead of two. The label on a reaction arrow is no
longer clipped (The label on an mhchem arrow is no longer clipped #750).
Fixes
closes Bug-typing jitter #724. Monaco's hidden textarea held a page of text during
composition and WebKit scrolled it 3 px short on every keystroke. A
build-time patch makes the overlay hold one line; proposed upstream as
Editor textarea: short content unless a screen reader is attached (fixes IME jitter in WebKit) microsoft/vscode#333909 and removed when a Monaco release carries it.
The clipboard handle was dropped when the command returned, and on X11 the
selection dies with its owner unless a clipboard manager happens to be
running. Cut was the expensive case: the text was deleted and nothing was
saved.
The editor lands where the preview does, and the outline follows from the same line #751) — closes Bug: TOC sidebar, source editor and rendered preview cannot sync scroll position mutually #744. A click on the outline moved only the preview when
split view was entered from reading mode; following the editor, the
outline was one heading behind.
preview host per tab, all mounted, only the active one displayed — the
same shape as the Monaco models. Re-showing a tab changes nothing, so the
visible reload, the motion and the reading position that moved after it
had been restored are gone together. Four follow-ups landed with it
(fix(tabs): the four tab-switch follow-ups (#732, #733, #734, #735), retargeted to master #737: fix(tabs): the first read of a large file measures its own tab, not the one on screen #732 fix(tabs): the preview's in-page back/forward stacks belong to the tab, not the window #733 A tab dragged into another window opens where its reader left it #734 fix(tabs): a tab dragged out of an editor arrives where the reader left it #735) — a large file's first read measures its own
tab, the in-page back/forward stacks belong to the tab, and a tab dragged
between windows arrives where its reader left it, in either direction.
across a window-state snapshot and a cross-window transfer.
up with (fix(preview): a cold start restores the reading position against the layout it ends up with #740). KaTeX, highlight.js and Mermaid land after the first
document, and the restore ran before them — measured off by up to 812 px on
the sample documents, now within 0.8 px.
One writer decides which Monaco theme the editor wears #742). It has not since perf(preview): replace the blocks that changed instead of the article #632 (2.7.4): the diagram was found by
pre code,and a drawn diagram has no
<pre>left. The theme it was drawn with isnow kept beside it.
soft-line anchor from fix(preview): make split-view scroll sync line-accurate #541 sat between
<br>and its newline, which turnedthe newline into a space.
To cut it — @alecdotdev
Once signing is wired, or a week from now, whichever is first:
then commit, tag, push, dispatch Build and Release, and publish the draft
once the assets look right. Publishing is what fires Chocolatey and the Snap
Store. With SignPath wired the Windows job pauses until you approve the
signing request; nothing is uploaded before that.