Skip to content

🐛 修复网站匹配/排除重置后清空列表(应回落脚本自带规则)#1579

Open
CodFrm wants to merge 1 commit into
mainfrom
fix/settings-match-exclude-reset
Open

🐛 修复网站匹配/排除重置后清空列表(应回落脚本自带规则)#1579
CodFrm wants to merge 1 commit into
mainfrom
fix/settings-match-exclude-reset

Conversation

@CodFrm

@CodFrm CodFrm commented Jul 13, 2026

Copy link
Copy Markdown
Member

Checklist / 检查清单

  • Fixes mentioned issues / 修复已提及的问题
  • Code reviewed by human / 代码通过人工检查
  • Changes tested / 已完成测试

Description / 描述

脚本设置 → 网站匹配 / 排除,点击「重置」时列表被整个清空,连脚本自带的 @match / @exclude 规则也一并消失。

根因SettingsPane.tsxsetMatchList):重置按钮调用 setMatchList(kind, undefined)。后端 resetMatch/resetExclude(uuid, undefined)删除用户覆盖(selfMetadataUpdate 传空集即删除该 key),使生效列表回落到脚本自带的 metadata.match / metadata.exclude。但前端用 next ?? [],重置时把可见列表置空并写入 selfMetadata[kind] = [],与后端持久化结果不一致,导致脚本自带规则也被隐藏。

修复:前端乐观更新对齐后端 selfMetadataUpdate 语义——重置时把可见列表回落到脚本自带的 metadata 值并删除覆盖,而非置空为 []。新增 / 删除路径(传入真实数组)行为不变。

测试(TDD,先写失败用例再修):

  • 重置匹配后应恢复脚本自带规则而非清空列表
  • 重置排除后应恢复脚本自带规则而非清空列表

SettingsPane.test.tsx 全量 27/27 通过;ESLint、tsc --noEmit 均无报错。

Screenshots / 截图

N/A(逻辑修复,无 UI 视觉变化)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant