Repository navigation
Release 1.1.51 (versionCode 54) - #144
Merged
Merged
Conversation
…ban cards and Open as Gallery Core core-2.80.0-core.hc5a4589d040cd0da, built by CI from ZenNotes/zennotes 31520814, the desktop v2.80.0 tag. core:adopt checked SHA-256, SHA-512, packed versions and clean-source provenance. The lock keeps main's dev flags; only the three core entries change. What it brings the phone: Kanban swimlanes (View, Lanes), subtasks folded into their card with a progress bar, WIP limits from a column's menu, Hide empty tasks across Tasks, the Calendar and the widgets' data, and a template folder in Settings, Templates (#1024). The template folder lives in vault.json as templates.folder, and the phone's own vault code writes vault.json and scans tasks and text itself, so it mirrors desktop vault.ts by hand: a save from this device keeps the folder, normalized by shared-domain's normalizeTemplateFolderSettings as desktop does (folder only; an unusable value leaves no stub); a folder rename or move carries it along (rewriteTemplateFolderForRename); the task scan and a single note's rescan go through tasksFolderListsForSettings, so a template's checkboxes stay out of Tasks even inside a Task folder; text search never walks the folder. The capabilities say supportsTemplateFolder, and a self-hosted vault keeps answering with its server's flag. Template notes reach the picker through core, which reads them with readNote. Subtasks (#1028) need nothing of the shell's: the scan already calls shared-domain's parseTasksFromBody, which now sets parentId, and the scan's cache is in memory only, so no stale entry without it survives an update. A test runs the shell's scan over the core's task-subtasks.json fixture, fresh and from the cache. A folder's sheet in the drawer gains Open as Gallery, through core's new openBrowseFolderGallery (desktop c82c334d); a database's sheet has none, as on desktop. Core 2.80 also gates the Columns find field and a callout pick on hostOpensNotesToRead itself; read-open.ts keeps its own guards as a second line, and phone-focus-guards.test.ts now holds core to the new gates. gallery-phone.test.ts and phone-focus-guards.test.ts match the iPhone shell's byte for byte. Bridge contract: no new method; VaultSettings.templates, VaultTask.parentId, TemplateSource 'folder', the portable keys hideEmptyTasks, kanbanWipLimits and kanbanLanes, and Cloud's refused_paths. No new desktop-only palette command: the four Lanes commands and Toggle Empty Tasks work on a phone. Version stays 1.1.50, versionCode 53.
… down Walking core 2.80.0's board on the release build: opening a note from a Kanban card raised the soft keyboard over it. Core opens the card's note from a tap on the card, its title, its open arrow and now a subtask line, and follows the open with an editor focus, as it does for the Tasks list. The list's rows arm read-open.ts's hold; the board's cards never did. read-open.ts treats a tap anywhere on a card ([data-kanban-task-id]) as an open to read. The card's checkboxes, its subtask bar and the move handle never focus the editor, so the hold a tap on them arms lapses unused, and the next touch releases it as before. The click listener and the other guards are unchanged. Same file in both phone shells. Tests: core still opens the note from the card, its arrow and a subtask line (a change there fails at the next adoption), and the cards arm the hold. On the release build: a tick from the card, then the arrow, opens the note with the keyboard down.
…#1004) Core 2.80.0's sync coordinator sets a path Cloud refuses aside and sends the rest of the batch (desktop 3c8fb850), but it can tell which path Cloud refused only from the 422's errors keys (mutations.3.path), and the phone's transport dropped them: a refused path still failed every run, as the desktop commit noted the shells would until they forwarded them. cloud-sync-client.ts keeps the answer's errors object under details.errors (errorDetails, desktop's asErrorPayload). And since the phone sends one batch as several requests (inline posts and direct uploads above 5 MiB), mutateWithMobileDirectUploads now throws CloudSyncPathRefusedError on a refusal, with the refused positions in the batch it was given and what the earlier requests applied, so the coordinator commits that and resends only what went unanswered. A direct upload refused for its own path is named as that mutation's path. A port of DesktopCloudSyncApiClient.mutate; any other validation failure still stops the run. The run summary's refused_paths comes from shared-domain's CloudSyncHostService, which the phone already uses. Tests: a 422 keeps its field errors and names the refused index; an inline refusal after a direct upload, and a direct upload refused for its path after an inline request, are named by their place in the batch with what was applied; a refusal of any other field throws the original error.
…ones, no white scrollbar corner Three things the release-build walk of core 2.80.0's board found at phone width, all in mobile.css. A card's subtask bar spans the card with its "1/3 · 33%" at the right end, just above the shell's 30 px move handle in the card's bottom-right corner, which covered the label. The bar now stops 34 px short of the card's edge. The Tasks views' Keys button (core 2.80) replaced the key-hint strips the phone already hides, so it is hidden on the phone layout as well; tablets keep it. Where its sheet does show at a narrow width, its two columns of key chips in a 92vw popover shrank the chips below their text: one group to a row, chips at their own width. Same rules as the iPhone shell. Core styles the scrollbars but not the corner where two meet, which Chromium paints white; the lanes board scrolls both ways, so a white square sat at its bottom-right corner. The corner is transparent now. Tests: each rule, and the core markup each one holds to (the progress button, the Keys button and sheet markers, the sheet's grid and chips).
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.
ZenNotes for Android 1.1.51 (versionCode 54), on core 2.80.0 (
core-2.80.0-core.hc5a4589d040cd0da, from ZenNotes/zennotes31520814, the v2.80.0 tag).8bb4b93): Kanban swimlanes (View, Lanes), subtasks folded into their card with a progress bar, WIP limits from a column's menu, Hide empty tasks across Tasks, the Calendar and the widgets' data, and a template folder in Settings, Templates (Feature Request: Support Custom Template Folders zennotes#1024 to #1028). Mirrored by hand in the shell's vault code: vault.jsontemplates.foldersurvives a save from the phone (shared-domainnormalizeTemplateFolderSettings), follows a folder rename or move (rewriteTemplateFolderForRename), stays out of the task scan and a note's rescan (tasksFolderListsForSettings) and out of text search.parentIdcomes from the shared parser the scan already calls; a test runs the scan over the core'stask-subtasks.jsonfixture, fresh and from the in-memory cache. A folder's sheet in the drawer gains Open as Gallery (openBrowseFolderGallery).phone-focus-guards.test.tsholds core to its newhostOpensNotesToReadgates;read-open.tskeeps its guards as a second line.b545653): opening a note from a card (the card, its title, its arrow or a subtask line) raised the keyboard;read-open.tstreats a card tap as an open to read. Same file as the iPhone shell. Found by the walk.d5d9038, Cloud sync error zennotes#1004): the transport keeps a 422'serrorsunderdetails.errors, and the inline/direct-upload split throwsCloudSyncPathRefusedErrorwith batch positions and what was applied, a port of desktop'sDesktopCloudSyncApiClient.mutate.45aa4ee): a card's subtask bar stops short of the move handle (the handle covered "1/3 · 33%"); the Tasks Keys button is hidden on phones like the hint strips it replaced, and its sheet is one column where it shows; the lanes board no longer draws a white scrollbar corner. Found by the walk.8ac8917): 1.1.51, versionCode 54.Validation:
npm run upstream, 456 tests, build and sync. The release build (upload-keyassembleRelease) was walked on a throwaway API 37 emulator (WebView 145) with generic sample data, recording the clips: lanes and folding, subtasks ticked from the card, a WIP limit set and cleared, empty tasks in Tasks, the Calendar sheet and the Today widget, the template folder from Settings to a new note and back to Tasks, and Open as Gallery. The walk found the four phone issues above; each was fixed with a test and walked again on the final build.