Skip to content

Bopa 0.3.0

Choose a tag to compare

@ivanlee1999 ivanlee1999 released this 02 Sep 05:05
· 41 commits to main since this release
6d76d87

Highlights

  • Now on the Mac. The same app builds as a Mac Catalyst app — library, editor, CouchDB and WebDAV sync, PDF-backed pages — with the trackpad drawing and ⌘[ / ⌘] / ⌘⇧N turning and adding pages, since a mouse wheel cannot pull past the bottom of a sheet. The window opens at a sensible size, Pencil settings stay out of the way, and Show Notebooks in Finder reveals the container that is otherwise invisible. scripts/archive.sh … mac exports a Developer ID-signed, notarised .app; CI builds the Mac target on every push.
  • A page can carry typed content. Pages gained blocks — typed markdown paragraphs, pictures, voice recordings and ink groupings — with their own tombstones, merged per block like images so two devices editing different paragraphs both keep their edits, and preserved through every path that rewrites a page (split, duplicate, save). Nothing here creates one yet; this is the half that must be on every device before a writer ships, because a peer that does not carry a block deletes it.
  • The protocol says so. couch-sync-protocol.md gains the block schema, mergeBlocks, the block tiebreak, the page-split rule (flowing paragraphs stay on the first sheet; positioned blocks divide like images), 30-day pruning of block tombstones, and §9's markdown segmentation rule — a transport granularity, not a parser — with 57 merge vectors and 22 segmentation cases byte-identical in both repos.
  • Assets a block names are fetched. Sync learns the audio/ folder and the audio/mp4 sniff, pulls the bytes a block references, and keeps a block typed through a merge.
  • The paper you choose sticks. Picking a template applies to every new page of that notebook, on both devices.

Validation

  • NotableKit: full suite green (swift test) on CI at the released commit.
  • iPad app: full simulator suite (unit, snapshot and UI) green on CI; the Mac Catalyst build job green.
  • Merge vectors and markdown segmentation cases diffed byte-for-byte against Notable's on every CI run.
  • The Mac build has not been exercised by hand; docs/mac-checklist.md is the list to run through before trusting it.

Compatibility

Syncs with Notable for BOOX v0.48.0. Both apps carry blocks and block tombstones, divide pages by the same rule, and segment markdown identically (markdown-blocks.json). Older peers (Notable < 0.47.0, Bopa 0.2.0) strip blocks on save — they come back on the next merge, but a block deletion may not stick until every device is updated.