Feature/semantic similarity (#36)

* fix: mixed up migrations

* feat: semantic similarity first take

* feat: semantic similarity first round of fixes

* feat: more work on making semantic similarity work properly

* feat: getPostBySlug for the AI

* feat: show similarity in post-link-insert-modal

* chore: remove done doc

---------

Co-authored-by: hugo <hugoms@me.com>
This commit is contained in:
Georg Bauer
2026-03-05 22:05:32 +01:00
committed by GitHub
parent 8ac8305e01
commit 7e1e8981a3
64 changed files with 6429 additions and 499 deletions

View File

@@ -4,6 +4,7 @@ import { useAppStore, PostData, MediaData, TaskProgress } from './store';
import { loadTabsForProject, saveTabsForProject } from './utils';
import { openSingletonToolTab } from './navigation/tabPolicy';
import { persistSiteValidationReport } from './navigation/siteValidationPersistence';
import { persistDuplicatesResult } from './navigation/duplicatesPersistence';
import { executeActivityClick } from './navigation/activityExecution';
import { handleBlogmarkCreatedEvent } from './navigation/blogmarkHandling';
import {
@@ -444,6 +445,25 @@ const App: React.FC = () => {
}) || (() => {})
);
unsubscribers.push(
window.electronAPI?.on('menu:findDuplicates', () => {
openSingletonToolTab(openTab, 'find-duplicates');
}) || (() => {})
);
unsubscribers.push(
window.electronAPI?.on('embeddings:duplicateSearchResult', (...args: unknown[]) => {
const pairs = args[0] as import('../main/shared/electronApi').DuplicatePair[];
const projectId = useAppStore.getState().activeProject?.id;
if (projectId && pairs) {
persistDuplicatesResult(projectId, pairs);
window.dispatchEvent(new CustomEvent('bds:duplicates-updated', {
detail: { projectId },
}));
}
}) || (() => {})
);
unsubscribers.push(
window.electronAPI?.on('menu:generateSitemap', async () => {
try {