feat: refactor highlight restoration with confidence-based branching and recovery status management#48
feat: refactor highlight restoration with confidence-based branching and recovery status management#48catx1726 wants to merge 1 commit into
Conversation
|
好的,作为 Google 资深工程师,我将根据提供的《审查标准》和《审查清单》对本次变更进行代码审查。 总体评价本次重构是一次非常成功的设计演进。它将高亮恢复从“被动猜测+弹窗确认”的糟糕体验,彻底改造为“可信度分级+侧边栏主动管理”的健壮体系。设计文档清晰、Plan 详尽、代码实现与设计高度一致,并且修复了 以下是我的审查意见,按严重程度分类。 严重问题 (Blocking)1.
2.
轻微建议 (Nit)1.
2.
3.
4.
5.
SOP 合规检查
总结本次重构设计精良,代码质量高,文档完备,是一次非常优秀的变更。修复了底层 Bug,并引入了更健壮、用户体验更好的恢复机制。
请优先处理上述两个 Blocking 问题,它们关系到数据一致性和在动态页面上的稳定性。解决后,我对此 CL 给予 LGTM。 |
87b613f to
ca4ab70
Compare
代码审查报告概述本次 PR 对高亮恢复机制进行了重要的架构重构,从"被动弹窗确认"改为"按可信度分支处理 + 侧边栏主动管理",同时修复了 L3 搜索位置偏移的底层 bug。整体设计思路清晰,变更范围合理,文档完整。 SOP 合规检查 ✅
设计评审优点
关注点
逐文件审查
|
ca4ab70 to
88790d3
Compare
|
好的,作为一名 Google 资深工程师,我将根据提供的《审查标准》和《审查清单》,对本次变更 ( 总体评价这是一个雄心勃勃且设计良好的重构。它将高亮恢复机制从被动的“弹窗确认”模式,优雅地重构为基于可信度的主动管理模型。这个变更清晰地解决了 Issue #47 中描述的核心问题,并且配套的 Spec 和 Plan 文档非常详尽,展现了良好的工程实践。 代码整体质量很高,逻辑清晰,测试覆盖也考虑到了关键场景。我的评论主要集中在几个方面:确保新引入的复杂交互逻辑的健壮性、提升代码的可维护性,以及修复一些潜在的边界情况。 代码审查意见1. [Blocking] 潜在的数据竞争与状态不一致 (
|
Replace the passive disambiguation modal with active recovery status management. Restoration now branches by confidence level: - High (>=95%): auto-restore with default style, mark as 'restored' - Medium (85-95%): auto-restore with pending-confirm dashed style - Low (<85% or no candidates): skip highlight, mark as 'needs-recalibration' Also fixes L3 search boundary filtering issues: - Remove 'div' from structureBoundaries query to reduce over-filtering - Add fallback to boundary-free search when all combos are filtered - Clamp suggestRange results and fix LocalAligner endMin overflow Issue #47
88790d3 to
fd59ea2
Compare
|
好的,作为一名 Google 资深工程师,我将依据《审查标准》和《审查清单》对本次变更进行全面的代码审查。 代码审查报告变更概述: 本次 PR 将高亮恢复机制从“被动弹窗确认”重构为“按可信度分支处理 + 侧边栏主动管理”。这是一个架构级别的优化,旨在解决 L3 搜索位置偏移导致的不可信恢复问题,并修复了 总体评价: 这是一个高质量的变更。设计思路清晰,架构合理,文档详尽,测试覆盖了关键场景。代码质量整体很高,但仍然存在一些可以改进的地方。以下是我的具体审查意见。 1. 设计与架构 (Design)LGTM. 将恢复逻辑从“猜测-弹窗”的被动模式,改为“按置信度分级-侧边栏主动管理”的主动模式,这是一个非常明智的设计决策。它从根本上解决了用户体验和位置偏移两大核心问题。
2. 功能与逻辑 (Functionality)LGTM. 核心逻辑看起来是正确的。 一个潜在的竞态条件 (Race Condition): 在 例如:
建议: 虽然这种情况在实际中概率较低,但为了健壮性,建议在 3. 复杂度 (Complexity)LGTM. 代码整体复杂度控制得很好。 一个关于 在 // Nit: 考虑将 searchWithBoundaries 提取为一个私有方法
private _searchRange(fullText: string, startMin: number, startMax: number, endMin: number, endMax: number, ignoreBoundaries: boolean) {
// ... 循环逻辑 ...
}4. 测试 (Tests)LGTM. 测试覆盖了核心场景,包括 Nit: 5. 命名与注释 (Naming & Comments)LGTM. 命名清晰,例如 6. 文档 (Documentation)LGTM. 本次变更的文档工作非常出色。
7. 其他细节
总结本次重构是一次非常成功的架构升级,解决了长期存在的问题,并引入了更优雅、更可靠的恢复机制。代码质量高,文档完善,测试充分。
LGTM. 代码整体上显著提升了系统的代码健康度,我批准合并。请作者考虑以上 Nit 建议,并在后续迭代中优化。 |
🚀 变更摘要 (Summary)
将高亮恢复机制从"被动弹窗确认"重构为"按可信度分支处理 + 侧边栏主动管理",解决 L3 搜索位置偏移导致的不可信恢复问题,同时修复 structureBoundaries 过度过滤的底层 bug。
关联 Issue: Closes #47
变更类型:
🧠 智力资产贡献 (Knowledge Points)
docs/superpowers/specs/2026-06-10-recovery-status-management-design.mddocs/superpowers/plans/2026-06-10-recovery-status-management-plan.mdstructureBoundaries中div的过度登记是 L3 搜索返回 0.0% 得分的根因,真实页面中嵌套 div 过多会杀死所有搜索路径。🛡️ 质量验证 (Validation)
npx vitest run src/tests/)🔒 安全与审计 (Security & Audit)
.gemini/ops_changelog.md)🛑 AI 暂停点确认 (Human-in-the-Loop)
gh pr merge)📝 补充说明 (Additional Notes)
核心改动文件
src/logic/storage.tsrecoveryStatussrc/logic/config.tshighlightPendingConfirmStylesrc/contentScripts/restorer.tssrc/contentScripts/ui.tssrc/contentScripts/views/Tooltip.vuepending-confirm模式 UIsrc/sidepanel/Sidepanel.vuesrc/logic/search.ts恢复行为对照表