mirror of
https://github.com/vrtmrz/obsidian-livesync.git
synced 2025-12-22 22:21:29 +00:00
- The plug-in automatically fetches the missing chunks even if `Fetch chunks on demand` is disabled.
- This change is to avoid loss of data when receiving a bulk of revisions.
- This can be prevented by enabling `Use Only Local Chunks` in the settings.
- Storage application now saved during each event and restored on startup.
- Synchronisation result application is also now saved during each event and restored on startup.
- These may avoid some unexpected loss of data when the editor crashes.
### Fixed
- Now the plug-in waits for the application of pended batch changes before the synchronisation starts.
- This may avoid some unexpected loss or unexpected conflicts.
Plug-in sends custom headers correctly when RequestAPI is used.
- No longer causing unexpected chunk creation during `Reset synchronisation on This Device` with bucket sync.
### Refactored
- Synchronisation result application process has been refactored.
- Storage application process has been refactored.
- Please report if you find any unexpected behaviour after this update. A bit of large refactoring.
48 lines
2.1 KiB
TypeScript
48 lines
2.1 KiB
TypeScript
import { ChunkAlgorithmNames } from "../../../lib/src/common/types.ts";
|
|
import { LiveSyncSetting as Setting } from "./LiveSyncSetting.ts";
|
|
import type { ObsidianLiveSyncSettingTab } from "./ObsidianLiveSyncSettingTab.ts";
|
|
import type { PageFunctions } from "./SettingPane.ts";
|
|
|
|
export function paneAdvanced(this: ObsidianLiveSyncSettingTab, paneEl: HTMLElement, { addPanel }: PageFunctions): void {
|
|
void addPanel(paneEl, "Memory cache").then((paneEl) => {
|
|
new Setting(paneEl).autoWireNumeric("hashCacheMaxCount", { clampMin: 10 });
|
|
// new Setting(paneEl).autoWireNumeric("hashCacheMaxAmount", { clampMin: 1 });
|
|
});
|
|
void addPanel(paneEl, "Local Database Tweak").then((paneEl) => {
|
|
paneEl.addClass("wizardHidden");
|
|
|
|
const items = ChunkAlgorithmNames;
|
|
new Setting(paneEl).autoWireDropDown("chunkSplitterVersion", {
|
|
options: items,
|
|
});
|
|
new Setting(paneEl).autoWireNumeric("customChunkSize", { clampMin: 0, acceptZero: true });
|
|
});
|
|
|
|
void addPanel(paneEl, "Transfer Tweak").then((paneEl) => {
|
|
new Setting(paneEl)
|
|
.setClass("wizardHidden")
|
|
.autoWireToggle("readChunksOnline", { onUpdate: this.onlyOnCouchDB });
|
|
new Setting(paneEl)
|
|
.setClass("wizardHidden")
|
|
.autoWireToggle("useOnlyLocalChunk", { onUpdate: this.onlyOnCouchDB });
|
|
|
|
new Setting(paneEl).setClass("wizardHidden").autoWireNumeric("concurrencyOfReadChunksOnline", {
|
|
clampMin: 10,
|
|
onUpdate: this.onlyOnCouchDB,
|
|
});
|
|
|
|
new Setting(paneEl).setClass("wizardHidden").autoWireNumeric("minimumIntervalOfReadChunksOnline", {
|
|
clampMin: 10,
|
|
onUpdate: this.onlyOnCouchDB,
|
|
});
|
|
// new Setting(paneEl)
|
|
// .setClass("wizardHidden")
|
|
// .autoWireToggle("sendChunksBulk", { onUpdate: onlyOnCouchDB })
|
|
// new Setting(paneEl)
|
|
// .setClass("wizardHidden")
|
|
// .autoWireNumeric("sendChunksBulkMaxSize", {
|
|
// clampMax: 100, clampMin: 1, onUpdate: onlyOnCouchDB
|
|
// })
|
|
});
|
|
}
|