Skip to content

Latest commit

 

History

History
40 lines (29 loc) · 3.35 KB

0.2.14.md

File metadata and controls

40 lines (29 loc) · 3.35 KB

Sink 0.2.14 — Sync stability and editor-style diffs

Side-by-side diff viewer

  • Local/original and remote/comparison panes stay side by side in batch reviews, conflicts, and snapshot comparisons.
  • Proper line alignment for multi-line additions, deletions, and replacement blocks.
  • Red/green line backgrounds, inline text highlights, and line-number gutters.
  • Synchronized vertical/horizontal scrolling and nonwrapping lines.
  • Collapsible unchanged context and previous/next change navigation.
  • Fixed missing batch-popup styles that caused sequential rather than side-by-side rendering.

Sync stability and data safety

  • Register vault listeners once, serialize engine restarts, and release old IndexedDB connections.
  • Serialize sync operations, coalesce incoming IDs, catch background failures, and cancel pending reviews/replication on shutdown.
  • Enforce incoming and outgoing config-sync restrictions, including custom config directories.
  • Always exclude workspace state, community/core plugin-enable lists, and Sink's entire plugin directory.
  • Reconstruct chunked text before comparison/merge; retry incomplete documents when chunks arrive.
  • Refuse corrupt or incorrectly encrypted chunks instead of writing ciphertext to files.
  • Persist immutable chunks before publishing their parent documents, including conflict retries.
  • Keep write suppression active through slow writes and detect local edits made during review.
  • Replace full-database metadata scans with targeted queries, page file pulls, and retain only snapshot summaries while listing backups.

Behavior changes

  • Config sync defaults off for new setups; existing saved settings are not overridden. Turn it off explicitly while diagnosing crashes.
  • Files above 20 MiB are refused for upload/application. This is not streaming support, and raw replication can still download existing oversized remote documents.
  • Automatic snapshots have a 32 MiB estimated in-memory budget. Batches requiring larger backups are refused rather than applied without a backup.
  • Large diffs are omitted for safety; auto-merge also has a text-size limit. Large pulls can show multiple small review dialogs.
  • Disabling config sync does not remove server documents or undo prior writes. This release does not add hidden config-file enumeration/watchers.

Verification and rollout

Automated regression tests, TypeScript checking, and a production build cover the changed code paths. Tests use Obsidian/PouchDB substitutes, a DOM test environment, and real Web Crypto; they do not run an Obsidian/Electron renderer or real CouchDB/IndexedDB.

The grey-screen crash cause remains unconfirmed. Keep Sink disabled in the live vault until testing succeeds in a disposable vault with a separate CouchDB database. Back up the vault (including config) and server first. Use the same 0.2.14 build on both test devices because device version gates compare exact versions.

Install all three assets together: main.js, manifest.json, and styles.css. Updating the script without the stylesheet will not install the new diff layout. See the stability investigation and test plan.

Development/release checks require Node.js 22.22.2+; CI uses Node 22, runs npm ci, tests and type-checking, then builds. The existing moderate PouchDB/UUID dependency advisories remain; no forced breaking dependency change was applied.