Skip to content

[R2-02][核心] 完成共同轨迹、真实应用、已知差异与 fuzz 比较 #25

Closed

Description

@JavaZeroo

当前方向与确认边界(2026-10-26)

共同轨迹、规范参考与 fuzz 的历史结果保留。当前复刻默认 WindTerm 2.7.0 实际行为优先;pyte/Alacritty/通用规范用于解释差异,不能替代原版观察。未知目标行为及重要差异由 #27–#30/#19 接续,正式选型归 #34。

依据:已确认方向与决策权限。下文保留当时的限定范围与证据,原关闭状态不变;历史决定不作为当前用户确认。

用户结果

用相同输入和状态检查点比较自研核心与实际外部候选,形成终端兼容路线的行为证据。

工作范围

  • 复用共同子集,增加异常恢复、备用屏、滚动区、resize、查询回复以及真实 shell/分页器/编辑器 headless 轨迹。
  • 对六类 pyte 已知差异结合公开规范和第二独立参考逐项裁决,保留“参考差异”与“实现错误”的区别。
  • 建立可持续运行的 fuzz、最早失败定位、最小失败复现和固定回归;不同支持子集分别报告。
  • 本项比较核心行为,不把 headless 轨迹当成产品 GUI 的真实 TUI 验收。

验收

  • 同一输入、分块、检查点和完成端点下的独立结果可复验,差异定位到具体状态与序列。
  • 六类已知差异均有规范/第二参考依据和明确裁决,fuzz 失败可最小化并转为回归。
  • 真实应用进入、操作、退出的核心轨迹及限制有原始记录;未覆盖能力不判为通过。

父项:#20。真实前置:#24。

