feat: ship v1.2.0 Wave 1 foundation with book settings, chapter management, and focus mode
Deliver schema v9, book/chapter IPC extensions, BookSettingsTab, chapter meta/tags, AI session menu, focus mode and TTS, template context enrich, and Wave 1 E2E coverage. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Vendored
+18
-4
@@ -32,6 +32,8 @@ import type {
|
||||
Snapshot,
|
||||
SnapshotType,
|
||||
UpdateChapterParams,
|
||||
UpdateBookMetaParams,
|
||||
ChapterTag,
|
||||
Volume,
|
||||
WordFreqResult,
|
||||
KnowledgeEntry,
|
||||
@@ -73,10 +75,12 @@ export interface ElectronAPI {
|
||||
create: (params: CreateBookParams) => Promise<IpcResult<BookMeta>>
|
||||
delete: (bookId: string) => Promise<IpcResult<void>>
|
||||
open: (bookId: string) => Promise<IpcResult<BookOpenResult>>
|
||||
updateMeta: (
|
||||
bookId: string,
|
||||
patch: { lastChapterId?: string | null; status?: BookMeta['status'] }
|
||||
) => Promise<IpcResult<BookMeta>>
|
||||
updateMeta: (bookId: string, patch: UpdateBookMetaParams) => Promise<IpcResult<BookMeta>>
|
||||
pickCover: (bookId: string) => Promise<IpcResult<BookMeta | null>>
|
||||
}
|
||||
bookPrefs: {
|
||||
get: (bookId: string, key: string) => Promise<IpcResult<string | null>>
|
||||
set: (bookId: string, key: string, value: string) => Promise<IpcResult<void>>
|
||||
}
|
||||
volume: {
|
||||
create: (bookId: string, name: string) => Promise<IpcResult<Volume>>
|
||||
@@ -105,6 +109,11 @@ export interface ElectronAPI {
|
||||
publishStatus: PublishStatus
|
||||
) => Promise<IpcResult<Chapter>>
|
||||
}
|
||||
chapterTag: {
|
||||
list: (bookId: string, chapterId: string) => Promise<IpcResult<ChapterTag[]>>
|
||||
set: (bookId: string, chapterId: string, tag: string, color?: string) => Promise<IpcResult<void>>
|
||||
remove: (bookId: string, chapterId: string, tag: string) => Promise<IpcResult<void>>
|
||||
}
|
||||
outline: {
|
||||
list: (bookId: string) => Promise<IpcResult<OutlineItem[]>>
|
||||
create: (
|
||||
@@ -221,6 +230,11 @@ export interface ElectronAPI {
|
||||
patch: Partial<{ title: string; model: string; archived: boolean; context: AiContextBinding }>
|
||||
) => Promise<IpcResult<AiSession>>
|
||||
sessionDelete: (bookId: string, sessionId: string) => Promise<IpcResult<void>>
|
||||
sessionExport: (
|
||||
bookId: string,
|
||||
sessionId: string,
|
||||
format?: 'markdown' | 'txt'
|
||||
) => Promise<IpcResult<string | null>>
|
||||
messageList: (bookId: string, sessionId: string) => Promise<IpcResult<AiMessage[]>>
|
||||
chat: (
|
||||
bookId: string,
|
||||
|
||||
Reference in New Issue
Block a user