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

@@ -370,4 +370,28 @@ describe('SettingsView Diff Preferences', () => {
})
);
});
it('auto-saves semanticSimilarityEnabled immediately when toggled without requiring a Save click', async () => {
(window as any).electronAPI.meta.getProjectMetadata = vi.fn().mockResolvedValue({
maxPostsPerPage: 50,
semanticSimilarityEnabled: false,
categorySettings: {
article: { renderInLists: true, showTitle: true },
},
});
(window as any).electronAPI.meta.updateProjectMetadata = vi.fn().mockResolvedValue({});
render(<SettingsView />);
const checkbox = await screen.findByLabelText(/semantic similarity/i);
expect((checkbox as HTMLInputElement).checked).toBe(false);
await act(async () => {
fireEvent.click(checkbox);
});
expect((window as any).electronAPI.meta.updateProjectMetadata).toHaveBeenCalledWith(
expect.objectContaining({ semanticSimilarityEnabled: true })
);
});
});