Activity

  1. added
    blocked有明确未完成前置;见原生 blocked-by
    research有明确问题与出口的证据调查
    on Oct 24, 2026
  2. added
    ready-for-agent范围明确且真实阻塞已解除,可开始实施
    and removed
    blocked有明确未完成前置;见原生 blocked-by
    on Oct 24, 2026
  3. JavaZeroo commented on Oct 24, 2026

    @JavaZeroo
    OwnerAuthor

    首个共同轨迹切片已提交并推送:8a316c2。

    • compare_candidate.py 对同一 19 场景×5 分块运行自研与 Alacritty 原生 trace,保存原始 JSONL/stderr、最早差异和双二进制重放信息。
    • Windows 合成摘要:95 次、1011 检查点,85 次一致、10 次差异;erase_display 与 styled_scroll_blank 保持待裁决。erase_display 按五种计划分别固定最早差异,不冒充统一偏移。
    • 新增 3 个门槛,连同原有 8 个差分测试共 11/11 通过;缺失候选明确为 execution_failure。
    • Windows/Ubuntu candidate workflow 已加入双原生 trace 构建与共同矩阵。execution_passed 不等于语义接受,摘要固定 semantic_acceptance=false。

    #25 保持 OPEN:六类 pyte 差异规范/第二参考裁决、真实 shell/分页器/编辑器核心轨迹、持续 fuzz/最小化,以及新增候选差异裁决尚未完成。#26 尚未开始性能或路线决定。

  4. JavaZeroo commented on Oct 24, 2026

    @JavaZeroo
    OwnerAuthor

    六类 pyte 已知差异已完成逐项裁决并推送:233671b。

    • decisions.md 对照 ECMA-48 6.1.6/8.3.22/8.3.54/8.3.147、Unicode 15.0 和 Alacritty 第二参考,区分规范事实、实现行为与项目策略;不宣称 WindTerm 已验证。
    • 保留自研的宽字行末、双格覆盖、组合标记和 CUU pending-wrap 行为,五类 pyte 差异继续精确锁定。
    • styled_scroll_blank:SU 未规定新行样式,项目决定采用默认样式并修正自研实现;擦除仍使用当前样式,历史保留原样式。
    • 修复后 pyte 矩阵:95 次/1011 检查点,70 一致、25 保留差异;Alacritty:90 一致、5 差异。剩余仅 erase_display,未裁决。
    • 完整 Release 构建、11 个差分测试及 core/differential CTest 通过;PLAN 未改变,FEATURES/EVIDENCE 已同步。

    #25 保持 OPEN:erase_display、异常恢复/备用屏/滚动区/resize/查询回复扩展轨迹、真实应用核心轨迹和持续 fuzz/最小化仍待完成。

  5. JavaZeroo commented on Oct 24, 2026

    @JavaZeroo
    OwnerAuthor

    erase_display 已完成独立裁决并推送:bb359ae。

    • ED1:ECMA-48 8.3.39 要求页首至光标均 erased;pyte/自研正确,Alacritty 保留前序行是候选实现错误。
    • ED2:规范不定义历史迁移,xterm 另有 ED3 saved-lines;保留自研清屏但不新增/清空历史,Alacritty 迁入历史记为参考策略差异。
    • 新增 ed1_only/ed2_only 公开最小报告;复合差异按五种分块固定输入哈希、最早差异和双方最终状态哈希。
    • 当前候选矩阵为 90 match + 5 reference_difference,differences_adjudicated=true 仅覆盖这批差异;semantic_acceptance=false,不把它们算作兼容一致。
    • 新增改变输入不能复用裁决的负例,全部 12 个差分测试及 differential CTest 通过。

    #25 保持 OPEN:异常恢复/备用屏/滚动区/resize/查询回复扩展轨迹、真实应用核心轨迹和持续 fuzz/最小化仍待完成。

  6. JavaZeroo commented on Oct 24, 2026

    @JavaZeroo
    OwnerAuthor

    扩展能力轨迹已提交并推送:5c50c80。

    • capability_matrix.py 覆盖备用屏、滚动区、光标查询、异常恢复各 5 种分块,共 20 次。
    • 自研严格模式的备用屏/滚动区/查询为 15 次 core_unsupported,明确不是兼容通过;候选均真实执行成功。
    • 独立断言:备用屏恢复 A/BZ、滚动区 B/D/X、查询回复 ESC[1;2R。
    • 测试 trace 新增显式 --recovery,严格默认不变;非法 UTF-8/未知 CSI/OSC 的 Recovery 5 次与候选一致,双方分块不变。
    • 新增 3 个门槛,差分与能力测试合计 15/15;完整 Release 构建及 core/differential CTest 通过。Windows/Ubuntu candidate workflow 已加入此矩阵。

    摘要明确 resize_covered=false、real_application_covered=false、semantic_acceptance=false。#25 继续保持 OPEN,剩余 resize/真实应用核心轨迹与持续 fuzz/最小化。

  7. JavaZeroo commented on Oct 24, 2026

    @JavaZeroo
    OwnerAuthor

    resize 对照切片已提交并推送:64d9153。

    • 两个测试 trace 在同一输入结束点接收 --resize=2x6,并追加同偏移检查点;驱动已核验双方参数和实际尺寸,避免单侧 resize 的假差异。
    • 自研物理裁剪保留光标列 5;Alacritty 重排为 123456 / 7890、光标列 4。5 种分块均记为 resize_difference,不计为一致,重排合同留给 [R2-06][终端] 定义并验证 resize、逻辑行与历史语义 #29。
    • 扩展矩阵现为 25 次:15 core_unsupported、5 Recovery match、5 resize_difference;resize_covered=true,real_application_covered=false,semantic_acceptance=false。
    • 新增 resize 门槛后共 16 个差分/能力测试,另有 2 个 Rust 测试;完整 Release 构建及 core/differential CTest 通过。

    #25 保持 OPEN,剩余真实 shell/分页器/编辑器核心轨迹和持续 fuzz/最小化。

  8. JavaZeroo commented on Oct 24, 2026

    @JavaZeroo
    OwnerAuthor

    真实应用核心轨迹已提交并推送:883a565。

    • real_app_capture 通过 ConPTY 启动真实 Windows cmd、more.com、Vim:正常退出、q 退出、Vim 无配置/无交换文件/无 viminfo 编辑后 :wq,文件内容独立核验。
    • real_app_matrix.py 将真实字节原样回放给双方核心,自研使用 Recovery。分页器与 Vim 为 match;shell 仅保留已裁决 ED2 历史策略 reference_difference。
    • 摘要含应用版本、退出状态、源码/二进制哈希和 real_application_covered=true;同时明确 presented_done=null、semantic_acceptance=false,不是产品 GUI/TUI 验收。
    • 新增 3 个门槛,合计 19/19;完整 Release 构建及 core/differential CTest 通过。Windows candidate workflow 强制执行,其他环境明确可选跳过。

    #25 保持 OPEN,剩余持续 fuzz、最早失败定位和最小失败回归。#26 未开始路线决定。

  9. JavaZeroo commented on Oct 24, 2026

    @JavaZeroo
    OwnerAuthor

    #25 已完成并推送,最终提交 d130ee9(跟踪文档 d9d3409)。

    验收对应:

    • 共同输入/分块/检查点:95 次、1011 检查点,90 一致、5 已裁决参考差异;六类 pyte 与 ED1/ED2 均有规范/第二参考裁决。
    • 扩展能力:备用屏、滚动区、查询回复、Recovery、resize 的支持边界清楚;未支持不冒充通过。
    • 真实 Windows cmd、more.com、Vim 进入/操作/退出和文件结果已核验;headless 不等于 GUI 验收。
    • 有界 fuzz 保留首败种子/最早差异/原始输入,逆序字节最小化并固定原例与最小例完整签名;改变输入和未登记新差异仍失败。
    • 合计 23 项差分/能力/真实应用/fuzz 测试通过,完整 Release 构建及 core/differential CTest 通过;Windows/Ubuntu candidate workflow 已接入。

    FEATURES/EVIDENCE/TRACKING 已同步。语义差异和少量种子不作广泛兼容声明。#26 的真实前置已解除,#20 与 R2 路标保持开放。

  10. 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

    research有明确问题与出口的证据调查

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions