feat: configure canvas pages sent for note analysis

Canvas analysis previously sent every page. Add a Magic Notes setting for
1-8 canvas pages, defaulting to 1 for new and historical settings. Select
the first N pages in current canvas order before capture and use the same
text/image range for saved entries, drafts and canvas-source todos.

Keep full 50-page saving/export, expose the same setting through config
tools, and use the shared settings select with an inline help icon.
Include pagination, persistence, production IPC and isolated Electron
regressions, including text-only input and scaled page boundaries.

Validation: focused feature tests and isolated Electron regressions passed;
the final compact UI passed 14 tests. Typecheck and lint were reported
passing by the coordinating agent. No full-suite pass is claimed because
the completed full test command exposed no summary. No live model calls
were made for this commit preparation.

Release note: 魔法笔记新增“发送画布页数”设置,可选 1~8 页,默认 1 页,按当前画布顺序发送前 N 页的文字和图片;标题旁问号可查看说明,保存和导出完整画布不受影响。
This commit is contained in:
mesalogo
2026-09-20 00:07:07 +08:00
parent ecf09f4e95
commit bf1d34e897
39 changed files with 475 additions and 102 deletions
+7 -2
View File
@@ -258,7 +258,8 @@ export const defaultApplicationSettings: ApplicationSettings = {
magicNotesEnabled: true,
magicNotesShowIncompleteTodoCount: true,
magicNoteCommentMode: 'immediate',
magicNoteCommentFormat: 'combined'
magicNoteCommentFormat: 'combined',
magicNoteCanvasPageCount: 1
}
export class ApplicationSettingsStore {
@@ -286,8 +287,10 @@ export class ApplicationSettingsStore {
| 'version'
| 'applicationNavigation'
| 'localInferenceEnabled'
| 'magicNoteCanvasPageCount'
> & {
conversationHtmlRenderingEnabled?: boolean
magicNoteCanvasPageCount?: number
version: number
}
): Promise<StoredApplicationSettings> {
@@ -525,6 +528,7 @@ export class ApplicationSettingsStore {
stored.magicNotesShowIncompleteTodoCount,
magicNoteCommentMode: stored.magicNoteCommentMode,
magicNoteCommentFormat: stored.magicNoteCommentFormat,
magicNoteCanvasPageCount: stored.magicNoteCanvasPageCount,
...(this.warnings.length > 0 ? { warnings: [...this.warnings] } : {})
}
}
@@ -563,7 +567,8 @@ export class ApplicationSettingsStore {
magicNotesShowIncompleteTodoCount:
next.magicNotesShowIncompleteTodoCount,
magicNoteCommentMode: next.magicNoteCommentMode,
magicNoteCommentFormat: next.magicNoteCommentFormat
magicNoteCommentFormat: next.magicNoteCommentFormat,
magicNoteCanvasPageCount: next.magicNoteCanvasPageCount
}
for (const listener of this.listeners) listener(settings)
return settings