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
4 changes: 2 additions & 2 deletions docs/EVIDENCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
| 自主 C++ + Qt Widgets + 固定微软 ConPTY 正式目标 | [ADR-0007](adr/0007-bundled-microsoft-conpty.md) / [ADR-0008](adr/0008-cpp-core-qt-widgets.md) 记录用户确认;新组合的实现与验证另行留证,不引用旧默认或 Alacritty 通过结果代替 |
| 既有默认/Alpha:自主 C++ + 系统 ConPTY + Win32 | R1 限定总验收和有限 VT/Unicode 子集;与当前 Qt/固定后端目标组合分列 |
| Alacritty 历史参考:`termforge.4` + 系统 ConPTY | [固定来源/补丁台账](../experiments/candidates/alacritty/PROVENANCE.md)、[适配边界](../experiments/core/CANDIDATE.md)、[#39 字素合同](research/streaming-graphemes.md);结果仅证明其固定配置,不转为自主 C++ 能力 |
| PR #50 历史联合基线:`termforge.4` + 固定官方 ConPTY | [Draft PR](https://github.com/JavaZeroo/termforge/pull/50) / [#47](https://github.com/JavaZeroo/termforge/issues/47);[联合基线](research/joint-conpty-baseline.md)已固定,产品回归未全绿;该基线当时的 resize/工作区失败由 #51/#63 后续在原实验分支限定闭合,#52 GUI Vim 及新组合完整验收仍未完成。[#53 的未完成粘贴、负例及原八会话证据](https://github.com/JavaZeroo/termforge/blob/848cb0e621a291f732cc0e046d0b2fab6a77d962/docs/research/resize-replay-cost.md)已按限定合同整合到实验父分支;不包含同次真实 CF/IME 或完整官方矩阵验收 |
| PR #50 历史联合基线:`termforge.4` + 固定官方 ConPTY | [PR #50(已关闭)](https://github.com/JavaZeroo/termforge/pull/50) / [#47](https://github.com/JavaZeroo/termforge/issues/47);[联合基线](research/joint-conpty-baseline.md)已固定,产品回归未全绿;该基线当时的 resize/工作区失败由 #51/#63 后续在原实验分支限定闭合,#52 GUI Vim 及新组合完整验收仍未完成。[#53 的未完成粘贴、负例及原八会话证据](https://github.com/JavaZeroo/termforge/blob/848cb0e621a291f732cc0e046d0b2fab6a77d962/docs/research/resize-replay-cost.md)已按限定合同整合到实验父分支;不包含同次真实 CF/IME 或完整官方矩阵验收 |

R1 固定总出口的源码为 `ce9b24d`,早期 `2dc8d6d` / `9b16acc` 仍分别只代表原记录。源 VT、原生控制台 CHAR_INFO、transport、末端状态、自有 DIB、绘制提交和真实呈现是不同检查点;未知端点保持未知。

Expand Down Expand Up @@ -73,7 +73,7 @@ R1 固定总出口的源码为 `ce9b24d`,早期 `2dc8d6d` / `9b16acc` 仍分
| 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 分列,阶段确有推进);另有两组属性语义:进入前设 31;44 并保持时 M/A/R 三阶段同为 #3465A4/#C4265E;备用屏内改 32;45 再退出时 M2 回到默认(#1C1C1C/#E3E3DD),即 1049h 保存、1049l 恢复进入时刻属性。是屏幕捕获而非 #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 开放状态与产品后端。 |
| 每屏 margin 的原生 gap:路径结论(#56) | [决策记录](research/conpty-margin-path-decision.md)、[合同与四阶段 oracle](research/conpty-native-margin-path.md)、[fork 构建/运行(原 PR #98,已关闭)](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。 |
| 结构重排下的增量 Search(#169 延期项 / #27 前置) | [固定结果](../experiments/core/results/2026-10-29-search-reorder/README.md)、[验证身份](../experiments/core/results/2026-10-29-search-reorder/validation.json) | `TextSearch` 以文档 rank 维护扫描前缀:order revision 检测、局部 `repair_order`、rank 化 `rewind`/`match`/`prune`。新 `search_reorder_core` 覆盖扫描中重排、重排后导航、淘汰与有序回归;核心 10/10。无 UI/Find 集成、无重排成本测量,不声明 #27/R2 通过。 |
| 默认核心缩小与重绘交错(#156) | [固定四-case机制诊断](../experiments/shell/results/2026-10-29-resize-repaint-witness/README.md)、[脱敏验证](../experiments/shell/results/2026-10-29-resize-repaint-witness/validation.json) | A/C保留2499B,B/D在第五段重绘首次失效且行分配路径不同;只见证机制,原CI切点/根因未知,未修生产。witness结束后Job仍active1,发起一次终止后归零;成员身份/逐句柄退出未知,不称全树自然退出。 |
Expand Down
2 changes: 1 addition & 1 deletion docs/research/conpty-margin-path-decision.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
| 路径 | 现有证据 | 结论 |
|---|---|---|
| 上游修复后固定正式包 | 已固定根因;官方包 native 仍红 | 长期首选;需把 oracle/最小补丁送上游,接纳与发布未知 |
| 小型 MIT fork(固定 1.25 + 单 margin 补丁) | [构建入口](https://github.com/JavaZeroo/termforge/pull/96):baseline focused 1 fail、patched focused 1/1、full adapter 412/412 零 skip;[同源原生/末端对照](https://github.com/JavaZeroo/termforge/pull/98):8 次 VT-on/off × 两尺寸,patched 四阶段原生全绿、transport 末端正确、自然 37/EOF109/Job0;[控制场景补充](https://github.com/JavaZeroo/termforge/pull/100):12 次(main-only / default-alt / repeat-alt × 两尺寸 × 两版),baseline 的错误精确落在预期阶段,patched 全部阶段文字/完整格属性/光标/viewport 正确 | **唯一已有“同输入 red→green”的路径**;仍是候选,未接入产品 |
| 小型 MIT fork(固定 1.25 + 单 margin 补丁) | [构建入口(原 PR #96,已关闭)](https://github.com/JavaZeroo/termforge/pull/96):baseline focused 1 fail、patched focused 1/1、full adapter 412/412 零 skip;[同源原生/末端对照(原 PR #98,已关闭)](https://github.com/JavaZeroo/termforge/pull/98):8 次 VT-on/off × 两尺寸,patched 四阶段原生全绿、transport 末端正确、自然 37/EOF109/Job0;[控制场景补充(原 PR #100,已关闭)](https://github.com/JavaZeroo/termforge/pull/100):12 次(main-only / default-alt / repeat-alt × 两尺寸 × 两版),baseline 的错误精确落在预期阶段,patched 全部阶段文字/完整格属性/光标/viewport 正确 | **唯一已有“同输入 red→green”的路径**;仍是候选,未接入产品 |
| 关闭 ENABLE_VIRTUAL_TERMINAL_PROCESSING 当 raw 后端 | 80×24 末端表面正确,但原生格已把 ESC 当字面内容,12×7 丢 BOTTOM_FIXED | 拒绝 |
| 旧 passthrough flag | 第一方已删除;当前头文件 0x08 是字素宽度策略 | 拒绝 |
| 换另一 console server / 桥接层 | 无同输入原生+末端证据,维护面远大于局部状态修正 | 不采纳;如要调查需另立证据项 |
Expand Down
2 changes: 1 addition & 1 deletion docs/research/sender-fence.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# 实际输入 worker 的持块合同与 sender fence

本合同对应 [#62](https://github.com/JavaZeroo/termforge/issues/62),为 [#53](https://github.com/JavaZeroo/termforge/issues/53)提供可复用的协调机制。**实现属于 `fix/conpty-backend-r47` / [Draft #50](https://github.com/JavaZeroo/termforge/pull/50) 的实验整合,尚未进入 main。** 固定运行源码为 `519a3f37d52983062cd99b7efd805f183961fa4d`;完整 source/tree/blob、实际 EXE、官方后端文件对、原始日志 SHA 和逐字段结果见[验证记录](../../experiments/shell/results/2026-10-26-sender-fence/validation.json)。这是实际 `InputQueue` / `PasteTransfer` / ConPTY worker 的限定验证,不是 UI、VT 或操作系统背压验收。
本合同对应 [#62](https://github.com/JavaZeroo/termforge/issues/62),为 [#53](https://github.com/JavaZeroo/termforge/issues/53)提供可复用的协调机制。**实现属于 `fix/conpty-backend-r47` / [原 Draft PR #50(已关闭)](https://github.com/JavaZeroo/termforge/pull/50) 的实验整合,尚未进入 main。** 固定运行源码为 `519a3f37d52983062cd99b7efd805f183961fa4d`;完整 source/tree/blob、实际 EXE、官方后端文件对、原始日志 SHA 和逐字段结果见[验证记录](../../experiments/shell/results/2026-10-26-sender-fence/validation.json)。这是实际 `InputQueue` / `PasteTransfer` / ConPTY worker 的限定验证,不是 UI、VT 或操作系统背压验收。

## 修正的夹具假设

Expand Down