Skip to content

diag(core): 丢弃记录带上差异文本 (#194) - #288

Merged
JavaZeroo merged 2 commits into
mainfrom
diag/discard-text
Oct 31, 2026
Merged

JavaZeroo merged 2 commits into
mainfrom
diag/discard-text

Conversation

@JavaZeroo

Copy link
Copy Markdown
Owner

内容

selection-discard.jsonl 的每条记录补上实际差异文本:

{"reason":"row-text-changed","row":0,"saved_bytes":11,"current_bytes":29,
 "saved_columns":54,"current_columns":54,"saved_text":"…","current_text":"…","t_ms":…}

改动

文件 变更
experiments/core/text_selection.hpp DiscardReport 新增 saved_text/current_text,在 row-text-changed 分支填入(各取前 48 字节)
experiments/shell/shell.cpp 把两者以 JSON 转义写出(控制字节转 \xNN)

为什么

此前只能看到长度差(11→29 或 23→17),无法判断是"重绘写了半行"还是"内容真的换了"。#194 的修法选择(先排空 / 识别吸收)取决于这个区别:如果 current_text 是 saved_text 的前缀,就是部分重绘;如果不是,则是内容替换。

验证

  • termforge_shell 构建通过;
  • experiments.shell.test_selection_context → 8 tests OK(skipped=1)。

边界

  • 只加两个诊断字段,不改任何判定逻辑;
  • 各截断到 48 字节,更长的行需要配合终端记录。

Refs #194

…73

The raised message now ends with the same drained/rejected/child verdict the summariser computes, so reading a failure no longer depends on manual counting.
#194

The record carried only byte counts, so a partial repaint was indistinguishable from a real content change.
@JavaZeroo
JavaZeroo merged commit cab7330 into main Oct 31, 2026
20 checks passed
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