mirror of
https://github.com/hellodigua/ChatLab.git
synced 2026-10-26 02:04:37 +08:00
fix(preferences): preserve legacy builtin masking overrides
This commit is contained in:
1 parent
9030d6b0c3
commit
2a44f8b69e
2 files changed
+18
-2
No files matched your search
@@ -49,12 +49,17 @@ test('migrates old built-in desensitize rules out of preferences with a backup',
|
||||
const backupsDir = join(systemDir, 'backups')
|
||||
|
||||
assert.equal(prefs.aiPreprocessConfig.desensitizeRulesSchemaVersion, 2)
|
||||
assert.deepEqual(prefs.aiPreprocessConfig.desensitizeBuiltinRuleOverrides, {})
|
||||
assert.deepEqual(prefs.aiPreprocessConfig.desensitizeBuiltinRuleOverrides, {
|
||||
api_key_prefix: false,
|
||||
})
|
||||
assert.deepEqual(
|
||||
prefs.aiPreprocessConfig.desensitizeRules.map((rule) => rule.id),
|
||||
['custom_staff_id']
|
||||
)
|
||||
assert.equal(saved.aiPreprocessConfig.desensitizeRules[0].id, 'custom_staff_id')
|
||||
assert.deepEqual(saved.aiPreprocessConfig.desensitizeBuiltinRuleOverrides, {
|
||||
api_key_prefix: false,
|
||||
})
|
||||
assert.equal(
|
||||
saved.aiPreprocessConfig.desensitizeRules.some((rule: any) => rule.builtin),
|
||||
false
|
||||
|
||||
@@ -185,13 +185,24 @@ export class PreferencesManager {
|
||||
|
||||
this.backupLegacyPreferences(rawContent)
|
||||
|
||||
const legacyBuiltinRuleOverrides = rules
|
||||
.filter((rule) => rule.builtin && typeof rule.enabled === 'boolean')
|
||||
.reduce<Record<string, boolean>>((overrides, rule) => {
|
||||
overrides[rule.id] = rule.enabled
|
||||
return overrides
|
||||
}, {})
|
||||
const existingOverrides = this.normalizeBooleanMap(partial.aiPreprocessConfig?.desensitizeBuiltinRuleOverrides)
|
||||
|
||||
return {
|
||||
preferences: {
|
||||
...partial,
|
||||
aiPreprocessConfig: {
|
||||
...partial.aiPreprocessConfig,
|
||||
desensitizeRulesSchemaVersion: DESENSITIZE_RULES_SCHEMA_VERSION,
|
||||
desensitizeBuiltinRuleOverrides: {},
|
||||
desensitizeBuiltinRuleOverrides: {
|
||||
...legacyBuiltinRuleOverrides,
|
||||
...existingOverrides,
|
||||
},
|
||||
desensitizeRules: rules.filter((rule) => !rule.builtin),
|
||||
},
|
||||
} as Partial<Preferences>,
|
||||
|
||||
Reference in new issue
Block a user