代号词典加关键字搜索(双端);外加一条 v0.7.5 自产回归的热修。
新增(双端)
- 代号词典支持关键字搜索。用户直接提的需求(原话「对于字典需要增加个需求,就是能
关键字搜索字典,比如搜N1,能定位到字典」)。面板打开即聚焦、输入即过滤、不需要回车,
有内容时出现清空按钮;搜索词不跨面板重开保留——这是「随手查一下」的入口,不是常驻
筛选器,所以不做成设置项。标题计数改为显示当前可见条数(不过滤时与总数相等)。
两种空态分开:词典本来就空(此时连搜索框都不摆出来)与「有条目但没搜到」——都显示同
一句会让用户以为自己的代号丢了。- 匹配语义两端逐字一致(mac
TimelineViewModel.filterCodenames、
WindowsCore.CodenameSearch.Filter):子串而非前缀(复合代号REQ-AUTH-3
用户常只记得中间一段)、匹配范围含定义与最近提及(只记得内容、不记得代号叫 N1
还是 N2 也能找到)、大小写不敏感、查询词先 trim 且纯空白视为没有搜索词(返回全部)。
判据两端都抽成纯函数并单测,不散落在 UI 事件处理里;macswift test92 → 98,
Windows 冒烟 451 → 463; - Windows 侧用
AutoSuggestBox,但不能设QueryIcon——模板里查询按钮与清空按钮
占同一个位置,设了放大镜图标就再也不出清空 ×。UIA 实测发现的:设了之后控件内一个
Button 都不暴露; - 两端都用真实词典验证「匹配范围真的生效」,而不只是测最简单的名字匹配:mac 搜
N1命中 3 条里有 2 条靠最近提及命中;Windows 在 475 条真实词典上搜C0得 11 条,
与直接查库预测逐条相同,其中 4 条名字里根本没有C0。
- 匹配语义两端逐字一致(mac
修复(macOS)
- 摘要器自己的会话泄漏进了可见时间线(v0.7.5 自产回归,发现即修)。0.7.5 新加的
文件头扫描把context.cwd提前填好了,于是「cwd变了才检查是不是摘要器 scratch
目录」这条判据永远不触发——摘要器 headless 会话的cwd从第一行起就是 scratch 目录、
全程不变,根本没有「变化」这个事件。真实库里已观察到污染:摘要器的自问自答以
project="summarizer"进入时间线,且 app 开着就每隔几秒新增一条(发现时 39 条),
并传导进代号词典(两个子虚乌有的代号,以及一个真实代号的 occurrences 被吹高、状态
被误置)。修法是头部扫描扫到 scratch 目录当场disabled;另加两条 version-gated
一次性迁移清理已受影响的库(按cwd精确匹配删除泄漏节点 + 代号词典从干净的节点
历史整体重建)。实机:删除 39 个节点与污染数量精确对应,重跑幂等,swift test98 → 100。
Windows 不受影响(实测 0 条泄漏):本端头部扫描自己就做了摘要器判定,且只在断点
续读时才跑;SessionWatcher另有一层路径级排除。