Skip to content

Release 2.50.4 - #787

Merged
adibhanna merged 6 commits into
mainfrom
v2.50.4
Sep 15, 2026
Merged

adibhanna merged 6 commits into
mainfrom
v2.50.4

Conversation

@adibhanna

Copy link
Copy Markdown
Contributor

ZenNotes 2.50.4

Four community reports from @uNyanda plus one reading-view fix found on the way.

Docs: in-app help updated; website mirror pushed with the release.

The [[ picker matched the last "[[" on the line without checking whether
those brackets sat inside a code span or code block. With Auto-close
Markdown on, typing "[[" inside backticks and deleting the auto-inserted
"]]" left an open "[[" in the code span, and every keystroke after the
closing backtick re-opened the picker for it.

The [[, [[Note# and [[Note^ sources now resolve the syntax tree at the
opening brackets and stand down inside InlineCode, FencedCode and
CodeBlock, matching the renderer's rule for what counts as literal text
(#248). A fresh [[ typed in prose afterwards opens the picker as before.

Closes #783
…rd (#786)

A task forwarded Note 1 -> Note 2 -> Note 3 leaves a "[>]" record in each
note it passed through. The Status board (via groupTasks) and the custom
@field boards already left those records out, but the Priority and
Folder boards only skipped done cards, so the same task showed as three
cards, and "[-]" cancelled tasks leaked onto those two boards the same
way.

One rule now decides what is a card on any board: open work only, so
"[x]", "[>]" and "[-]" all stay off. The forwarded record is the trail a
moved task leaves behind, already a closed state; the live copy in the
destination note is the one card. The Tasks list keeps its separate
Forwarded group.

Closes #786
)

Renaming a note already rewrote its inbound wikilinks; renaming or
moving an asset left every "![[assets/old.png]]" pointing at a file that
no longer existed.

The renderer's asset resolver moves to shared-domain and now reports
which reading found a reference (note-relative, vault-root, or unique
basename). A new rewriter walks a note body for "![[embed]]" / "[[link]]"
wikilinks and "![](href)" / "[](href)" destinations, resolves each the way
the renderer does, and re-targets the ones that pointed at the asset in
the author's own style: a note-relative href stays relative, a vault-root
path stays rooted (keeping a spelled-out leading slash), a bare name stays
bare while it still names exactly one asset and otherwise becomes the
full path, and a wikilink never gains ".." segments. Aliases, size hints,
fragments, queries, percent-encoding, angle brackets and link titles
survive; code is skipped.

Desktop renameAsset/moveAsset and the Go server's RenameAsset/MoveAsset
snapshot the asset and note lists before the file operation and rewrite
only the notes that referenced the file (hasAttachments, assetEmbeds, or
a file-shaped wikilink that resolves to it). The renderer gains
renameAsset/moveAsset store actions that flush dirty buffers first and
re-list assets and notes after, used by the sidebar menu and drag-onto-
folder, the note list, the Assets view and the reading view's image menu.

Closes #785
… last save (#784)

{{date}} freezes the creation date into the note. Three new variables
stay in the note on purpose and keep reading its modification time:
{{modified_date}}, {{modified_time}} and {{modified_datetime}}, each
optionally with the same :FORMAT tokens {{date:FORMAT}} takes. The
editor's live preview renders them as the file's last-saved time
(revealing the raw token under the caret, leaving code literal, and
refreshing when the note list's updatedAt moves), and the reading view
substitutes them before rendering. renderTemplate leaves them untouched,
which the unknown-token pass-through already did; the template editor
offers them after {{.

The raw file keeps the token, so an "Updated:" line in frontmatter stays
current without anyone editing it. Help text documents the three tokens
and, from the previous commit, asset rename and move link rewriting.

Closes #784
The reading view's right-click asset menu (Open, Rename, Move, Duplicate,
Copy as Embed, Copy Path, Open as Reference, Reveal, Delete) finds its
host through [data-local-asset-kind][data-local-asset-url]. PDF, audio
and video embeds and attachment chips carried both since 1.1.0; the image
figure only stamped the URL on the <img>, so an image was the one embed
with no menu. Tag the figure like the others.
@adibhanna
adibhanna merged commit 850cf5f into main Sep 15, 2026
7 checks passed
@adibhanna
adibhanna deleted the v2.50.4 branch September 15, 2026 23:38
@adibhanna
adibhanna restored the v2.50.4 branch September 15, 2026 23:39
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