fix: harden scoped tools and settings persistence

This commit is contained in:
lofyer
2026-08-13 14:56:53 +08:00
parent bf1ec5d2f1
commit aab961226f
62 changed files with 4343 additions and 1314 deletions
+9 -2
View File
@@ -1,5 +1,6 @@
import { z } from 'zod'
import { magicNoteCommentFormatSchema } from './magic-notes-contracts'
import { settingsWarningsSchema } from './settings-warning-contracts'
export const magicNoteCommentModeSchema = z.enum([
'immediate',
@@ -11,7 +12,7 @@ export type MagicNoteCommentMode = z.infer<
typeof magicNoteCommentModeSchema
>
export const applicationSettingsSchema = z
const applicationPreferencesSchema = z
.object({
checkUpdatesOnStartup: z.boolean(),
magicNotesEnabled: z.boolean(),
@@ -20,7 +21,13 @@ export const applicationSettingsSchema = z
})
.strict()
export const applicationSettingsUpdateSchema = applicationSettingsSchema
export const applicationSettingsSchema = applicationPreferencesSchema
.extend({
warnings: settingsWarningsSchema.optional()
})
.strict()
export const applicationSettingsUpdateSchema = applicationPreferencesSchema
.partial()
.refine((input) => Object.keys(input).length > 0, {
message: 'At least one application setting is required'