summaryrefslogtreecommitdiffhomepage
path: root/src/main.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.ts')
-rw-r--r--src/main.ts69
1 files changed, 0 insertions, 69 deletions
diff --git a/src/main.ts b/src/main.ts
index e09cf56..12dadaf 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -4,7 +4,6 @@ import { DEFAULT_SETTINGS } from "./settings";
import { ChatView, VIEW_TYPE_CHAT } from "./chat-view";
import { testConnection, listModels } from "./ollama-client";
import { getDefaultToolStates } from "./tools";
-import type { PersistedMessage } from "./chat-history";
export default class AIPulse extends Plugin {
settings: AIPulseSettings = DEFAULT_SETTINGS;
@@ -14,9 +13,6 @@ export default class AIPulse extends Plugin {
connectionMessage = "";
availableModels: string[] = [];
- // Snapshot of persisted chat history for sync change detection
- private lastChatSnapshot = "";
-
async onload(): Promise<void> {
await this.loadSettings();
@@ -33,18 +29,6 @@ export default class AIPulse extends Plugin {
void this.activateView();
},
});
-
- // Detect chat history changes from Obsidian Sync or other devices.
- // We check when the app regains visibility (user switches back from another app/device).
- this.registerDomEvent(document, "visibilitychange", () => {
- if (document.visibilityState === "visible") {
- // Reload settings from disk in case Obsidian Sync updated data.json
- // while the app was in the background.
- void this.loadSettings().then(() => {
- this.checkChatHistorySync();
- });
- }
- });
}
onunload(): void {
@@ -88,47 +72,6 @@ export default class AIPulse extends Plugin {
await this.saveData(this.settings);
}
- /**
- * Called by Obsidian when data.json is modified externally (e.g., via Sync).
- * Reloads settings (which now include chat history) and syncs the chat view.
- */
- async onExternalSettingsChange(): Promise<void> {
- await this.loadSettings();
- this.checkChatHistorySync();
- }
-
- /**
- * Check if the persisted chat history has changed (e.g., from another device)
- * and reload the chat view if needed.
- */
- checkChatHistorySync(): void {
- try {
- const persisted = this.settings.chatHistory;
- const snapshot = buildChatSnapshot(persisted);
-
- if (snapshot === this.lastChatSnapshot) return;
- this.lastChatSnapshot = snapshot;
-
- // Find the active chat view and reload it
- const leaves = this.app.workspace.getLeavesOfType(VIEW_TYPE_CHAT);
- for (const leaf of leaves) {
- const view = leaf.view;
- if (view instanceof ChatView) {
- void view.reloadChatHistory();
- }
- }
- } catch {
- // Silently ignore — sync check is best-effort
- }
- }
-
- /**
- * Update the snapshot after a local save so we don't trigger a false reload.
- */
- updateChatSnapshot(messages: PersistedMessage[]): void {
- this.lastChatSnapshot = buildChatSnapshot(messages);
- }
-
async connect(): Promise<void> {
this.connectionStatus = "connecting";
this.connectionMessage = "Connecting...";
@@ -156,15 +99,3 @@ export default class AIPulse extends Plugin {
}
}
}
-
-/**
- * Build a lightweight snapshot string of chat messages for change detection.
- * Uses message count + last message content hash to detect changes
- * without deep comparison.
- */
-function buildChatSnapshot(messages: PersistedMessage[]): string {
- if (messages.length === 0) return "empty";
- const last = messages[messages.length - 1];
- if (last === undefined) return "empty";
- return `${messages.length}:${last.role}:${last.content.length}:${last.content.slice(0, 100)}`;
-}