feat: add magic note tags and a two-pane notes layout
Keep the notes list beside the open note, compact the detail view with a full-width sticky toolbar, and make Back to overview return to a full-width all-notes grid. Add manual note tags with AND filtering, a tag manager for rename, merge and delete, schema 51 tag tables, and tag support in the note Agent tools.
This commit is contained in:
@@ -8,6 +8,8 @@ import {
|
||||
magicNoteEntryCreateSchema,
|
||||
magicNoteEntryDeleteSchema,
|
||||
magicNoteEntryUpdateSchema,
|
||||
magicNoteTagDeleteSchema,
|
||||
magicNoteTagRenameSchema,
|
||||
magicNoteUpdateSchema,
|
||||
magicTodoUpdateSchema
|
||||
} from '../../shared/magic-notes-contracts'
|
||||
@@ -49,7 +51,21 @@ export function registerMagicNotesIpcHandlers(
|
||||
|
||||
registerHandler(ipcChannels.magicNotesList, (event) => {
|
||||
assertTrustedSender(event, window)
|
||||
return { notes: assistantDatabase.listMagicNotes() }
|
||||
return {
|
||||
notes: assistantDatabase.listMagicNotes(),
|
||||
tags: assistantDatabase.listMagicNoteTags()
|
||||
}
|
||||
})
|
||||
|
||||
registerHandler(ipcChannels.magicNotesRenameTag, (event, input: unknown) => {
|
||||
assertTrustedSender(event, window)
|
||||
return assistantDatabase.renameMagicNoteTag(magicNoteTagRenameSchema.parse(input))
|
||||
})
|
||||
|
||||
registerHandler(ipcChannels.magicNotesDeleteTag, (event, input: unknown) => {
|
||||
assertTrustedSender(event, window)
|
||||
const { tagId } = magicNoteTagDeleteSchema.parse(input)
|
||||
assistantDatabase.deleteMagicNoteTag(tagId)
|
||||
})
|
||||
|
||||
registerHandler(ipcChannels.magicNotesGet, (event, input: unknown) => {
|
||||
|
||||
Reference in New Issue
Block a user