Repository navigation
Release 2.72.0: Task folders and the 2.72.0 browser artifact - #36
Merged
Merged
Conversation
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
marked this pull request as ready for review
October 19, 2026 20:12
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Server 2.72.0, alongside ZenNotes desktop 2.72.0 (ZenNotes/zennotes#963).
34da661Task folders ([Feature request] Alongside "Folders excluded from tasks" option to "Only these folders for tasks" zennotes#962): a vault'stasks.includedFoldersnarrows Tasks to the notes inside the folders it lists, withexcludedFoldersstill 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=1scans 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.bd2cd1fpins web-2.72.0-web.habddb79fb3c63358 (built from ZenNotes/zennotes3792c985, 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.