feat: improve connection handling and status updates in SurfSense plugin

This commit is contained in:
Anish Sarkar 2026-04-22 06:16:38 +05:30
parent a5e5f229d9
commit 26ed2a2ba1
2 changed files with 4 additions and 0 deletions

View file

@ -115,7 +115,9 @@ export class SurfSenseSettingTab extends PluginSettingTab {
if (this.plugin.settings.searchSpaceId !== null) { if (this.plugin.settings.searchSpaceId !== null) {
try { try {
await this.plugin.engine.ensureConnected(); await this.plugin.engine.ensureConnected();
await this.plugin.engine.flushQueue();
new Notice("Surfsense: vault connected."); new Notice("Surfsense: vault connected.");
this.display();
} catch (err) { } catch (err) {
this.handleApiError(err); this.handleApiError(err);
} }

View file

@ -126,6 +126,7 @@ export class SyncEngine {
this.setStatus("idle", "Pick a search space in settings."); this.setStatus("idle", "Pick a search space in settings.");
return; return;
} }
this.setStatus("syncing", "Connecting to SurfSense");
try { try {
const fingerprint = await computeVaultFingerprint(this.deps.app); const fingerprint = await computeVaultFingerprint(this.deps.app);
const resp = await this.deps.apiClient.connect({ const resp = await this.deps.apiClient.connect({
@ -139,6 +140,7 @@ export class SyncEngine {
s.vaultId = resp.vault_id; s.vaultId = resp.vault_id;
s.connectorId = resp.connector_id; s.connectorId = resp.connector_id;
}); });
this.setStatus(this.queueStatusKind(), this.statusDetail());
} catch (err) { } catch (err) {
this.handleStartupError(err); this.handleStartupError(err);
} }