From f7fe002fda59c3a9ed82380103ea21ea7ce430f5 Mon Sep 17 00:00:00 2001 From: JavaZeroo <71128095+JavaZeroo@users.noreply.github.com> Date: Thu, 29 Oct 2026 22:00:43 +0800 Subject: [PATCH] research(ui): summarise the observed 1049 semantics against the core refs #123 #126 Collects the colour, attribute and cursor experiments into one table and records that the core homes the cursor and resets colours on entry while the observed original keeps both; differs from ADR-0006 policy only in needing user confirmation, so no code changes. --- .../2026-10-29-session-1049-palette/README.md | 26 +++++++++++++ .../validation.json | 39 +++++++++++++++++++ 2 files changed, 65 insertions(+) diff --git a/research/ui/results/2026-10-29-session-1049-palette/README.md b/research/ui/results/2026-10-29-session-1049-palette/README.md index 03bc86b8..4d504830 100644 --- a/research/ui/results/2026-10-29-session-1049-palette/README.md +++ b/research/ui/results/2026-10-29-session-1049-palette/README.md @@ -89,6 +89,32 @@ **归因边界**:conhost + ConPTY + WindTerm 整条管线的可观察渲染;不判定哪一层执行保存/恢复,也不等同于 #126 要求的应用内采集。 + +## 原版 1049 可观察语义(三组实验汇总) + +把本页三组独立实验合并成一份可直接引用的语义描述: + +| 维度 | 进入 `1049h` | 备用屏内 | 退出 `1049l` | 证据 | +|---|---|---|---|---| +| 当前前景/背景 | **保留**进入时刻属性 | 可任意改(36/45/32 等) | **恢复**进入时刻属性,备用屏改动不泄漏 | 组 1/2/3 色块 | +| 光标位置 | **保留**(不归零) | 可移动 | **恢复**进入时刻位置 | 色块定位:红块在 (474,340)..(513,357)(第 8 行),退出后绿块同位置 | +| 默认调色板 | #1C1C1C 背景 / #E3E3DD 前景 | 不变 | 不变 | 四阶段色块 | +| 调色板项 | 41=#C4265E、42=#86B42B、44=#3465A4、45=#8C6BC8 | 同 | 同 | 色块采样 | + +与自研核心的对照(`experiments/core/alternate_mode_test.cpp`): + +| 行为 | 原版观察 | 自研核心 | 是否一致 | +|---|---|---|---| +| 退出恢复主屏文字/光标/颜色 | 恢复 | 恢复(第 30–35 行) | 一致 | +| 进入时是否归零光标 | **不归零** | 归零(第 25–27 行) | **不一致** | +| 进入时是否重置颜色为默认 | **不重置** | 重置(第 25–27 行) | **不一致** | + +差异按 ADR-0006 需要用户确认后再改实现,本页只记录证据,不声称已对齐。 + +**采集身份**:光标实验三帧裁切 SHA-16 分别为 `e6f323395707b2bb`(进入前)、`242d869ae57799fc`(1049h 后)、`70f9f3683d0323c4`(1049l 后),阶段推进可验证。 + +**列位置局限**:色块 x=474 与设定列号不吻合,疑似 42 列终端下参考网格换行;行结论不受影响,列位置需另做一次宽终端实验。 + ## 解释与边界 - 在这套固定配置里,`1049` 的进入/重复进入/退出**不改变**默认前景/背景,也不改变所测的三个调色板颜色;备用屏重进渲染与首次进入一致。 diff --git a/research/ui/results/2026-10-29-session-1049-palette/validation.json b/research/ui/results/2026-10-29-session-1049-palette/validation.json index 4370fe16..525fd813 100644 --- a/research/ui/results/2026-10-29-session-1049-palette/validation.json +++ b/research/ui/results/2026-10-29-session-1049-palette/validation.json @@ -117,5 +117,44 @@ } ], "attribution_limit": "pipeline-level observation; layer attribution unknown" + }, + "cursor_save_restore": { + "protocol": "10-row reference grid, cursor moved to row 9 column 10, red block after 1049h and green block after 1049l, located by exact palette colours", + "frames": { + "before_entry": { + "crop_sha16": "e6f323395707b2bb" + }, + "after_entry": { + "crop_sha16": "242d869ae57799fc", + "red_block_bbox": [ + 474, + 340, + 513, + 357 + ] + }, + "after_exit": { + "crop_sha16": "70f9f3683d0323c4", + "green_block_bbox": [ + 474, + 340, + 513, + 357 + ] + } + }, + "interpretation": "1049 entry keeps the cursor position and 1049l restores the entry-time position; the column is not asserted because the reference grid may wrap.", + "limitation": "column position unresolved" + }, + "core_comparison": { + "core_file": "experiments/core/alternate_mode_test.cpp", + "matching": [ + "exit restores primary text/cursor/colours" + ], + "differing": [ + "core homes the cursor on 1049 entry (lines 25-27); observed original keeps it", + "core resets writing colours to default on 1049 entry (lines 25-27); observed original keeps them" + ], + "policy": "ADR-0006: important deviations need user confirmation; no code change made" } }