Repository navigation
Release 1.34.0 (build 50) - #79
Merged
Merged
Conversation
uNyanda (Discord, 2026-10-27) saw every daily, weekly and monthly note twice in the drawer, and deleting one copy took the other with it. The drawer's top group has Daily, Weekly and Monthly Notes rows that open those folders, and the Notes list below lists every folder core's getBrowseDirectory hands it, those three included, marked only by a calendar icon. One folder, two rows. The layout fix for ZenNotes/zennotesandroid#17 dealt with a real second folder on disk and never touched this. The Notes list now leaves out the folders those rows open, which is how the desktop sidebar has drawn them since 2.4.0 (periodic notes in Quick Access, their folders pruned from the tree). A folder holding nothing but periodic folders (Journal around Journal/Daily) goes too, so the list never offers a folder that opens onto nothing; one holding a note, a file, a database or a folder of its own keeps its row. A hidden folder reached through a note's breadcrumb shows everything in it, or it would read "No notes here yet". Nothing moves on disk, a note in a periodic folder that is not periodic is still one tap away through its row, and turning a kind off brings its folder back to the list. Same change as the Android shell's fix/drawer-periodic-twice. Tests: drawer-folders.test.ts (8 cases). typecheck, boundaries:check and 313 tests pass. In this build at phone size the Notes list went from Daily Notes, Monthly Notes, Projects, Weekly Notes to Projects alone, the Daily row still opens its folder, and with the daily folder at Journal/Daily the list hides Journal while its breadcrumb opens it onto Daily. The Android build on an API 36 emulator shows the same.
…leave you on the note
The reference pane (a pinned note or PDF) is a full-screen sheet on
phones like the other right panels, but it lives outside EditorPane and
never hears zen:close-right-panel. Done sent that event and the sheet
stayed, while EditorPane took it as a cue to focus the note underneath,
so the keyboard came up behind the sheet. Its header got the injected
back chevron, which went Home; the pin stays with the note, so reopening
the note brought the sheet back. Only the x, which unpins, got out. Dave
reported it on Android (Discord, 2026-10-27); an iPhone 17 Pro simulator
showed the same.
closeRightPanel() hides the reference pane when it is showing, through
core's Hide Reference Pane (ref.toggle, the pane's own square button),
which keeps the pin; otherwise it sends the event as before. Done and the
reference sheet's chevron ("Back to the note") use it. The reference pane
renders after the editor panes, so it is the one on top. The same change
as zennotesandroid fix/pdf-embed.
ref.toggle sees a pin made for one note only with the core from
ZenNotes/zennotes fix/pdf-embed-phones; with core 2.77.0, Done over a
PDF pinned from its card still does nothing. This shell keeps showing a
PDF in the pane: the WebView draws it (navigator.pdfViewerEnabled).
Checked on the simulator with that core: Done and the chevron each closed
the sheet onto the note, and the card showed the whole file name with its
badge under it, clear of Preview. typecheck and 305 tests pass.
…he Home Screen The iPhone half of the Calendar widget Dave asked for (Discord, 2026-10-27): the Calendar sheet's month, with its writing dots, open-task marks, week numbers and today ring, above the selected day's tasks with a box to tick on each. WidgetKit draws no scrolling list, so the list pages instead. The large size lists the selected day and its arrows page by day; iOS 27's extra-large portrait size (4x6) lists the week and pages by week. Past what fits, "+N more" opens the Calendar. As in the app on a touch screen, a tap selects a day and a tap on the selected day opens its note; the arrows page months. Day, Week and "Add a task for ..." open the Calendar in the app on that day, the last with the cursor in its field. On iOS 15 and 16, which have no widget buttons, every part is a link into the app. A widget extension cannot reach the vault (Documents, the iCloud container or a bookmarked folder), so a tick never writes the note here. The tap is logged in the App Group (WidgetActionLog), drawn ticked at once, and applied the next time the app runs, through core's setTaskChecked, in order, retrying what cannot land yet. The next snapshot's actionsAck tells the extension which taps it may forget. The box is a Button(intent:) with the wanted state baked in. A widget Toggle left a SetValueIntent's value unset, and on iOS 27 it kept its in-between look over the reloaded row, so the tick never showed. Every ISO date key goes through one Gregorian calendar: a Buddhist or Japanese calendar setting made every key miss. The intents and the log are compiled into the app as well (the plugin reads and prunes the log); tooling/add-widget-extension.rb adds the new files to both targets, and project.pbxproj is its output. The shared JS is the same as the Android shell's: widget-calendar.ts, the publisher and log in widgets.ts, the zennotes://calendar, day and week links, calendar-request.ts and MobileShell's sheet. Needs core with getCalendarWidgetData and setTaskChecked (ZenNotes/zennotes 3fc40107). It was built and checked on a rehearsal core adopted from that tree, whose vendor files are not part of this commit; adopt the published core before release. On a scratch iOS 27 simulator (iPhone 17 Pro): - The widget shows in the gallery and on the Home Screen, matching the sheet. - A tick is logged and shown ticked at once; opening the app, cold or warm, wrote it into the note, CRLF notes included, and emptied the log. - Day select and week paging work. - The large size and iOS 15/16 were not run. typecheck, 310 tests and an App build pass.
… month and its tasks to tick
…ne's viewer and note covers Core core-2.78.0-core.h0bc32cbd73a78fac, built by CI from ZenNotes/zennotes 52ab86fd (the v2.78.0 release commit); core:adopt checked SHA-256, SHA-512, packed versions and clean-source provenance. Core 2.78.0 supplies what this shell's Calendar widget draws and takes its ticks back (getCalendarWidgetData, setTaskChecked; the shell half arrived with feat/calendar-widget), opens a PDF in the phone's own viewer where the WebView has none and lets Done and Back close a PDF pinned as a reference (the shell half arrived with fix/pdf-embed), and keeps the PDF card's name clear of Preview at phone width. Notes show their covers, Mermaid labels typeset $$ math and stay readable on any fill (Pele 1.12.0), ticking a task in a note saved with Windows line endings ticks the right one, and the Themes picker no longer previews a theme nobody chose. No new bridge method; the bridge contract adds the portable key noteCoverPlacement. Desktop vault.ts is unchanged since 2.77.0.
adibhanna
marked this pull request as ready for review
October 27, 2026 21:09
CI failed on release/1.34.0: "'systemExtraLargePortrait' is unavailable in iOS" in CalendarWidget.swift. `#available(iOS 27.0, *)` guards the run, not the build, and the extra-large portrait size exists only in the iOS 27 SDK; CI builds with Xcode 26.6 (iOS 26.5 SDK), which cannot name it. The release archive builds with Xcode 27.1, which is why it built there. The size is now behind `#if compiler(>=6.4)`, Swift 6.4 being Xcode 27.1's. A build from an older toolchain offers the large size alone; the release build, from Xcode 27.1, keeps the week view on iOS 27 exactly as before.
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 iPhone 1.34.0 (build 50), on core 2.78.0.
feat/calendar-widget,264aaa5): the month with writing dots, open-task marks, week numbers and the today ring, above the selected day's tasks with a box to tick on each. The large size pages by day; iOS 27's extra-large portrait size lists the week. A tick is logged in the App Group, drawn ticked at once and applied through core'ssetTaskCheckedthe next time the app runs; on iOS 15 and 16 every part is a link into the app.fix/pdf-embed,cb378fe).fix/drawer-periodic-twice,18da446).16157cc,core-2.78.0-core.h0bc32cbd73a78facfrom ZenNotes/zennotes52ab86fd): note covers,$$math in Mermaid labels and Pele 1.12.0, the PDF card at phone width, ticking tasks in CRLF notes, the Themes picker fix. No new bridge method; the contract adds the portable keynoteCoverPlacement.5d3ed1c): 1.34.0, build 50 in all six build configurations.Validation:
boundaries:check, typecheck (npm run upstream), 318 tests andnpm run syncon the adopted core. The widget was walked on an iOS 27 simulator when built.