feat: ship v1.0.0 with character graph and writing analytics
Add P7 Cytoscape relationship graph with setting CRUD, P9 cockpit analytics driven by writing_sessions, chapter POV selection, and full test coverage. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -10,6 +10,8 @@ import { WritingLogService } from '../services/writing-log.service'
|
||||
import { GoalNotificationService } from '../services/goal-notification.service'
|
||||
import { AchievementService } from '../services/achievement.service'
|
||||
import { PomodoroService } from '../services/pomodoro.service'
|
||||
import { WritingSessionRepository } from '../db/repositories/writing-session.repo'
|
||||
import { WritingSessionService } from '../services/writing-session.service'
|
||||
import { registerSettingsHandlers } from './handlers/settings.handler'
|
||||
import { registerBookHandlers } from './handlers/book.handler'
|
||||
import { registerChapterHandlers } from './handlers/chapter.handler'
|
||||
@@ -29,6 +31,8 @@ import { registerCockpitHandlers } from './handlers/cockpit.handler'
|
||||
import { registerWritingHandlers } from './handlers/writing.handler'
|
||||
import { registerPomodoroHandlers } from './handlers/pomodoro.handler'
|
||||
import { registerAchievementHandlers } from './handlers/achievement.handler'
|
||||
import { registerGraphHandlers } from './handlers/graph.handler'
|
||||
import { registerAnalyticsHandlers } from './handlers/analytics.handler'
|
||||
import { registerBridgeHandlers } from './handlers/bridge.handler'
|
||||
import { AiClientService } from '../services/ai-client.service'
|
||||
import { NetworkMonitorService } from '../services/network-monitor.service'
|
||||
@@ -46,6 +50,8 @@ export function registerIpc(): { settings: GlobalSettingsService; books: BookReg
|
||||
const writingLogs = new WritingLogService(writingLogRepo, settings)
|
||||
const milestoneRepo = new WritingMilestoneRepository(writingLogRepo.getDb())
|
||||
const pomodoroDailyRepo = new PomodoroDailyRepository(writingLogRepo.getDb())
|
||||
const writingSessionRepo = new WritingSessionRepository(writingLogRepo.getDb())
|
||||
const writingSessions = new WritingSessionService(writingSessionRepo)
|
||||
const goalNotify = new GoalNotificationService(settings)
|
||||
const achievementService = new AchievementService(
|
||||
milestoneRepo,
|
||||
@@ -61,8 +67,8 @@ export function registerIpc(): { settings: GlobalSettingsService; books: BookReg
|
||||
networkMonitor = new NetworkMonitorService()
|
||||
|
||||
registerSettingsHandlers(settings)
|
||||
registerBookHandlers(books)
|
||||
registerChapterHandlers(books, writingLogs)
|
||||
registerBookHandlers(books, writingSessions)
|
||||
registerChapterHandlers(books, writingLogs, writingSessions)
|
||||
registerShortcutHandlers(shortcutManager)
|
||||
registerOutlineHandlers(books)
|
||||
registerSettingHandlers(books)
|
||||
@@ -72,14 +78,16 @@ export function registerIpc(): { settings: GlobalSettingsService; books: BookReg
|
||||
registerSearchHandlers(books, settings)
|
||||
const aiClient = new AiClientService(() => settings.get().aiConfig)
|
||||
registerAiHandlers(books, settings, aiClient)
|
||||
registerInteractiveHandlers(books, settings, aiClient, writingLogs)
|
||||
registerAutoHandlers(books, settings, aiClient, writingLogs)
|
||||
registerInteractiveHandlers(books, settings, aiClient, writingLogs, writingSessions)
|
||||
registerAutoHandlers(books, settings, aiClient, writingLogs, writingSessions)
|
||||
registerWizardHandlers(books, settings, aiClient)
|
||||
registerKnowledgeHandlers(books, settings, aiClient)
|
||||
registerCockpitHandlers(books, settings, writingLogs, achievementService, pomodoroDailyRepo)
|
||||
registerWritingHandlers(writingLogs)
|
||||
registerPomodoroHandlers(pomodoro)
|
||||
registerAchievementHandlers(achievementService)
|
||||
registerGraphHandlers(books)
|
||||
registerAnalyticsHandlers(books, writingLogs, writingSessionRepo, pomodoroDailyRepo)
|
||||
registerBridgeHandlers(books, aiClient)
|
||||
|
||||
return { settings, books, shortcuts: shortcutManager }
|
||||
|
||||
Reference in New Issue
Block a user