Skip to content

[R2][Bug] 合法空标题事件导致候选 GUI 抛出 invalid text #45

Closed

Description

@JavaZeroo

候选 FFI 合同已允许空的 title 事件(kind=2、bytes空;candidate_core 的 empty_payload_events)。GUI 的 route_terminal_events 无条件将其交给 render.hpp::utf16,而当前转换器把合法空UTF-8串也判为 invalid text。需要用真实自有 console→ConPTY→候选GUI路径复现后修复。

本地421候选全套出现过 normal-1 的 invalid text,当时已看到 TF_AFTER,但原样本未记录事件种类/字节数;该原失败与空标题缺口之间的因果关系仍未知。cmd的 memory 文本不作为本机OOM证据。新最小复现不能回填该旧事件。

  • 真实空标题/OSC0事件进入GUI的受监督 red(自有Job/非输入desktop,失败保留)。
  • 支持合法空转换或按事件合同处理;非法非空UTF-8继续拒绝,原文字保真不变。
  • 独立反例、真实空标题更新及回收通过;原normal负载/期限保持,旧失败单独保留。

父项 #38,属于R2候选GUI可靠性边界;不以此宣称完整VT或WindTerm等价。

Activity

  1. added
    bugSomething isn't working
    ready-for-agent范围明确且真实阻塞已解除,可开始实施
    compatibility平台、协议或行为兼容问题
    on Oct 26, 2026
  2. JavaZeroo commented on Oct 26, 2026

    @JavaZeroo
    OwnerAuthor

    已由 #43 合入修复:合法空 UTF-8 转为空 UTF-16,非空转换的 MB_ERR_INVALID_CHARS 和四类非法输入拒绝保持。

    真实 console→ConPTY→候选 GUI 最小反馈,旧代码收到完整空标题 OSC 后约 0.45 秒报 invalid text;修后两 fresh GUI 存活并完成回收,旧 EXE 反事实仍失败。候选 Windows CI 持续执行实际标题 GUI 与 renderer 两项,renderer-only 路径变更也会触发。公开前后证据已同步。

    旧 normal-1 的异常调用点和载荷仍未知,已单独保留原失败摘要;本项只关闭已实际复现的合法空标题接口缺口,#38 继续跟踪其余独立回归。

  3. removed
    ready-for-agent范围明确且真实阻塞已解除,可开始实施
    on Oct 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingcompatibility平台、协议或行为兼容问题

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions