Skip to content

Release 2.72.0: Task folders and the 2.72.0 browser artifact - #36

Merged
adibhanna merged 2 commits into
mainfrom
release/2.72.0
Oct 19, 2026
Merged

adibhanna merged 2 commits into
mainfrom
release/2.72.0

Conversation

@adibhanna

@adibhanna adibhanna commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Server 2.72.0, alongside ZenNotes desktop 2.72.0 (ZenNotes/zennotes#963).

  • 34da661 Task folders ([Feature request] Alongside "Folders excluded from tasks" option to "Only these folders for tasks" zennotes#962): a vault's tasks.includedFolders narrows Tasks to the notes inside the folders it lists, with excludedFolders still applying inside them, byte for byte the rule in shared-domain's tasks-excluded-folders.ts. TasksSettings, normalizeTasksSettings and cloneSettings carry the new list (the clone rebuilds Tasks field by field), both scans honor it, ?includeExcluded=1 scans past both lists, RenameFolder repoints both lists, and the walker checks the lists before reading a file. Tests through New, GetSettings, ScanTasks, ScanTasksForPath and RenameFolder; live on a scratch vault, /api/tasks listed only the Task folder's task and a settings POST kept the list.
  • bd2cd1f pins web-2.72.0-web.habddb79fb3c63358 (built from ZenNotes/zennotes 3792c985, the v2.72.0 release commit: the web app's Task folders row and folder menu item, the Cloud error copy, the keyboard pickers, quote-keeping blocks, pasted screenshot names) and moves release.json to 2.72.0. vendorHash stays: no Go dependency moved.

Local: prepare-web verified the archive (580 files, SHA-256 matches its provenance); go vet, go test ./... and go test -tags=embed_web ./... pass; a release-like build on a scratch vault reports v2.72.0, serves the app, answers 401 without the token and lists only the Task folder's tasks.

The server half of ZenNotes/zennotes#962. A vault's `tasks.includedFolders`,
the Task folders, narrows Tasks to the notes inside the folders it lists.
Empty means the whole vault, and `excludedFolders` still applies inside them,
byte for byte the rule in shared-domain's tasks-excluded-folders.ts.

TasksSettings gains IncludedFolders, and normalizeTasksSettings and
cloneSettings carry it: the clone rebuilds Tasks field by field and would have
dropped the new list on every GetSettings, as it once dropped Tasks itself.
isPathExcludedFromTasks takes the Task folders, both scans honor them, and
IncludeExcluded (`?includeExcluded=1`) scans past both lists. RenameFolder
repoints both lists next to the folder icons and colors, because a renamed
Task folder left behind would match nothing and empty Tasks. The walker now
checks the lists before reading a file: with Task folders set, most of a vault
is outside them.

The web app's Settings row and folder menu arrive when this server pins a
browser artifact built from app-core with #962.

Tests mirror the shared-domain cases and go end to end through New,
GetSettings, ScanTasks, ScanTasksForPath and RenameFolder. Live on a built
server with a scratch vault: /api/tasks listed only the Task folder's task,
?includeExcluded=1 listed all three, and a settings POST that changed only
the favorites kept includedFolders on disk.
The browser app moves to web-2.72.0-web.habddb79fb3c63358, built from
ZenNotes/zennotes 3792c985, the v2.72.0 release commit. It carries Task
folders (ZenNotes/zennotes#962) on the client side: the Settings row,
"Use as Task Folder" in the folder menu, and both lists following a
renamed folder. It also brings Cloud errors worded as what happened and
what to do, keyboard icon and color pickers with dialogs holding panel
keys (#960), quote and callout markers kept by new blocks (#961), and a
pasted screenshot named for when it was pasted (#775).

The server's half of Task folders is 34da661, already on this branch:
tasks.includedFolders in vault.json, read by /api/tasks and
/api/tasks/for, kept through a settings write and moved with a renamed
folder. No route, header or Go dependency moved, so vendorHash stays.
release.json moves to 2.72.0, back in step with the desktop.

Local: prepare-web verified the draft archive into a clean web/dist (580
files; the archive's SHA-256 matches its provenance). 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.72.0, serves
the app (200), answers 401 without the token, and with a Task folder set
in vault.json lists only the tasks inside it; the served bundle carries
"Use as Task Folder".
@adibhanna
adibhanna marked this pull request as ready for review October 19, 2026 20:12
@adibhanna adibhanna changed the title Release: server 2.72.0 with Task folders Release 2.72.0: Task folders and the 2.72.0 browser artifact Oct 19, 2026
@adibhanna
adibhanna merged commit bd2cd1f into main Oct 19, 2026
10 checks passed
@adibhanna
adibhanna deleted the release/2.72.0 branch October 19, 2026 20:19
@adibhanna
adibhanna deployed to server-release October 19, 2026 20:21 — with GitHub Actions Active
@adibhanna
adibhanna deployed to server-docker-publisher October 19, 2026 20:23 — with GitHub Actions Active

This branch was successfully deployed

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