feat: deliver P2 v0.2.0 with unified editor, search, and snapshots

Implement schema v2 migration, outline/setting/inspiration CRUD, unified TipTap editing, reference panel with mentions, FTS global search, chapter version history, writing landmarks, word frequency analysis, light theme contrast fixes, and full unit/E2E test coverage.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-06 14:13:27 +08:00
parent 91c93954df
commit aac51bf183
72 changed files with 5790 additions and 203 deletions
+6 -1
View File
@@ -2,7 +2,7 @@ import { app, BrowserWindow, ipcMain } from 'electron'
import { existsSync } from 'fs'
import { join } from 'path'
import { IPC } from '../shared/ipc-channels'
import { getShortcutManager, registerIpc } from './ipc/register'
import { getShortcutManager, getSnapshotService, registerIpc } from './ipc/register'
import { closeAllBookDbs } from './db/connection'
if (process.env.BILIN_E2E === '1' && process.env.BILIN_E2E_USER_DATA) {
@@ -66,6 +66,7 @@ app.whenReady().then(() => {
app.on('window-all-closed', () => {
getShortcutManager()?.unregisterAll()
getSnapshotService()?.stopAll()
closeAllBookDbs()
if (process.platform !== 'darwin') app.quit()
})
@@ -74,6 +75,10 @@ app.on('activate', () => {
if (BrowserWindow.getAllWindows().length === 0) createWindow()
})
app.on('before-quit', () => {
getSnapshotService()?.stopAll()
})
app.on('will-quit', () => {
getShortcutManager()?.unregisterAll()
})