Skip to content

Release: server 2.56.0 with the vault display name, on the 2.56.0 browser artifact - #4

Merged
adibhanna merged 2 commits into
mainfrom
vault-display-name
Sep 24, 2026
Merged

adibhanna merged 2 commits into
mainfrom
vault-display-name

Conversation

@adibhanna

Copy link
Copy Markdown
Contributor

Server 2.56.0: the vault display name (f6374ce, ZenNotes #692) and the pin of the published browser artifact web-2.56.0-web.h377717cfb31ad477 (desktop release commit 2c3dd065), with release.json at 2.56.0. No Go dependency moved, so the vendor hash stays.

What self-hosters get: a vault named from the desktop (Settings → Vault → Vault name, or Rename Vault…) keeps its displayName through a web client's settings save, since the settings struct now knows the field and normalizes it exactly as the desktop does, and GET /api/vault answers with that name, so the web app and a desktop remote workspace show it. The 2.56.0 browser bundle also brings the client-side fixes that need no server change: Settings search reaching every setting, calendar tasks joining the note's Tasks section, a task's code block staying under its text in Preview, and a clean undo history when the open note changes on disk.

Verified locally with Go alone: prepare-web from the manifest URL, vet, package tests, the embedded bundle test, an embedded build with one bundled module script and no inline script, and a standalone run on a scratch vault next to the 2.55.0 binary (which reads and writes the same vault and drops displayName on a settings save, the gap this release closes). The release itself is cut by the Prepare server release workflow from the merge commit, then the draft is verified and published, and the Docker image is pushed from the tag.

… vault (ZenNotes #692)

ZenNotes 2.56.0 lets a vault carry a display name in vault.json
(`displayName`): what the sidebar header, the vault switcher and the
title bar call it, distinct from the folder's name on disk, so several
`docs/` folders can each go by their project's name. The desktop app
reads and writes it; this server had to learn it too, for two reasons.

The settings struct is strict: a key it does not know is gone after the
next SetSettings, and the web client saves everything it read, so a
desktop-written name would have vanished the first time a web user
toggled a favorite (the #446/#379 round-trip rule). DisplayName is now
a first-class field, normalized by a byte-for-byte mirror of
shared-domain's normalizeVaultDisplayName (controls dropped, whitespace
collapsed, trimmed, cut at 64 UTF-16 units without splitting a
surrogate pair), and omitted when empty so a cleared name leaves no
stub behind.

And Info(), which GET /api/vault answers with, prefers the display name
when there is one, so the web client and a desktop remote workspace
show the same name the local app does. It reads through the settings
cache, one stat once the file has been parsed.

Tests mirror the TypeScript cases one for one, plus a round trip
through Set/GetSettings with Info before, after and after clearing.
The browser bundle is the published `web-2.56.0-web.h377717cfb31ad477`
artifact, built from the desktop 2.56.0 release commit `2c3dd065` with
a clean tree; the manifest here is that release's manifest byte for
byte, so prepare-web verifies the archive against it. That bundle reads
and writes the vault display name this server learned in `f6374ce`, so
a self-hosted vault named from the desktop keeps its name through a
web client's settings save and the web app shows it (ZenNotes #692).
It also carries the 2.56.0 client fixes that need no server change:
Settings search, the calendar task placement, the task code block in
Preview and the undo history after a note changes on disk.

release.json moves to 2.56.0. The Go vendor hash is unchanged because no
Go dependency moved. Verified with Go alone: prepare-web from the
manifest URL, vet, the package tests, the embedded bundle test, an
embedded build whose index.html carries one bundled module script and
no inline script, and a standalone run on a scratch vault next to the
2.55.0 binary, which reads and writes the same vault and drops the
display name on a settings save, the gap this release closes.
@adibhanna
adibhanna merged commit 62100d8 into main Sep 24, 2026
10 checks passed
@adibhanna
adibhanna deleted the vault-display-name branch September 24, 2026 23:00
@adibhanna
adibhanna deployed to server-release September 24, 2026 23:02 — with GitHub Actions Active
@adibhanna
adibhanna deployed to server-docker-publisher September 24, 2026 23:04 — with GitHub Actions Active

This branch was successfully deployed

2 active deployments
server-docker-publisher — 62100d86 Deployed Sep 24, 2026 by adibhanna via Build and push multi-arch image #6
server-release — 62100d86 Deployed Sep 24, 2026 by adibhanna via draft #5
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