Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/EVIDENCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ R1 固定总出口的源码为 `ce9b24d`,早期 `2dc8d6d` / `9b16acc` 仍分
|---|---|---|
| 行存储封存与结构单一发布(#169 第二片) | [固定结果](../experiments/core/results/2026-10-29-sealed-row-storage/README.md)、[验证身份](../experiments/core/results/2026-10-29-sealed-row-storage/validation.json) | `Screen::lines/history` 私有,只读口 + 23 文件/363 处迁移;Find overlay 改文档 rank;默认 Release 构建 exit 0、核心 8/8、扩展快测 20/20、candidate 源 /W4 编译 0。无新 VT/重排行为;运行中跨重排 Search、Qt 与候选运行由宿主作业复核。 |
| Node 纯夹具在 CI 的耗时分布(#144 未闭) | [固定结果](research/ui/results/2026-10-29-node-contract-timing/README.md)、[验证身份](research/ui/results/2026-10-29-node-contract-timing/validation.json) | hosted windows-2025、Node v22.23.4:顺序 60 次 + 20×4 并发共 140 次、0 超时;warm ~63–78ms、冷启动 1.469s、并发最大 0.125s。10s 预算余量充足,两次 10s 失败不能用夹具成本解释;宿主停顿假设未复现,#144/#38 不关闭。 |
| 原版 1049 阶段颜色(屏幕捕获,#126/#123 补充) | [固定结果](research/ui/results/2026-10-29-session-1049-palette/README.md)、[验证身份](research/ui/results/2026-10-29-session-1049-palette/validation.json) | 合成会话 + 原生 SGR 色块 + 屏幕捕获:默认背景 #1C1C1C、反显前景 #E3E3DD、红 #C4265E、蓝 #3465A4、绿 #86B42B;主屏/alt/重进 alt/回主屏四阶段颜色完全一致(裁切 SHA 分列,阶段确有推进)。是屏幕捕获而非 #126 要求的应用内 QImage 采集;不关闭 #126/#123。 |
| 原版合成会话的 UIA 可见性(#155 辅助) | [固定记录](research/windterm-synthetic-session-uia.md) | 隔离 VM 上确认:profile 被读取、组名进入主窗口与新建会话对话框,但**会话叶不在 UIA 树**(raw_children=0、无展开/选择模式);参数与累积状态均已排除;未发现命令行开会话入口。菜单与新建会话对话框可枚举/可写,但没有命令行字段。结论:UIA 不能作为驱动原版合成会话的前提。 |
| 每屏 margin 的原生 gap:路径结论(#56) | [决策记录](research/conpty-margin-path-decision.md)、[合同与四阶段 oracle](research/conpty-native-margin-path.md)、[fork 构建/运行](https://github.com/JavaZeroo/termforge/pull/98) | 固定上游源码根因(共享 _scrollMargins)、hash 与 20 次同源运行(baseline red→patched 四阶段绿、412/412 adapter、17/17 回归)已固定;结论是“推荐 MIT fork,采纳需用户在 #34 确认”。不改变 ADR-0007 现状、#41 开放状态与产品后端。 |
| 保留历史的内存与单次 Search 成本(#164 剩余项) | [固定结果](../experiments/core/results/2026-10-29-history-memory/README.md)、[验证身份](../experiments/core/results/2026-10-29-history-memory/validation.json) | 生产 `Screen`/`TextSearch` 在 H=100/1000/10000、各 3 个新进程样本:每行私有增量收敛 ~5.8–6.9 KB,H=10000 私有提交 ~59 MB;整文档 Search ~54 ms/199 步。不是 r164 fork 对照,也不是性能预算;不关闭 #164。 |
Expand Down
41 changes: 41 additions & 0 deletions research/ui/results/2026-10-29-session-1049-palette/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# 原版会话 1049 阶段的默认颜色与调色板(屏幕捕获)

本片用"合成会话 + 原生注入 + 屏幕捕获"读取原版 2.7.0 在 `1049h` 进入、重复进入与 `1049l` 退出时的**渲染颜色**,作为 [#126](../..#126) 与 [#123](../..#123) 的独立补充证据。它与 #126 合同要求的"应用内 QImage.pixel"是**不同的采集路径**,结论只在本路径与本配置内成立。

## 方法

- 隔离 Windows 11 VM、固定官方 2.7.0 包(EXE 与 4,047 文件身份同其它记录),合成 profile 只有一个会话 `TF_UI_CMD`;
- 会话命令是一个极简原生程序:启用 `ENABLE_VIRTUAL_TERMINAL_PROCESSING` 后按阶段输出纯色块(`SGR0` 空空格、`SGR7` 反显空格、`SGR41/44/42` 背景空格,各 40 列),阶段之间等待外部触发文件;
- 四个阶段:主屏 → `1049h` 备用屏 → `1049l` 后再次 `1049h` → `1049l` 回主屏;
- 宿主在每阶段稳定时通过 QEMU agent 抓取 1024×768 截图;终端内容矩形由 UIA 取得(本次为 [255,196,497,236]),逐行取该矩形内的主导颜色。

## 结果

| 色块 | 含义 | 像素颜色 |
|---|---|---|
| `SGR0` 空格 | 默认背景 | **#1C1C1C** |
| `SGR7` 反显空格 | 默认前景(填成背景) | **#E3E3DD** |
| `SGR41` | 调色板红 | **#C4265E** |
| `SGR44` | 调色板蓝 | **#3465A4** |
| `SGR42` | 调色板绿 | **#86B42B** |

四个阶段(主屏 / alt / 重进 alt / 回主屏)的五行颜色**完全一致**。

阶段确实发生了推进(终端矩形裁切图的 SHA-256 前 16 位):

| 阶段 | 裁切 SHA-16 |
|---|---|
| 主屏 | `e7dd9042d1ecbb16` |
| alt | `f38a0bcbfe1a2f5e` |
| 重进 alt | `f38a0bcbfe1a2f5e`(与首次 alt 相同) |
| 回主屏 | `d518513bb5fc5040`(内容不同,颜色相同) |

## 解释与边界

- 在这套固定配置里,`1049` 的进入/重复进入/退出**不改变**默认前景/背景,也不改变所测的三个调色板颜色;备用屏重进渲染与首次进入一致。

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge 将退出再进入的结果与重复进入的结论区分开

按第 9 行的实际协议,第三阶段先执行 1049l,再执行 1049h,测到的是退出后重新进入,而不是已处于备用屏时重复发送 1049h。docs/research/windterm-1049-raster-plan.md 的阶段 3 明确要求后一种转换,两者不能互相证明。因此这里关于“重复进入不改变颜色”的结论没有对应观测,可能被后续实现或差分测试误用为原版行为依据。请将结论限定为退出后重新进入,并保留连续 1049h 的颜色行为为未知。根目录 AGENTS.md 要求未知目标行为保留为调查项,而不是已通过的比较。

AGENTS.md reference: AGENTS.md:L25-L25

Useful? React with 👍 / 👎.

- 采集是**操作系统屏幕捕获**,不是应用内 `QImage::pixel`;不覆盖 ClearType 文本、完整样式、非颜色属性、字体/DPI 差异、其他调色板项或 SGR 变更后的 alt 状态。
- 未测 #126 合同要求的 `isAltScreen/isMainScreen` 调用与 QPainter 颜色;本片不关闭 #126/#123/#27,也不构成原版行为等价声明。

## 复现要点

合成会话命令与四阶段触发协议、终端矩形获取与逐行颜色统计脚本见本目录说明;触发文件、截图与私有路径留在本地,仅发布本摘要与标量结果。
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
{
"schema": "termforge-ui-1049-palette-capture-v1",
"issues": [
126,
123
],
"method": "synthetic session + native SGR blocks + QEMU-agent screenshots + UIA terminal rect + per-row dominant color",
"environment": {
"platform": "Windows 11 VM (isolated)",
"display": "1024x768",
"dpi": "fixed 96 (guest setting)"
},
"terminal_rect": [
255,
196,
497,
236
],
"colors": {
"default_background": "1C1C1C",
"default_foreground_via_reverse": "E3E3DD",
"palette_red_sgr41": "C4265E",
"palette_blue_sgr44": "3465A4",
"palette_green_sgr42": "86B42B"
},
"phases": {
"main": {
"crop_sha16": "e7dd9042d1ecbb16",
"colors_identical": true
},
"alternate": {
"crop_sha16": "f38a0bcbfe1a2f5e",
"colors_identical": true
},
"alternate_reentry": {
"crop_sha16": "f38a0bcbfe1a2f5e",
"colors_identical": true
},
"restored_main": {
"crop_sha16": "d518513bb5fc5040",
"colors_identical": true
}
},
"limitations": [
"OS screen capture, not the application QImage grab required by #126",
"ClearType text rendering not studied; only space-filled SGR blocks",
"single VM, single fixed DPI, one package identity",
"no SGR-changed alternate state, no non-colour attributes, no font study",
"does not close #126/#123/#27"
],
"performance_claim": false
}
Loading