## 用户结果 在已确认的Qt正式入口中同时使用多个cmd标签,输入输出和关闭相互独立;为#32旧Win32限定能力迁移提供第一批小型产品实现。 ## 前置与边界 #115已合入main;自主C++/Qt/固定ConPTY路线已确认。只迁移固定80×24的cmd标签基础,不引入其他shell、通用分屏、配置持久化、动态resize或大型应用骨架;#32/#33历史交付不直接继承。本批只验证会话隔离与生命周期,不宣称WindTerm完整tab交互或R1复杂输入验收。 ## 验收 - [x] 正式Qt入口可通过显式UI动作新增/选择/关闭cmd标签;每标签独立SessionModel/Parser/有界队列和固定ConPTY,不新增依赖或全局设置。 - [x] 两个真实cmd分别通过不同独立预期算术输入/输出,选中标签的按键只到目标会话;关闭其一,另一会话继续工作并自然退出,最终自有Job回收active0。 - [x] 失败启动显示在对应标签且其他会话可工作;关闭整个窗口回收全部会话。外层监督与超时保持,不缩弱旧smoke失败路径。 - [x] 真实会话与Qt窗口公共行为测试、双轴review及最终限定回归通过,源码/依赖/部署身份和已知缺口明确;docs/issues同步并合入main。 父项#7,#34接续正式路线迁移;完整Qt工作区/恢复仍需后续独立迁移。不凭本两会话切片关闭完整R2。 ## 已合入 main [PR128](https://github.com/JavaZeroo/termforge/pull/128)已合入main `337812bc27b10a8f4dee5e4e35ded21c90f4a151`,发布head `f4be275d4e0a3d6f33fc4c6e8eb621cb81e39408`;实际运行source `cf8b40b2e44f9e475cfc42b5008d46c670ff1756` 的新完整CTest50/50、exit0、325.94s,12条内部skip另列。Qt仅1项,其余49项为既有/独立诊断,不能拼为Qt完整能力;7151冻结文件run后全匹配。 双cmd750/427、关闭后778/自然41、失败页后147、四个实际app.exec关闭边界及退出前回收通过,外层Job active0/total26/terminated0。两轴runtime/证据复核无剩余发现;旧aa中断轮29条已完成、止于30开始、exit未知,封存不拼接;功能与AppExec原红、早期未知身份保留。[证据](https://github.com/JavaZeroo/termforge/blob/f4be275d4e0a3d6f33fc4c6e8eb621cb81e39408/experiments/shell/results/2026-10-28-qt-tabs/README.md)。 最终发布head的Qt/默认/参考PR和push六条CI均completed/success、attempt1。限定完成关闭;完整WindTerm tab交互、分屏/其他shell/配置恢复/resize/Unicode/IME/八会话、真实DPI、性能和开发包仍分别验收。
Activity
docs: record reviewed Qt cmd tabs validation (#124)
docs: describe limited Qt cmd tabs and remaining R2 contracts (#124)
Merge pull request #128 from JavaZeroo/feat/qt-cmd-tabs-r2