Repository navigation
Description
当前处置(2026-11-01)
本项已按用户选择34B关闭:C++/Qt/固定ConPTY路线与接口收敛说明已登记。剩余产品行为归#28/#29/#30,最终产物归#35,跨屏归#297;不再等待相同路线选型。性能数值仍需单独确认。下方保留历史检查点,不作为当前待办。
当前方向与确认边界(2026-10-28)
用户已确认正式组合:自主 C++ 终端核心+当前采用 Qt Widgets GUI+随包固定微软 ConPTY。确认依据:用户明确“继续自主开发 C++ 核心”;对上一轮 Qt Widgets 建议确认“这个可以先用你推荐的来”;PTY 已按 ADR-0007 确认。Alacritty 及 Win32/DWrite/D2D 成果保留参考与历史身份,不继续作为并行产品路线扩展。
具体实现仍须原版行为优先,重要差异及原版缺陷修正单独确认;性能数值容差继续在可靠基线后与用户明确。核心/GUI路线选择已经解决,本项接续接口、迁移、平台支持与实际证据收敛,不因选择完成就关闭实现或 R2 验收。
ADR-0008与规划已记录确认依据。最小入口 #115、固定依赖 CI #117 和 cmd 多标签 #124 已按限定范围合入 main;原 C++ 子集不能继承候选能力。
当前实现检查点(2026-10-29)
#115 / PR #116打通最小 Qt/C++/固定 ConPTY 入口;#117 / PR #120固定 Qt/ConPTY 下载身份、安全准备与独立 hosted 构建;#124 / PR #128交付 cmd 标签输入、关闭和错误隔离及真实事件循环退出前回收。均已可从 main 337812bc27b10a8f4dee5e4e35ded21c90f4a151到达。
Qt 标签限定证据:固定 80×24、基础 ASCII/16 色,本地完整 CTest 50/50(Qt 1 项+既有或独立诊断 49 项,内部 12 条跳过),发布 HEAD 六路 CI success。它不验收动态 resize、完整工作区/恢复、Unicode/IME、历史/选择/Find、真实异 DPI、完整 TUI 或性能。
C++ 模式存储基础由 #130、原版剩余模式样式由 #123/#126/#129、隔离显示环境由 #131 / #31 接续。路线已经确认;完整接口、支持配置、原版重要差异、迁移与产品验收继续保留,本项不因限定切片通过关闭。
用户结果
用真实 R2 工作流、WindTerm 2.7.0 对标与受控测量提出可维护的核心/GUI/后端方案,由用户确认后定案,为 Windows 远程整合及后续 Linux/macOS 扩展提供明确边界。
已有基础
#23 已记录官方平台事实,首个完整版本以用户确认的 Windows 11 x64 为目标;#26/ADR-0003 的历史比较保留,Alacritty 现为历史候选和差分参考;#32/#33 已交付有限本地会话与配置恢复。ADR-0004仍是原型临时选择,原 Win32/DirectWrite 结果保留历史;当前 GUI 路线已按用户确认采用 Qt Widgets,Draft #50 的实现是否合入与验收仍分别记录。
已确认的产品决定
- Windows 本地 Shell 后端采用随包固定微软 ConPTY,集中整合和优化;系统 ConPTY / WinPTY 可作诊断对照,不继续作为并行产品路线扩展。具体包版本和 flags 是工程实现身份,不冒充用户永久锁定。
- 正式终端核心:用户确认继续自主开发 C++ 核心,按固定 WindTerm 2.7.0 行为独立实现;Alacritty 转为参考。
- 当前 GUI 路线:用户确认先采用 Qt Widgets,具体版本与终端渲染优化由可追溯验证决定。
原版优先继续有效。下文 #56 的具体样式/滚动区域差异仍保留;选择内部后端不自动批准修正原版缺陷或接受重要行为差异。性能数值容差仍在可靠基线后与用户另行明确。
剩余交付与验收
- 用 [R2-05][终端] 补齐终端回复与输入/输出模式并验收固定 TUI #28/[R2-06][终端] 定义并验证 resize、逻辑行与历史语义 #29/[R2-07][文字] 验收复杂 Unicode、IME 与键盘/选择语义 #30/[R2-08][显示] 明确字体网格并验收真实 DPI 与跨显示器切换 #31 的实际 TUI、resize、文字/输入及真实显示结果比较可支持配置;结合 [R2-00][范围] 冻结产品路线所需平台、架构与最低系统边界 #23/[R2-03][核心] 测量候选成本并重审 ADR-0003 #26/[R2-09][会话] 支持固定本地 shell 与真正的分屏/标签工作流 #32/[R2-10][持久化] 恢复会话配置、窗口与工作区并处理迁移损坏 #33 和 [R2-04][终端] 裁决 ConPTY 主/备用屏 margin 恢复差异 #41/[R2][Backend] 整合已确认的随包固定微软 ConPTY 正式路线 #47/[R2][终端] 确定保留原合同的原生 API 与末端 margin 处理路径 #56 的平台/后端限制重审 ADR-0003/0004,不因原型投入锁定,也不为规划盲目重写。
- 明确核心/历史、唯一身份与一致快照/增量、传输与呈现隔离、线程/背压/取消、依赖升级及维护责任;边界可独立测试,记录调整/保留路线、迁移成本和支持缺口。
- [R2][性能] 定位字素吞吐成本并提交预算供用户确认 #54 已冻结受控负载/端点/预算决定程序,保留首次hosted不完整批次和独立CPU分量证据。新hosted六位置输出正确,但扣除完整子进程/runner后仍有3.333%–5.263%未归属余额;受控完整A/B、allocator/projection与组件归因及用户预算确认均未完成。原12样本约16%/9%成本仍是共享宿主/包装诊断,不能据此或据诊断完成宣称整体性能、WindTerm等价或确认核心选择。
- 产品 ADR 引用实际工作流与测量,明确未测性能、未知平台及呈现/长期资源边界;原生 API/末端差异不以架构措辞静默豁免。
- 提交核心继续复用/改造/替换及 GUI/后端的具体方案,列原版行为差异、关键性能、维护成本与跨平台障碍;用户确认后记录日期和依据,才标为正式决定。未测项明确保留,重要差异及验收门槛不能自行批准。
- PLAN/FEATURES/相关 ADR 与用户确认的决定一致,并在扩大 R3 远程及后续 Linux/macOS 整合前可重审;不缩小原 R2 出口。
真实前置与完成边界
父项 #7;原生前置 #23/#26/#28–#33 与子项 #54。#23/#26/#32/#33 已完成,其余仍开放,最终整体验收 blocked;路线选择已由用户确认,可执行迁移切片见 #115。前期证据整理与 #54 可立即并行,不需要等待所有功能后才做性能。最终架构不由某一路短回归或候选接口存在决定。
新的具体原版行为差异(#56,待产品取舍)
Draft PR #103,发布源码 dce2ca799a25cf32f3cf2bacf1b9f7c915945a57;原版观察及边界、脱敏记录。 原版固定本地Shell在同一211B样式/切屏输入下,原生及UI文字都含REGION_CIXED,区别于源码margin补丁恢复主屏区域后的文字结果。原生buffer80×3000与viewport80×24的差别、原绝对判据失败和相对坐标诊断分列;末端颜色、组件根因、其他路径与完整合同仍未知。
正式方案须明确这一个场景是保持原版行为,还是作为经用户确认的修正项;不从候选上游规则或实验通过推导批准,也不把单次观察外推为所有margin/SSH/其他平台行为。当前保留原版优先和原合同失败记录;PTY 后端已按 ADR-0007 选定,但未批准这一具体行为差异的修补路线,完整架构和实现验收仍未完成。
Metadata
Metadata
Assignees
Labels
Projects
- StatusShow more project fieldsDone
Activity
[-][R2-11][架构] 决定产品 GUI/平台、核心历史接口与呈现隔离[/-][+][R2-11][架构] 提交核心、GUI/平台方案并取得用户确认[/+]JavaZeroo commentedon Oct 31, 2026
需要澄清的一处张力:采用固定后端 vs 原版观察到的行为
按决策 1A(采用随包固定 ConPTY 作为产品后端)落地时,本项正文末尾记录的原版观察(#56)与之存在冲突,需要用户裁决:
REGION_CIXEDdocs/research/windterm-styled-margin-reference.md(Draft PR #103)REGION_CIXEDexperiments/conpty/results/2026-10-26-margin-backends/validation.json2;3r/4;5r,末端得到REGION_C/REGION_D/BOTTOM_FIXED含义:采用固定后端会让我们的显示偏离原版观察到的行为(我们正确、原版错位)。这属于 AGENTS 所说的「重要行为差异需要用户确认」,不能由技术正确性自行批准。
两个可选立场
我的建议
维持决策 1A,但在
docs/adr/0009-r2-scope-decisions.md补一条:边界
JavaZeroo commentedon Oct 31, 2026
补充:原生 CHAR_INFO 的问题已由 #41 的裁决回答
我在上一条里提出的第一个问题(原生
CHAR_INFO是否排除在 R2 验收外)已经有结论:docs/adr/0007-bundled-microsoft-conpty.md的「已知差异」小节登记:原生CHAR_INFO层的 margin 可见性差异属已知差异,不作为待修缺陷;docs/milestones/R2-local-terminal.md:66。因此本项只剩一个开放问题
上一条提出的张力仍然成立:
REGION_CIXED(错位)需要你决定:这属于「经确认的原版缺陷修正」,还是保持原版错位以求一致?我的建议是前者,并在 ADR-0009 补一条确认记录。
边界
Merge pull request #292 from JavaZeroo/docs/adr0009-status
JavaZeroo commentedon Nov 1, 2026
决策 2 落地:登记为经确认的原版缺陷修正(选项 A)
用户 2026-11-01 明确:「windterm 如果有问题那就需要进一步处理即可,选 A」。
落地位置
docs/adr/0009-r2-scope-decisions.md新增「决策 6:原版缺陷的修正确认」(PR #298)CHAR_INFO缺口docs/adr/0007-bundled-microsoft-conpty.md的「已知差异」,不因本决策视为修复事实基础
REGION_CIXED(错位)REGION_CIXED2;3r/4;5r,末端得到REGION_C/REGION_D/BOTTOM_FIXED即:我们的显示有意优于原版观察到的缺陷,且已获确认。
本项其余待办(本决策未覆盖)
Merge pull request #298 from JavaZeroo/docs/adr0009-original-defect
JavaZeroo commentedon Nov 1, 2026
按用户决定:写收敛说明后关闭(选项 B)
用户选择 B:由本评论给出架构收敛说明,然后关闭本项。
一、路线(已确认,勿再讨论)
二、已落地的实现切片
third_party/conpty/manifest.json、cmake/ConptyBackend.cmake三、接口与边界
experiments/core、experiments/shell、experiments/presentation);四、明确未收敛的部分(交由其他 issue,不由本项承担)
五、关闭边界