Skip to content

Releases: normanify/post-quantum-webdav

1.0.6

Choose a tag to compare

@normanify normanify released this 06 Sep 04:10

Bug fixes:

  • Prevent same-device edits from being overwritten: the sync loop now refreshes each file's ownership (mtime + device id) from the local file before comparing with remote, so re-editing a file shortly after it synced no longer makes the device download its own older copy and destroy the new content.
  • Eliminate re-upload churn: "same version" is now detected by content fingerprint (chunk hashes) instead of timestamps, so unchanged files are never re-transferred — syncs stay stable with zero redundant traffic.
  • Harden conflict resolution: the winner of a same-timestamp tiebreak uploads instead of downloading the stale remote copy, and equal-mtime re-edits on the same device are correctly treated as local changes.

Testing:

  • Added a multi-device simulation suite covering three-device create/edit/delete/concurrent-modify scenarios with a deterministic clock (88 tests total).

Install/update from Settings → Community plugins.

1.0.5

Choose a tag to compare

@normanify normanify released this 05 Sep 13:46

Bug fixes:

  • Propagate deletions between devices: files deleted on one device now delete on remote, and other devices follow remote deletions (files moved to trash). Previously deletions never propagated and remotely-deleted files could be resurrected on next sync.
  • Skip re-transfer of unchanged files: content-identical files (matching chunk hashes) are no longer re-transferred, eliminating the tiebreak re-upload churn.
  • Resolve delete-modify conflicts so a remote deletion actually wins when appropriate, and clear tombstones when a file is re-created locally.

Install/update from Settings → Community plugins.

1.0.4

Choose a tag to compare

@normanify normanify released this 05 Sep 00:53

Changes

  • Fix blocking review error: replace fileManager.trashFile (requires 1.6.6) with vault.trash (since 0.9.7) — no-unsupported-api resolved
  • Clear review warnings: typed MldsaApi/MlkemApi wrappers in pqc-provider, typed JSON.parse casts in storage/sync-engine, typed setControlValue + declarative getSettingDefinitions() settings tab, remove unnecessary assertions, meaningful catch blocks, json: unknown + window.setTimeout in webdav client
  • minAppVersion raised to 1.13.0 for the declarative settings API (getSettingDefinitions/setDestructive)

Install

Copy main.js, manifest.json, styles.css into .obsidian/plugins/post-quantum-webdav/.

1.0.3

Choose a tag to compare

@normanify normanify released this 04 Sep 15:33

Compliance fixes for Obsidian Community Plugins review.

  • Removed unsafe as any casts: typed Vault.adapter as DataAdapter, PqcPluginApi extends Plugin, and SerializablePersistedState
  • Switched vault.delete to fileManager.trashFile
  • Removed dead code: computeChunkSignature, unused encoder/decoder, unused imports (ChunkInfo, base64ToBytes, pqcDsa), unintended empty conflict loop, and dead sig/elapsed/t0/totalChunks locals
  • Build is byte-for-byte reproducible; e2e 10/10 passing

1.0.2

Choose a tag to compare

@normanify normanify released this 04 Sep 15:04

PQC WebDAV Sync 1.0.2

  • Use typed Vault.configDir instead of hardcoded .obsidian path
  • Add release attestation workflow (attest-build-provenance)
  • Remaining Obsidian review warnings are advisory only (safe-, unused vars)

1.0.1: Obsidian review fixes

Choose a tag to compare

@normanify normanify released this 04 Sep 15:00

Resolves the Obsidian community plugin review blockers:

  • Use Setting().setHeading() for consistent UI (was raw HTML headings)
  • Bump minAppVersion to 1.4.0 to support setDisabled / modern UI APIs
  • Use typed Vault.configDir instead of hardcoded .obsidian path
  • Add LICENSE (MIT) and README
  • Remove deprecated setDynamicTooltip()
  • Add release attestation workflow (attest-build-provenance)

1.0.0: Post-Quantum Cryptography for Obsidian

Choose a tag to compare

@normanify normanify released this 04 Sep 14:35

Post-quantum encrypted WebDAV sync plugin for Obsidian.

  • ML-DSA-65 / ML-KEM-768 post-quantum cryptography
  • Chunked upload/download with integrity verification
  • Multi-device conflict resolution (vector clocks + LWW)
  • Configurable chunk size, parallel limit, and upload timeout
  • Full per-file / per-chunk progress in console and status bar