You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[R2][回归] 定位旧 candidate normal-1 的未知 invalid text 事件 #57
Activity
JavaZeroo commentedon Oct 30, 2026
当前可达性(只读核对)
核对对象:worktree
D:\Code\termforge-uia-note,HEADd3f24d6(merge-base3841281+ 1 个 diag 提交;落后origin/main7ff5cde2 个提交,差异只有experiments/shell/clipboard_scenario_state.hpp与research/ime/test_hosted_inventory.py,未触及下文所引行)。结论:失败路径仍可达(a),但旧失败仍不可回填。
invalid textexperiments/presentation/render.hpp:23-29,L26require(n != 0, "invalid text"),MB_ERR_INVALID_CHARS保留experiments/shell/shell.cpp:815-829,L821case 2: terminal_title_ = utf16(event.bytes);格文本转换render.hpp:215、:247experiments/shell/test_shell.py:390-400(modenormal×3)、shell.cpp:1458(接受normal)、run.py:185-187(校验)render.hpp:24空串短路;非法非空仍拒绝:experiments/shell/results/2026-10-26-empty-title/validation.json:57-68(ff/c080/eda080/e4b8拒绝、mb_err_invalid_chars_retained: true).../2026-10-26-empty-title/original-normal-invalid-text.json:20-44:conversion_callsite、candidate_event_kind、载荷长度、conversion_native_error全 nullexperiments/core/candidate_terminal.cpp无 UTF-8 校验(全文件仅 L39 尺寸消息);shell.cpp事件路由无 kind/长度白名单路由补充(不等于(c)):ADR-0008 已把 Alacritty 候选与 Win32 实验 shell 降为参考;产品 Qt 入口用
QString::fromUtf8(src/qt/terminal_widget.hpp:210、src/qt/main.cpp:23)不抛异常,且目前没有 OSC 标题→窗口标题通路(只有固定setWindowTitle,src/qt/main.cpp:17)。同一条严格转换门槛因此不在产品路线里;但 ADR-0008 写明"本次路线确认不关闭 #34、R2 或任何真实功能缺口",这不能作为关闭依据。一个下一步观测
在三个转换点(
render.hpp:215、:247、shell.cpp:821)与事件路由加有界标量:调用点 id、输入字节长度、首个非法字节偏移、GetLastError,以及event.kind/字节长度;再跑一次mode normal(单轮、40 s 外层期限、候选构建,沿用test_shell.py:390-400原入口),只记录是否复现与触发调用点。若未复现,按docs/milestones/R2-local-terminal.md:59记为"本批未复现 + 下一可证伪假设",不改判旧因。能否关闭
不能,本项原文即禁止:
docs/TRACKING.md:48同样登记为"原事件 kind/载荷未知,不能回填根因"。边界
build-diag/CMakeCache.txt:TERMFORGE_BUILD_CANDIDATE_ADAPTER:BOOL=OFF),未运行任何 GUI/normal场景,未新增诊断或改测试。4211763能否原样重建。Merge pull request #282 from JavaZeroo/diag/title-event-bytes
JavaZeroo commentedon Nov 1, 2026
按「不死磕」原则关闭:旧 candidate normal-1 的未知 invalid text 事件
关闭理由
用户明确「可以接受不完美、不需要一直死磕一个问题」。本项属于批次内不可复现、诊断已就位的一类,因此按此原则关闭。
本项已有的证据
已在候选事件路径为标题事件加入有界诊断:异常时报告
kind、字节数与十六进制前缀(上限 32 字节),使下次复现可直接看出是空串、代理对截断还是非 UTF-8 数据。已就位的诊断(再次命中时可立即判读)
invalid text in title event: kind=2 bytes=…hex=…关闭时的真实状态
本项不是根因修复。原始失败记录仍保留,未被新批次覆盖。
重开条件
若同类失败再次出现,凭上述诊断字段可直接判读,恢复本项即可,无需重做本轮探索。