Treat empty memo selections as no-ops so a repeated trash cleanup cannot delete the entire local mirror. Add regression coverage for repeated cleanup and empty batch mutations.\n\nFixes #420
The App Store listing includes Japanese. Skipping --change-locale ja let
v1.79.0 create a 1.79.0 build and then fail submit_review. Reject that
before any GitHub mutation.
The 1.79.0 listing includes ja, so Fastlane rejected submit_review when
release-summary.json had no Japanese notes. Fail in store-delivery and
Fastfile instead of creating a stuck draft.
Cloud #50 exported 1.74.0 because project.yml hardcoded MARKETING_VERSION
and ci_post_clone regenerated the Xcode project from that YAML. Keep the
version in Version.xcconfig and stamp it into the pbxproj before archive.
Manual Archive workflows build the default branch, which can move after the
Release commit. Compare apps/ios and packages/shared instead of requiring
an exact SHA.
Enable font-feature-settings: 'chws' 1 and overflow-wrap / word-break across Web, Mobile, iOS, and image cards for improved typography and long text wrapping.
Formal releases with iOS runtime changes now bump MARKETING_VERSION, archive the tag via Xcode Cloud, wait until App Store Connect marks the build Valid, and submit App Review. GitHub publication stays independent of iOS outcome.
Remove the desktop local data directory field from the system info panel,
avoiding exposing local usernames and account hashes in screenshots or
copies, and cleaning up unused diagnostic references.
0046 only looked for nb_inbox or {workspace}_inbox, so a historical slug inbox got a second empty 等待分类. Keep the notebook with notes, soft-delete extras, and unique-index one active inbox per workspace.
Release decoded editor media before replacing the TipTap document, and evict
idle memo-detail queries so visiting image-heavy notes does not keep their
bitmaps and JSON in the renderer.
Reload the hidden Chromium renderer once it has been in the background long
enough or its working set is high, after flushing the open draft. Restore the
last notebook and memo from session storage so reopening the window does not
land on a blank first note.
Reuse the TipTap view across memo changes, skip the modal scroll lock on the
card menu, and prefetch note details on pointer down so short notes no longer
pay a full editor remount.