Skip to content

fix(core): 失效的回放文本坐标不再复用(#29 的路线无关部分) - #263

Merged
JavaZeroo merged 1 commit into
mainfrom
fix/r29-partial
Oct 31, 2026
Merged

JavaZeroo merged 1 commit into
mainfrom
fix/r29-partial

Conversation

@JavaZeroo

Copy link
Copy Markdown
Owner

问题与最终行为

#29 的四层堆叠 PR(#108 → #113)无法按"重基"处理:它们与 main 已经落地的是两条并行路线。

证据:

文件 main 分支
experiments/core/history_view.hpp 80 行,owned/anchor 语义 268 行,view_mapping/ViewMapping/origin 语义
experiments/core/view_mapping.hpp 不存在 存在

git cherry -v origin/main origin/fix/history-viewport-r29 显示 20 个提交全部 +(未应用),而 main 上已有另一套 history_view。逐个重放时,13 个提交在 candidate_terminal.cpp、history_view.hpp、candidate_resize_map_test.cpp 等处与 main 的实现语义冲突。

本 PR 只取其中与路线无关的那一个修复:fbcbe38(invalidate stale replay text coordinates)。

最终行为:

  • same_replay_line 由"比较文本跨度长度"改为"必须首末列相同"——同字节出现在不同列时不再被判为可复用版本(选择与 Find 依赖该版本)
  • replay_key 把首列纳入键,只有尾部填充是惰性的
  • 附带该修复自带的 53 行回归测试

其余 19 个提交(含 view_mapping 路线实现与依赖它的证据文档)不在本 PR 内,需要先决定路线归属。

验证

  • 该提交对 main 的 candidate_terminal.cpp 零冲突应用(replay_bounds、same_replay_line 等符号在 main 仍存在)
  • 改动 6 行 + 53 行测试,未触碰 history_view.hpp 或 view_mapping.hpp
  • C++ 构建与 candidate_core 测试由 CI 执行(本 worktree 无构建产物)

性能影响(如适用)

不适用。只影响回放文本坐标的复用判定,不改变绘制或调度路径。

来源与限制

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