评审 P1 修正一批

设置:显式主题补 color-scheme,滚动条和 select 弹层这些 UA 部件不看
变量。连接:断开失败的提示与轮询取数分成两条通道,不再被下一秒的轮询
成功抹掉;排序加 id 决胜,内核快照的遍历序无序,空闲连接下载量普遍
相同,没有决胜键行会在断开按钮下面跳。仪表盘与请求:一条流断了连带
收掉同组连接;断流不等于内核没了(配置重载掐断流而 online 从未翻转),
5 秒自动重连。规则:正则类规则(DOMAIN-REGEX 等三种)按内核的
payloadCanContainComma 语义拆分与禁入结构化编辑,顶层逗号不再把正则
截一半当目标;findRuleIssues 注释里对内核校验的错误断言改正。
This commit is contained in:
2026-08-11 21:14:03 +08:00
parent bd087aabea
commit 35eb463633
8 changed files with 102 additions and 18 deletions
+12 -1
View File
@@ -62,11 +62,22 @@ describe('规则字符串的拆分与拼装', () => {
expect(parsed.target).toBe('PROXY')
})
it('结构化编辑只给常见形状,逻辑规则和子规则按原文编辑', () => {
it('正则类规则的顶层逗号不拆坏:最后一段是目标,其余全归载荷', () => {
// 内核对 DOMAIN-REGEX 这几类按「载荷可含逗号、不许带选项」读(rules/common/base.go:47-79)
expect(parseRule('DOMAIN-REGEX,^(a|b),c$,PROXY')).toEqual({
type: 'DOMAIN-REGEX',
payload: '^(a|b),c$',
target: 'PROXY',
extras: [],
})
})
it('结构化编辑只给常见形状,逻辑规则、子规则和正则类按原文编辑', () => {
expect(isStructuredEditable('DOMAIN-SUFFIX,youtube.com,PROXY')).toBe(true)
expect(isStructuredEditable('MATCH,PROXY')).toBe(true)
expect(isStructuredEditable('AND,((DOMAIN-SUFFIX,a.com),(DST-PORT,443)),PROXY')).toBe(false)
expect(isStructuredEditable('SUB-RULE,(DOMAIN-SUFFIX,a.com),sub1')).toBe(false)
expect(isStructuredEditable('DOMAIN-REGEX,^ads?,b$,REJECT')).toBe(false)
expect(isStructuredEditable('孤零零一段')).toBe(false)
})
})