Skip to content

Release 1.1.31 (versionCode 34): Cloud device-testing fixes on core 2.60.4 - #94

Merged
adibhanna merged 5 commits into
mainfrom
release/1.1.31
Oct 2, 2026
Merged

adibhanna merged 5 commits into
mainfrom
release/1.1.31

Conversation

@adibhanna

@adibhanna adibhanna commented Oct 2, 2026 •

Copy link
Copy Markdown
Contributor

Hotfix for the problems found in the 2026-10-02 Cloud device testing (on iPhone; this shell shares the code). Adopts core 2.60.4 (core-2.60.4-core.hae0e49f9e5397fc2, published pre-release from ZenNotes/zennotes c507caa3) and bumps to 1.1.31 (versionCode 34).

Shell fixes (tested against the pinned core 2.60.3: typecheck clean, 206/206 tests, boundary verified):

  1. fix(cloud): pulling a root-level note no longer creates a stray folder. Welcome.md pulled into the vault root made an empty Welcome.m/ (to.slice(0, to.lastIndexOf('/')) with no slash). Since 1.1.12.
  2. fix(cloud): Review on the Cloud row opens Settings on the Cloud page (data-settings-target from core 2.60.4; inert before).
  3. fix(media): attached videos, audio and PDFs embed in the note instead of linking.

Also on this branch: adopt core 2.60.4 (conflict banner and notification, named limits, deleted-vault notice, type-to-confirm delete, Edit-mode players, the inline "Not synced to Cloud" notice, device bookkeeping kept out of synced vaults, backup browser paging), the shell wires the new optional listCloudBackupItemsPage, and the version bump.

How to test locally

  1. Install the debug build, sign in to Cloud, link a vault.
  2. On the desktop, create Welcome.md at the vault root and sync. Before: an empty Welcome.m folder appears on the phone. After: only Welcome.md.
  3. Attach a short video to a note. After: ![[…]] and a player instead of a link.

A note pulled from Cloud into the vault root (Welcome.md) left an empty
folder beside it named after the file minus its last character
("Welcome.m"). The rename step that moves a pulled file into place makes
the destination's parent folder first, and took the parent as
`to.slice(0, to.lastIndexOf('/'))`: with no slash in the path that is
`slice(0, -1)`, the whole name but one letter, and mkdir made it. Present
since Cloud sync came to Android (c2211ae, 1.1.12); found in iPhone
device testing on 2026-10-02, and this shell has the same code.

A path without a slash now has no parent to make. The integration test
pulls Welcome.md and notes/Welcome.md and checks that only `notes` is
created. Folders an older build already made stay; they are empty and can
be deleted.
Review on the status row's Cloud entry asks Settings for its Cloud page,
but the phone's paged Settings always opened on the section list, so
people found Cloud a second time. It now starts on the requested page when
the dialog carries data-settings-target (core 2.60.4); on an older core
the attribute is absent and nothing changes.
A video attached on the phone landed in the note as a Markdown link, so
the note showed its file name instead of something to play; only images
were embedded. Attaching or importing an image, PDF, audio or video file
now writes an embed (`![[path]]`), which the note renders as a picture,
a document or a player; any other file still gets a link. Remote vaults
build their links through the same rule. Matches the desktop and server
changes in core 2.60.4 and znserver.
Pins core-2.60.4-core.hae0e49f9e5397fc2, built by CI from ZenNotes/zennotes
c507caa3 (archives, provenance and the public boundary verified by
core:adopt). From the 2026-10-02 Cloud device testing:

- device bookkeeping (zennotes-cloud-sync) stays out of a synced vault,
  which re-uploaded it on every run;
- a note waiting on a sync conflict says so across its top with Review,
  and one notification announces each new conflict;
- limits name themselves ("1 file too large for Cloud", the file named),
  a 10 GB plan reads 10 GB, a deleted Cloud vault says so on the other
  devices, and deleting one asks for its name;
- audio and video play in Edit mode, with "Not synced to Cloud" under a
  file over the 10 MB limit;
- the backup browser pages and searches the whole backup.

The shell wires the new optional listCloudBackupItemsPage to
CloudSyncHostService.listBackupItemsPage, so Browse notes reaches past
the first 50 files here too. The lockfile keeps main's order with only
the root pins and the three @ZenNotes entries changed; npm ci leaves it
as is. typecheck clean, 206/206 tests.
@adibhanna adibhanna changed the title Release 1.1.31: Cloud device-testing fixes Release 1.1.31 (versionCode 34): Cloud device-testing fixes on core 2.60.4 Oct 2, 2026
@adibhanna
adibhanna marked this pull request as ready for review October 2, 2026 22:36
@adibhanna
adibhanna merged commit 81493e4 into main Oct 2, 2026
2 checks 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