Releases: normanify/post-quantum-webdav
Releases · normanify/post-quantum-webdav
Release list
1.0.6
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
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
Changes
- Fix blocking review error: replace
fileManager.trashFile(requires 1.6.6) withvault.trash(since 0.9.7) — no-unsupported-api resolved - Clear review warnings: typed
MldsaApi/MlkemApiwrappers in pqc-provider, typedJSON.parsecasts in storage/sync-engine, typedsetControlValue+ declarativegetSettingDefinitions()settings tab, remove unnecessary assertions, meaningful catch blocks,json: unknown+window.setTimeoutin 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
Compliance fixes for Obsidian Community Plugins review.
- Removed unsafe
as anycasts: typedVault.adapterasDataAdapter,PqcPluginApi extends Plugin, andSerializablePersistedState - Switched
vault.deletetofileManager.trashFile - Removed dead code:
computeChunkSignature, unusedencoder/decoder, unused imports (ChunkInfo,base64ToBytes,pqcDsa), unintended empty conflict loop, and deadsig/elapsed/t0/totalChunkslocals - Build is byte-for-byte reproducible; e2e 10/10 passing
1.0.2
1.0.1: Obsidian review fixes
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
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