Skip to content

Release 1.12.0 (build 26): search creates the note you typed, core 2.54.1 - #29

Merged
adibhanna merged 2 commits into
mainfrom
release/1.12.0
Sep 22, 2026
Merged

adibhanna merged 2 commits into
mainfrom
release/1.12.0

Conversation

@adibhanna

Copy link
Copy Markdown
Contributor

Release branch for ZenNotes iOS 1.12.0 (build 26). Build 26 is to be archived by hand from Xcode on 5d6d961 after this lands; nothing is submitted yet.

What changed since 1.11.0 (25)

  • Core @zennotes/app-core 2.53.0 → 2.54.1 (2.54.1-core.h75d82a521571dc20, source ZenNotes/zennotes 0285443b = v2.54.1, clean tree; SHA-256 and integrity in vendor/zennotes/manifest.json). What the phone gets from it:
    • Note search creates the note you typed (desktop #826): the results end with a Create "…" row; it opens a New note form with the name filled in, a folder field (projects/ideas nests under Inbox), tags from the vault's list or typed new, and a same-name check that blocks Create in the chosen folder and offers to open the existing note instead.
    • The first tap on Create counts while a tag is still typed (2.54.1): the footer buttons no longer take focus on touch-down, so the Tags field is not blurred and the button does not move before the finger lifts.
    • Following a wikilink clears its target from the footer (desktop #820, reported from Android); leaving Reading mode opens the editor at the part you were reading (#822); the YAML header is plain text with Live Preview off (#827); a note whose text returns to what is on disk is not saved again (#828).
    • Not surfaced on the phone: Harper's dictionary fix (#829, the phones never run Harper), Vim half-page motions in visual mode (#825, hardware keyboard only), zn mcp flags (#831, desktop CLI).
  • Shell fix for the new form: the palette is a full-screen takeover here and the shell's Cancel button sits where the form's header puts its destination label ("in Inbox"); the two overlapped. Two rules in src/ui-mobile/mobile.css end the header before Cancel begins.
  • npm run core:adopt (tooling/adopt-core.mjs + adopt-core.test.mjs, the same files the Android shell has): downloads a core-* release, refuses it unless every SHA-256 and SHA-512 matches its provenance and all source commits agree on a clean tree, swaps vendor/zennotes/, rewrites the manifest, the file: pins and the README sentence, runs npm install and boundaries:check. README gains the "vendored set" sentence it needs.
  • New SearchCreateUITests in AppUITests (2 tests): the form opens from search with the typed name, Create writes the note with its tag, and the header label clears the Cancel button (red on the old CSS, green after).

Deployment target stays iOS 15.0; no permission, entitlement, or SDK changes. Capacitor unchanged.

Verified on this tree

npm run boundaries:check (no override), npm run typecheck, npm test (124/124, 11 of them the adopt script's), npm run sync. Debug build with Xcode 27.0 (xcodebuild build … CODE_SIGNING_ALLOWED=NO) succeeds; App, ShareExtension and ZenWidgets all report 1.12.0 (26), MinimumOSVersion 15.0; the embedded public/index.html and CSS are byte-identical to dist/ and carry the data-search-create-form rules. Installed and launched on the iOS 27.0 iPhone 17 Pro Max simulator, restored the last note. SearchCreateUITests 2/2 pass on that simulator.

Merge as a fast-forward so main lands on the archived commit.

adibhanna and others added 2 commits September 22, 2026 15:40
Installs the 2.54.1 bundle from vendor/zennotes: @zennotes/app-core
2.54.1-core.h75d82a521571dc20, and @zennotes/bridge-contract and
@zennotes/shared-domain at 2.54.1-boundaries.h1138e41f8e2ad650, all built
with a clean tree from ZenNotes/zennotes 0285443b, which is the v2.54.1
release tag and is on upstream main. The manifest's SHA-256 and the
lockfile's integrity match the archives. Replaces the 2.53.0 bundle
(h598c8d004c9228a3 / h193dbe157c4e64d2 from 3a622639).

What the phone gets from 2.53.0 to 2.54.1: note search creates the note
you typed, through a New note form with name, folder and tags (#826), and
the first tap on Create lands while a tag is still typed in the Tags
field (2.54.1, the bug found while this shell was tested on 2.54.0); a
tapped wikilink's target leaves the footer once the link is followed
(#820, reported from the Android app); leaving Reading mode opens the
editor where you were reading (#822); a YAML header no longer renders in
heading type with Live Preview off (#827); a note whose text returns to
what is on disk is not written again (#828). Desktop-only in this range:
Harper's dictionary (#829, phones never run Harper), the Vim half-page
motions in visual mode (#825) and zn mcp's flags (#831).

Shell change for the form: on the phone the palette is a full-screen
takeover with a shell-injected Cancel in its top right corner, the spot
where the form's header puts its destination label ("in Inbox"), and the
two overlapped. mobile.css ends the header before Cancel begins and gives
the fields back the right padding that was reserved for a Cancel over the
search input.

SearchCreateUITests (AppUITests, wired into the project) covers both on
the iPhone 17 Pro Max simulator: the header's label and Cancel occupy
separate space, and one tap on Create with a tag still typed closes the
form and opens the new note with the tag under its heading. The second
test writes one note per run into the simulator's vault, so its name and
tag carry a per-run suffix.

tooling/adopt-core.mjs is the Android shell's adopt script brought over
as `npm run core:adopt -- <core-tag> --source <desktop-commit>`. It
downloads a core release (drafts work with an authenticated gh), verifies
every archive's SHA-256 and SHA-512 against its provenance, the packed
package versions and the shared clean source commit, then swaps the
archives, rewrites manifest.json, the three file: dependencies and the
README sentence, runs npm install and the boundary check. It runs no git
command. This adoption was done with it, and the README's "Adopting a
newer core" section replaces the hand procedure. Its tests run under
`npm test`.

Co-authored-by: Amp <amp@ampcode.com>
Amp-Thread-ID: https://ampcode.com/threads/T-01a0c45f-844c-77b8-846b-3e25b2447dab
@adibhanna
adibhanna merged commit 5d6d961 into main Sep 22, 2026
1 check passed
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