winters27_obsidian-byoc/tests
winters27 bc3ac8d100 fix(sync): repair encrypted sync data loss (#5) and pCloud rename
Encrypted sync could delete local files on the second sync. The encrypted
walk exposed the ciphertext name as keyRaw while local and baseline used the
plaintext name, so the node map never matched and every encrypted file looked
remote-deleted. Fixes, each with regression tests:

- fsEncrypt exposes the plaintext key as keyRaw (keyEnc stays ciphertext) so
  remote, local, and baseline entries merge in the sync node map.
- The equal-commit path preserves the encryption baseline anchors (sizeEnc,
  mtimeSvr) so a synced file is not later misread as remotely changed.
- isVaildText no longer rejects legitimate filename format characters (ZWNJ,
  ZWJ, bidi marks, soft hyphen) common in Persian, Arabic, Hindi, and Hebrew.
- Undecryptable remote entries are recorded, not silently dropped: sync aborts
  if nothing decrypts, otherwise keeps local files and warns, and never treats
  an undecryptable entry as a remote deletion.
- A one-time post-upgrade safety net keeps local files on the first encrypted
  sync so a residual broken baseline cannot mass-delete.
- pCloud rename no longer throws: supportsRename is false (delete+create
  fallback) with a defensive copy+delete, matching S3 and Azure.

Tests: an account-free encrypted end-to-end suite (delete/no-resurrection with
sample passwords, non-ASCII names, undecryptable handling) plus a real-disk
integration test (push, encrypt, re-sync, edit, delete, cross-device decrypt
of non-ASCII notes), and a worker/crypto shim so encryption loads under Node.
2026-07-15 02:47:11 -07:00
..
static_assets chore: release 1.0.3 - remove fragile LFS artifacts blocking CI builds 2026-04-25 16:19:51 -07:00
_diskIntegration.test.ts fix(sync): repair encrypted sync data loss (#5) and pCloud rename 2026-07-15 02:47:11 -07:00
_obsidianStub.cjs chore(lint): satisfy ReviewBot — drop disallowed disables, fix sentence case 2026-04-27 13:53:29 -07:00
_workerShim.cjs fix(sync): repair encrypted sync data loss (#5) and pCloud rename 2026-07-15 02:47:11 -07:00
configPersist.test.ts feat: Initial BYOC fork (from Remotely Save) 2026-04-17 14:37:37 -07:00
encryptOpenSSL.test.ts chore(lint): mirror ReviewBot config + fix OAuth DefinePlugin regression 2026-04-27 06:30:32 -07:00
fsWebdis.test.ts fix(test): drop stray vitest vi.mock from fsWebdis mocha test 2026-04-27 06:34:15 -07:00
metadataOnRemote.test.ts feat: Initial BYOC fork (from Remotely Save) 2026-04-17 14:37:37 -07:00
misc.test.ts fix(sync): repair encrypted sync data loss (#5) and pCloud rename 2026-07-15 02:47:11 -07:00
pathFilter.test.ts feat(sync): path filter accepts glob and regex patterns 2026-06-16 13:21:51 -07:00
syncConflict.test.ts feat: Initial BYOC fork (from Remotely Save) 2026-04-17 14:37:37 -07:00
syncConvergence.test.ts test(sync): end-to-end convergence and duplication coverage 2026-06-16 13:21:52 -07:00
syncEncrypted.test.ts fix(sync): repair encrypted sync data loss (#5) and pCloud rename 2026-07-15 02:47:11 -07:00
syncPlanner.test.ts fix(sync): delete encrypted remotes on local deletion instead of resurrecting 2026-06-16 11:37:39 -07:00