Skip to content

[R2][调查] 用受控 Qt 栅格核对原版 1049 当前颜色 #126

Closed
1 of 1 issue completed
Closed

Description

@JavaZeroo

当前已交付与未知(2026-10-29)

#129 / PR136已提供独立raw-capture-v1五阶段/五次受控栅格、17组完整H/space。首次进入与重复进入后的局部有序输出签名唯一匹配同帧SGR0,退出后匹配同帧SGR31;44;并列主要墨迹保持null,旧0grab/3grab停止记录不改。该工具切片限定关闭#129,不关闭本项;报告保留内部pen/完整样式、非颜色属性和全部grid未知。

C++首先按已观测文字/光标/颜色子集由#135接线,不能用其工程默认值反向填补原版未知。完整#27、本地shell/实际呈现及R2仍独立验收。

原范围与历史记录

用户结果

在#123绘制hook未命中后,以已核实ABI的独立Qt受控栅格读取,核对原版1049进入、重复进入和退出后的当前前景/背景颜色,解除C++模式合同中的具体未知。

真实前置

#123部分观察已保存;NAWS逐条守卫已修订并以自有loopback反例验证,旧批盲区如实保留。固定Qt5 DLL的grab/toImage/pixel/普通析构及32B对象sret参数已由官方头文件和实际导出/局部指令核实,不等待#123整体关闭。

预声明合同

  • 独立worktree/source/唯一输出目录;固定官方EXE/4047文件与Qt DLL,独立station/Job/HOME和一个合成Telnet会话;只新启动原版一次,capture45秒/CLI等待60秒,整程期限另列。
  • 严格沿docs/research/windterm-1049-raster-plan.md的五阶段、精确字节/SHA:M0双H校准,1049入A0,alt换SGR的A1,重复入A2,退出M1;各阶段仅一次viewport grab。
  • marker rect、DPR/image大小、显式空格背景和双H墨迹先校准,ROI越界/空图/无墨迹/不一致即unknown并结束,不平移搜索或重跑;QImage.pixel读QRgb,不猜内部图像格式。
  • 公共显式校验、来源/阶段/回收完整核对和脱敏标量摘要;原始图片/ROI/插桩/路径/原版资源留local。可见像素、栅格及presented分别,不能据此宣称真实呈现或性能。

父项#123;本项不修原版缺陷、不决定重要差异、不过完整终端/真实本地shell或R2验收。

Activity

  1. added
    ready-for-agent范围明确且真实阻塞已解除,可开始实施
    research有明确问题与出口的证据调查
    on Oct 28, 2026
  2. added a commit that references this issue on Oct 28, 2026
  3. JavaZeroo commented on Oct 28, 2026

    @JavaZeroo
    OwnerAuthor

    #146 的独立 SGR1 调查 / Draft PR149已发布待最终审查,尚未合入main。实际源a115bc8的一次执行取得5阶段/5grab、28对H/space/8064 QRgb;所有同帧SGR0/SGR1完整有序签名不可分,entry/repeat/return唯一分类均null。不能推出SGR1被忽略、bold不支持或1049保存/重置了内部style;字重、实际glyph/font/fallback及profile偏好有效性保持unknown。

    普通/-O出口逐字节同;独立stdlib复核全部4047源/副本、13源、模板/注入、输入/DSR/NAWS、像素签名与回收,记录Job0/3/0。旧颜色输出证据与本次非颜色问题分别保留,未补抓/改ROI/重跑,未更改C++策略。当前父项及完整#123/#126/#27、实际呈现/性能/R2门槛均不因这次有界采集通过。

  4. added a commit that references this issue on Oct 29, 2026
  5. JavaZeroo commented on Oct 29, 2026

    @JavaZeroo
    OwnerAuthor

    补充观察(SGR 在 1049 切换前后的保持性),回答 #126/#123 关心的"进入/退出后的当前颜色":

    协议:合成会话里的原生命令先设 SGR 31;44(红字蓝底),在切换前不再 reset;阶段 M(主屏)→ 1049h → 阶段 A(备用屏)→ 1049l → 阶段 R(回主屏),每阶段重新设一次 31;44 后画"当前背景空格 + 反显空格",外接触发文件同步,逐阶段截图并取终端矩形内逐行主导色。

    结果(三阶段一致):

    阶段 空格行(当前背景) 反显行(当前前景)
    M 主屏(31;44) #3465A4(蓝) #C4265E(红)
    A 进入备用屏后 #3465A4 #C4265E
    R 退出备用屏后 #3465A4 #C4265E

    即:在这条 conhost + ConPTY + WindTerm 管线里,1049h/1049l 切换不会重置也不会恢复当前 SGR 属性——红字蓝底在进入、退出后都保持。

    归因边界:这是整条管线的可观察渲染,不能据此判定是 WindTerm 还是 conhost/ConPTY 的哪一层保持/转发了属性;与 #126 合同要求的应用内 QPainter/QImage 采集不同。原版行为等价仍需独立证据。

    本条不改变产品代码;#126/#123/#155 保持开放。

  6. added 3 commits that reference this issue on Oct 29, 2026
  7. JavaZeroo commented on Oct 29, 2026

    @JavaZeroo
    OwnerAuthor

    结论:颜色问题已由受控 Qt 栅格证据回答,关闭本项

    合同执行

    #129 / PR136 在独立 worktree、固定官方 EXE(SHA 7b10531d…)与 4,047 文件清单(SHA e459adf2…)、独立 station/Job/HOME、单个合成 loopback Telnet 会话下,按 五阶段方案执行了一次原版运行:5 个阶段各一次 viewport grab,17 组 H/前置 space、34 个完整 QRgb 数组全部取得。

    颜色结论(同帧、同文档行、逐字节有序签名比较)

    阶段 观察 唯一匹配的正控
    phase1 首次 1049h A0 原样输出 同帧显式 SGR0
    phase3 重复 1049h A2 原样输出 同帧显式 SGR0
    phase4 1049l M1 原样输出 同帧显式 SGR31;44

    即:进入与重复进入后,原版按默认颜色(SGR0)渲染;退出后回到进入前的 SGR31;44。这正是本项要核对的"进入/重复进入/退出的当前前景与背景颜色"。

    独立佐证(不同采集路径)

    本组随后用屏幕捕获 + SGR 纯色块做了交叉验证(结果):

    • 默认背景 #1C1C1C、默认前景 #E3E3DD;
    • 进入/退出不改变默认色;把属性设为 31;44 后进入,备用屏继续用 31;44;退出时恢复进入时刻的属性——与"退出回到 SGR31;44"一致(phase1 之前源已显式 SGR0,故进入侧匹配 SGR0)。

    保留的未知(不属于本项)

    • phase2(alt 内换 SGR)两处 H 的 16/16 主要墨迹并列,dominant_ink_rgba 保持 null;
    • 内部 pen、非颜色属性(粗体/下划线等)、完整样式与活动缓冲区语义 → 由 [R2][调查] 补齐原版 1049 样式与活动缓冲区观察 #123 继续跟踪;
    • 真实呈现/性能/本地 shell 与 R2 整体验收不在本项范围。

    下游

    C++ 侧接线已由 PR #135 限定关闭;后续不得用工程默认值反向填补这些原版未知。

    据此关闭 #126。

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

    ready-for-agent范围明确且真实阻塞已解除,可开始实施research有明确问题与出口的证据调查

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions