Skip to content

Release 1.16.0 (build 31): adopt core 2.60.0 - #37

Merged
adibhanna merged 3 commits into
mainfrom
chore/core-2.59.0
Oct 1, 2026
Merged

adibhanna merged 3 commits into
mainfrom
chore/core-2.59.0

Conversation

@adibhanna

@adibhanna adibhanna commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Adopt core-2.60.0-core.hb0d0b54f320a8e3f from desktop release source 158293947e451f2a88011ddf647517c847cc0a76 (ZenNotes 2.60.0). This PR first adopted 2.59.0; the new commit moves it to 2.60.0 instead of opening another PR.
  • Update the three vendored archives, provenance manifest, file dependencies, lockfile, and README together (npm run core:adopt).
  • What 2.60.0 brings to the shared core: wikilink resolution and backlink counts read lookup tables built once per notes list instead of scanning every note per link (Performance: synchronous backlink counting blocks note switches for ~5 seconds in a 6.6k-note vault zennotes#880, about 1 s to under 0.1 s per note switch in a 6.5k-note vault on desktop, identical results), the in-app manual's CLI cards, and Open CLI Settings targeting. The desktop-only CLI updater lives in the Electron main process and adds only optional bridge methods, so the mobile bridge needs no change.

Verification

  • Boundary artifact workflow passed: https://github.com/ZenNotes/zennotes/actions/runs/36887215873.
  • SHA-256, SHA-512, packed package versions, clean-source provenance, and the public core boundary verified by tooling/adopt-core.mjs.
  • TypeScript (npm run upstream) and all 125 tests passed.
  • Production web build and Capacitor iOS sync passed.
  • Xcode built the native app and test targets for an iPhone 17 Pro Max simulator on iOS 27.
  • DeepLinkUITests and FavoriteUITests (scheme AppCloudUITests): all 3 tests passed.
  • Production audit passes the high-severity gate; it reports one existing low-severity DOMPurify advisory (GHSA-p98j-92pf-mc4p).

Review notes

The core release is a draft pending maintainer publication after consumer validation. Archives are vendored, so clean installs and CI work without draft-release access. The branch keeps its 2.59.0 name.

@adibhanna adibhanna changed the title chore(mobile): adopt verified core 2.59.0 chore(mobile): adopt verified core 2.60.0 Oct 1, 2026
Align the iPhone shell with the shared packages from desktop release commit e59e141b. Verify all three archives against SHA-256, SHA-512, packed versions, and clean-source provenance before updating the vendor files, dependency pins, lockfile, and README. TypeScript, 125 tests, native compilation, and the three deep-link and favorite simulator tests passed.
Align the iPhone shell with the shared packages from desktop release
commit 15829394 (ZenNotes 2.60.0, core-2.60.0-core.hb0d0b54f320a8e3f),
replacing the 2.59.0 set this branch adopted. tooling/adopt-core.mjs
verified all three archives against SHA-256, SHA-512, packed versions and
clean-source provenance before updating the vendor files, dependency
pins, lockfile and README, and the core boundary check passed.
TypeScript, 125 tests, the production web build and Capacitor iOS sync
passed; Xcode built the app and test targets for an iPhone 17 Pro Max
simulator on iOS 27, and DeepLinkUITests and FavoriteUITests passed
(3 tests).
@adibhanna adibhanna changed the title chore(mobile): adopt verified core 2.60.0 Release 1.16.0 (build 31): adopt core 2.60.0 Oct 1, 2026
@adibhanna
adibhanna merged commit 460e826 into main Oct 1, 2026
1 check passed
renovate Bot added a commit to scottames/copr that referenced this pull request Oct 1, 2026
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [ZenNotes/zennotes](https://redirect.github.com/ZenNotes/zennotes) |
minor | `2.58.0` → `2.60.0` |

---

### Release Notes

<details>
<summary>ZenNotes/zennotes (ZenNotes/zennotes)</summary>

###
[`v2.60.0`](https://redirect.github.com/ZenNotes/zennotes/releases/tag/v2.60.0):
ZenNotes v2.60.0

[Compare
Source](https://redirect.github.com/ZenNotes/zennotes/compare/v2.59.0...v2.60.0)

ZenNotes 2.60.0 keeps its command-line tool up to date on its own, makes
switching notes fast again in large vaults with lots of links, and
bundles CLI 0.6.2 on macOS and Linux.

Released from
[`15829394`](https://redirect.github.com/ZenNotes/zennotes/commit/158293947e451f2a88011ddf647517c847cc0a76)
through [PR
#&#8203;882](https://redirect.github.com/ZenNotes/zennotes/pull/882) on
October 1, 2026. All installers are verified.

#### Features

- **zn updates itself.** For a `zn` installed from Settings → CLI,
ZenNotes checks the latest CLI release once a day and installs it when
it is newer, so CLI fixes no longer wait for a ZenNotes release. Every
release carries a manifest signed with the ZenNotes release key;
ZenNotes checks the signature and the download's checksum and runs the
new `zn` once before switching to it, so a failed or tampered download
never replaces a working CLI, and the previous version stays on disk.
The `zn` a ZenNotes build ships is its floor. Settings → CLI → Updates
shows the installed and bundled versions, has **Check for updates**, and
a switch to be told instead of updating automatically; **Check for zn
Updates…** is in the command palette. Homebrew, Go and manual installs
keep their own installer.
- **Open CLI Settings** in the command palette now opens the CLI page
instead of whichever Settings page was open last.

#### Fixes

- **Switching notes no longer freezes in large vaults.** The status
bar's backlink count used to check every link in the vault against every
note each time you opened a note, which took about five seconds in a
6,577-note vault with 13,672 links. ZenNotes now builds its link index
once and looks the count up, so opening a note, or going back to one
already in a tab, is immediate. Backlink counts and which note a link
opens are exactly as before. Thanks to
[@&#8203;yfernandes](https://redirect.github.com/yfernandes) for the
profile and diagnosis
([#&#8203;880](https://redirect.github.com/ZenNotes/zennotes/issues/880)).
- **CLI 0.6.2 is bundled with the desktop app.** It includes 0.6.1's
fixes: `zn vault list` marks each entry `app` (saved by the desktop app)
or `terminal` (saved by zn), so `zn vault remove`, `zn disconnect` and
`zn use` stop being trial and error. Every command starts without
waiting five seconds on terminals that never answer a background-color
query, help output lines up, and a config file zn cannot read is no
longer overwritten with an empty list. 0.6.2 is the first CLI release
signed by its own release workflow, the manifest this app updates its
managed `zn` from. [CLI 0.6.1
notes](https://redirect.github.com/ZenNotes/tui/releases/tag/v0.6.1),
[CLI 0.6.2
notes](https://redirect.github.com/ZenNotes/tui/releases/tag/v0.6.2).

#### Performance

Click to paint on a vault shaped like the
[#&#8203;880](https://redirect.github.com/ZenNotes/zennotes/issues/880)
report (6,542 notes, 12,973 links), M-series Mac:

|                                 |   2.59.0 | 2.60.0 |
| ------------------------------- | -------: | -----: |
| Switch to another note (median) | 1,077 ms |  77 ms |
| Reopen a note already opened    | 1,077 ms |  61 ms |

Wikilink rendering, link clicks, Atlas and the Connections panel's
wikilink matching use the same index, so they stop scanning the vault
for each link too.

#### For contributors

- `npm run perf:desktop-runtime` can seed wikilinks
(`ZEN_PERF_WIKILINKS_PER_NOTE`, default 0, so default runs seed the same
vault as before) and now times note switches from click until the note
is on screen, with a `note switch wall p50` budget of 150 ms. The old
`note.open.*` sample finishes before React renders the note, which is
how
[#&#8203;880](https://redirect.github.com/ZenNotes/zennotes/issues/880)
passed the benchmark. On the 2.59.0 code the new metric reads 1,513.6
ms; on 2.60.0, 33.7 ms. The search step sends Ctrl+P instead of Meta+P
on Linux and Windows.
- CLI integration stays at protocol 1; the 0.6.2 pin is that release's
signed `terminal-release.json`, copied byte for byte after verifying.
- Every ZenNotes/tui release now publishes `terminal-release.json` and
an
[`Ed25519`](https://redirect.github.com/ZenNotes/zennotes/commit/Ed25519)
signature (key `zn-release-1`, public key in that repo's
`packaging/release-signing/`), built and verified by
`scripts/releasemanifest` in its release workflow. The manifest uses the
same schema as `apps/desktop/terminal-release.json`, so a desktop
release raises its bundled CLI by copying the verified asset. A change
to the CLI's integration protocol still needs a desktop release.

#### Verification

How to test locally:

1. Build and launch: `npm run build --workspace @zennotes/desktop`, then
`npx electron apps/desktop/out/main/index.js`.
2. Open a large vault with many wikilinks (thousands of notes; links to
missing notes and `folder/Note` links made the old cost worst) and click
between notes in the sidebar, then click one already open in a tab.
Before: a pause of about a second on an M-series Mac, several seconds on
slower machines. After: the note appears at once with the same "N
backlinks" in the status bar.
3. Benchmark: `ZEN_PERF_DESKTOP_NOTES=6577 ZEN_PERF_WIKILINKS_PER_NOTE=2
npm run perf:desktop-runtime`, then read `note switch wall p50`.
4. CLI: update and open ZenNotes once, check Settings → CLI for 0.6.2,
then run `zn --version` and `zn vault list`.
5. CLI updates: with `zn` installed from Settings → CLI, open Settings →
CLI → Updates and press **Check for updates**; it reports `zn 0.6.2 is
the latest release.` The full install path (a build that ships 0.6.0
meeting the signed 0.6.1 release) is scripted in
`docs/releases/v2.60.0/cli-updates/e2e.mjs`.

#### Distribution channels

- AUR 2.60.0-1: `93bddbf`, mirrored in `bac448ab`; tarball SHA-256
`bd0896eb...e910cc` matches GitHub's digest, the bundled CLI folder
check passed, and the package checks passed on `main` and the release
branch.
- Homebrew: tap `0a64194`, mirrored in `2250b001`; both DMG digests
match GitHub's, `brew style` clean.
- Nix: `77ce3667`; hash-generation run
[36896053113](https://redirect.github.com/ZenNotes/zennotes/actions/runs/36896053113)
and the main rebuild
[36896433936](https://redirect.github.com/ZenNotes/zennotes/actions/runs/36896433936)
passed. `desktopHash` is the same tarball digest the AUR pins. [nixpkgs
PR
#&#8203;568334](https://redirect.github.com/NixOS/nixpkgs/pull/568334)
now carries 2.57.0 -> 2.60.0 as one commit on current master and awaits
upstream review.
- `verify:channels -- 2.60.0` passed for Homebrew, AUR, Nix, and all
seven website download routes. GitHub latest is v2.60.0. [Website PR
#&#8203;53](https://redirect.github.com/ZenNotes/website/pull/53) merged
at `7fda07b4`; its main tests and deploy passed, and
zennotes.org/releases, /docs, /tui and /tui/docs serve the 2.60.0
content.
- Self-hosted server: [znserver
2.60.0](https://redirect.github.com/ZenNotes/znserver/releases/tag/v2.60.0)
embeds the 2.60.0 web client (`web-2.60.0-web.h5a4dd1242cf8c2c0`);
Docker `adibhanna/zennotes:2.60.0`, `2.60` and `latest` (amd64 and
arm64).
- CLI: [ZenNotes CLI
0.6.2](https://redirect.github.com/ZenNotes/tui/releases/tag/v0.6.2),
the bundled version, is the first CLI release signed by its own
workflow; Homebrew's `zn` formula points at it.

#### Release validation

- Fresh typechecks passed (7 tasks, no cache); 5,553 unit tests passed,
5 skipped (shared-domain 1,700, app-core 2,859, desktop 994).
- The signed local package (`npm run pack`) launched isolated with a CDP
page in 1.4 seconds, reporting 2.60.0 and bundling CLI 0.6.2. Vim editor
(12 checks), sidebar navigation (12) and editor improvements smoke
suites passed.
- PR CI: the first Windows build failed three new CLI manifest parse
tests, which built their manifest for the runner's own platform and so
hit "ZenNotes does not manage a CLI on this platform" on Windows. A
test-only fix (`15829394`) made them name a managed platform; all 9
checks then passed on the release commit.
- Release run
[36888637663](https://redirect.github.com/ZenNotes/zennotes/actions/runs/36888637663):
the first Linux x64 job hung for 47 minutes in "Install Linux packaging
tools" before building anything, so no Linux x64 file had been uploaded.
After macOS, Windows and Linux arm64 finished green, the run was
cancelled and only that job re-run; attempt 2 passed in about 10
minutes. No asset was replaced.
- All four update manifests and their 13 referenced files passed size
and downloaded SHA-512 verification. The app in the arm64 DMG passed
notarization (`Notarized Developer ID`), staple and strict deep
signature checks, and its bundled `zn` reports v0.6.2.
- CLI self-update: a build shipping CLI 0.6.0 updated itself from the
live v0.6.1 and v0.6.2 releases with the production key, plus scripted
relaunch, automatic-off, tampered-manifest and no-managed-zn scenarios
on the dev and packaged builds.
- Mobile core: boundary artifact
[core-2.60.0-core.hb0d0b54f320a8e3f](https://redirect.github.com/ZenNotes/zennotes/actions/runs/36887215873)
is adopted in
[ZenNotes/zennotesios#37](https://redirect.github.com/ZenNotes/zennotesios/pull/37)
and
[ZenNotes/zennotesandroid#91](https://redirect.github.com/ZenNotes/zennotesandroid/pull/91).

###
[`v2.59.0`](https://redirect.github.com/ZenNotes/zennotes/releases/tag/v2.59.0):
ZenNotes v2.59.0

[Compare
Source](https://redirect.github.com/ZenNotes/zennotes/compare/v2.58.0...v2.59.0)

ZenNotes 2.59.0 bundles CLI 0.6.0 on macOS and Linux. Update and open
ZenNotes once to upgrade an existing desktop-managed `zn`; Settings →
CLI shows its version and offers Repair if needed.

Released from
[`e59e141b`](https://redirect.github.com/ZenNotes/zennotes/commit/e59e141b0b9536a514ea67694b1fbff1f3f09c8e)
through [PR
#&#8203;877](https://redirect.github.com/ZenNotes/zennotes/pull/877) on
September 30, 2026. All installers are verified.

#### Features

- **CLI 0.6.0 is bundled with the desktop app.** Editable settings,
restored splits and sessions, comments, attachments, templates, bulk
actions, and richer task controls. Run `zn` interactively or `zn tui` to
open the editor. `zn server` and `:servers` manage native local servers;
`zn status`, `zn doctor`, `zn config`, and shell completion help with
setup. [Full CLI manual](https://zennotes.org/tui/docs).

#### Fixes

- **Yank in one terminal note and paste in another.** Registers survive
switching notes, opening a target, and closing the source within the
same TUI session ([CLI
#&#8203;4](https://redirect.github.com/ZenNotes/tui/issues/4)).
- **Copy terminal diagnostics.** `:version` opens a persistent,
scrollable report with CLI, OS, architecture, and optional server
details. Press `c` or `y` to copy it ([CLI
#&#8203;5](https://redirect.github.com/ZenNotes/tui/issues/5)).
- **Cloud conflict actions stay visible.** The settings list scrolls
while the title and actions stay on screen. This shared fix shipped to
phones in core 2.58.1.

#### For contributors

- Two Windows CI flakes are addressed: delayed asset refreshes cannot
outlive the test's store, and undo-history pruning is tested with a
small cap instead of hundreds of atomic writes. The production history
cap is unchanged.
- CLI integration stays at protocol 1; all four release archives are
pinned and checksummed.

#### Verification

How to test locally:

1. Update and open ZenNotes, then check Settings → CLI for version
0.6.0. An existing desktop-managed shortcut upgrades automatically.
2. Run `zn --version`, `zn status`, and `zn doctor`. Run `zn tui
--workspace-source app` to explicitly open the desktop workspace.
3. Yank text in one note, switch to another, and paste. Run `:version`,
then `c` to copy the report.

#### Distribution channels

- AUR 2.59.0-1: `5e4ae99`, mirrored in `d6a740df`; package checks
passed.
- Homebrew: tap `cf7869a`, mirrored in `fcf5fb41`; both DMG digests
verified.
- Nix: `bf667f3c`; hash-generation build
[`3675114`](https://redirect.github.com/ZenNotes/zennotes/commit/36751141963)
and main rebuild
[`3675174`](https://redirect.github.com/ZenNotes/zennotes/commit/36751746123)
passed. [nixpkgs PR
#&#8203;568334](https://redirect.github.com/NixOS/nixpkgs/pull/568334)
targets 2.59.0 and awaits upstream review; the exact nixpkgs source
derivation was not built locally.
- `verify:channels -- 2.59.0` passed for AUR, Homebrew, Nix, and all
seven website download routes. GitHub latest is v2.59.0. [Website PR
#&#8203;49](https://redirect.github.com/ZenNotes/website/pull/49) merged
at `acde3b0`; the release page and CLI guide are live.

#### Release validation

- All four CLI archives passed checksum and architecture checks; the
native probe returned 0.6.0/protocol 1.
- Terminal artifact/launcher tests: 13 passed. Desktop CLI
installer/runtime tests: 26 passed, 1 skipped.
- Fresh typechecks passed (7 tasks, no cache); 5,534 unit tests passed,
5 skipped. The desktop production build and signed local package passed.
- All four update manifests and their 13 referenced files passed size
and downloaded SHA-512 verification. The downloaded arm64 Mac app passed
notarization, staple, strict signature, and isolated CDP launch checks
(4.9 seconds), reporting desktop 2.59.0 and CLI 0.6.0.
- All 43 built-app smoke checks passed: Vim editor 12, sidebar
navigation 12, editor improvements 19.
- All PR checks passed. [Installer build
36749192092](https://redirect.github.com/ZenNotes/zennotes/actions/runs/36749192092)
passed on every platform without retries or asset replacements.
- Website: 941 local tests passed. PR CI needed one retry for a Chrome
startup timeout; the retry passed without code changes.

</details>

---

### Configuration

📅 **Schedule**: (in timezone America/Los_Angeles)

- Branch creation
  - Every minute (`* * * * *`)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/scottames/copr).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMjUuMSIsInVwZGF0ZWRJblZlciI6IjQ0LjEyNS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
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