Repository navigation
Description
当前状态:按用户要求暂停推进(2026-11-02)
用户要求“梳理一下当前的进展和现状放到issues上吧,先不继续推进了”。停止新增实现、原版实验和后续验收,保留当前工作;本项仍为 OPEN。下列是暂停时的实际状态,不表示完整功能验收。
已推送并进入 main
已读取远程 refs:main 与执行分支 javazero/r27-r29-resize-retention 均为 8eec75d0b47570681850747e070e2d3e1d8a8ae3。该精确提交的 Windows/Linux 回归及 Qt/固定 ConPTY 检查成功后,已非强制快进推送 main;历史候选检查独立成功,不计为产品验收。
- 已交付限定的主/备用屏、区域与 origin、六种文字属性,以及 resize 后寻址、编辑、擦除、末列与结合标处理;历史原版来源、失败和限制继续保留。
- 新保留入口及独立显示投影已存在,Unicode、源位置映射、选择/复制/Find 有核心级测试。新增
ProjectionJob分步生成完整显示页,13 个工程用例通过;旧 500 源片段反复读取仍无页面的问题已实际复现,新入口可按 200/200/100 完成。持续输出可能不断使任务失效,尚无持续输出下的进展保证。 - 原版纯高度 20→14→20 的正文与光标观察已归档;核心字面回放 12/12 阶段、596 断言零失败。首次夹具越界错误保留,不冒充产品修复。
- 最近一次完整本地整合仍是源码
ef1da6e735981ed229b69372a22a5d424a108efa的 core 31/31、Qt 4/4;随后纯高度 CTest 1/1 单列。不能将这些计数回填为最新未提交代码的完整回归。
增量投影与验证身份 · 纯高度原版记录 · 纯高度核心回放。
本地新增,尚未交付
本地分支 HEAD 为 88ace8dec723f0fe2fb41d7077e83b6cda6a4d61,领先远程 5 个提交:组合尺寸探针、固定 ConPTY 源码调查、组合尺寸原版报告、失败回放测试及隐藏主屏高度探针;这些提交尚未推送。其上另有未提交代码和未完成的离线审计文件。
- 宽度→高度组合缺陷已经定位,并有本地修复结果。 原版 91×20→61×20→61×14→61×20→91×20 五阶段保持正文。旧核心组合路径实际只有 8/20 阶段通过;旧源码、EXE、日志与前后身份已冻结。新增
Screen::resize_preserving工作区实现后,同一字面观察 20/20、560 断言零失败;独立映射/选择工程检查 20/20、744 断言零失败。工程断言数比旧失败时多,是缺失 marker 恢复后执行了后续检查,不伪造相同分母。 - 事务异常安全已有单独验证。 主屏/备用屏各自缩高时逐次注入 151 个分配失败、增高时 42 个,均检查两帧、历史、身份、光标及读者守卫未部分发布,随后重试与无故障结果一致。另测历史容量、可达溢出、无操作,以及增长分配不随历史从 8 行增至 4000 行而增加。仅为工程不变量,不是时延或性能验收。
- 隐藏主屏高度取证未通过原审计。 七阶段原版执行已完成,进程回收验证通过;冻结白名单拒绝返回主屏后的一个合成文本结果,原运行保持 failed,未重跑。局部离线检查发现该文本可由固定源派生,但完整独立补充审计尚未完成,不能计为严格对照通过。API 在备用屏期间仍返回主文档内容,不能把它当作活动备用屏网格。隐藏高度、保存光标及后续编辑的完整合同仍未闭合。
- 新组合事务未提交、未注册新的 CTest 门禁、未做整套 core/Qt 回归、未进入 CI。测试输出仍有一处旧路径说明文字待修正;运行时实际调用的新 API 已由测试前后源码清单固定,不能仅凭旧日志标签判断路径。
正式产品仍缺什么
默认 Screen::resize 和 Qt 仍采用旧物理裁剪路径;新保留/显示投影尚未成为正式产品入口。 Qt 六阶段 resize 的 B/CD 原失败仍保留,原五阶段通过不豁免它。
- 显示行号与协议写入行号分离后的后续 CUP 定位仍有关键证据缺口。已有样本不足以证明跨前方重排行后的新 CUP 写入位置;最小直接 Telnet 对照只完成设计,未冻结新探针、未运行。
- Qt 显示光标、IME 位置、历史浏览、选择/复制/Find 和源位置迁移尚待完整接线及联合验证。
- 连续输出/连续尺寸、两轴交错、历史淘汰、更多主备用屏/保存光标交叉,以及完整网格、样式、TUI 仍未验收。
- 固定 ConPTY 的信号请求完成不等于 child/显示完成;本地静态调查不能代替同一正式 Qt 会话内的运输、核心和显示观测。
#27/#29 与 R2 均不关闭,不声明完整 WindTerm 等价或性能等价。 既有 ADR-0010 用户确认保持有效;暂停来自本次用户指示,不是重新申请架构批准。
此前已交付的模式实现与历史验证
已合入并推送 main:fb657758ed8286c4b17dccdeb73b5297e6242be1;已读取远程 refs/heads/main 核实,实际核心实现 abf9e23 在其祖先链中。同一提交的 Windows/Linux 总回归 与 Qt/固定 ConPTY 产品检查 均已通过;历史候选检查 独立通过,不转移为产品验收。main 推送触发的重复工作流与上述分支验证分别记账。
此前 04b31ab 的 Windows 总回归 72/74,模式/属性两组出现 6 个夹具路径错误;仅修复临时 ROOT 规范化后,当前提交远程两组均通过。生产路径校验和冻结原版运行工具未改变;本地模式组普通/-O各46/46,属性组强制真实8.3路径普通/-O各25/25。旧失败记录保留。
自主 C++ / Qt Widgets / 随包固定 Microsoft ConPTY 路线保持。#26/#41 前置已关闭;本项已有实际实现,但完整验收仍未完成。原版固定为 WindTerm 2.7.0,原版观察、核心工程测试、正式运输结果分别记账。
本次已闭合的缺陷
- 区域底部自动换行正确连接新行,修复跨行复制多出 CRLF 和 Find 漏命中。
- RIS/ED3 实际删除非空历史时发布结构 revision;RIS 的增量 Find 漏命中已复现并修复,ED3 单独列为结构合同缺口。
- 两组非对称原版对照支持每屏保存 origin:返回主屏恢复自身 ON/OFF;固定主屏 2..5 margin 的上下界恢复已取证。
- 独立第三组原版对照支持每次 1049h(含重复/再次进入)关闭备用屏 origin;新增字面回放先 31/35、修后 35/35。
- 六种非粗体属性(暗色、下划线、反显、删除线、隐藏、上划线)的同帧控制可区分:进入/重复进入复位,返回恢复主屏;对应核心红例修复。
- 正式 Qt 数字键→自有 child→固定 ConPTY→核心/界面五阶段模式回归,通过独立原生网格和有限图像检查;child 正常退出、EOF 与 Job 回收已核对。
统一本地验证:核心 15/15,Qt 4/4;取证/导出离线 88/88,后续 resize 导出器修订另有普通/-O各9/9,不拼成同一轮。代码和证据的精确身份见统一记录。另整合主线 #303 极窄 resize 与 #304 延迟换行测试,两者分别单独构建并通过 1/1,不拼入历史 15 项同轮计数。分块、逐字节、异常模式、宽字/结合字、history/选择/Find 的有界交叉已补;工程策略不冒充原版比较。
真正剩余
- 与 [R2-06][终端] 定义并验证 resize、逻辑行与历史语义 #29 联合闭合 resize。 六阶段真实 Qt 诊断仍在 B/CD 正文位置断言失败:ConPTY 已重排,核心仍物理裁剪。断言未弱化,显式
--resize保留 exit 1;五阶段门禁不豁免这一项。 - 原版缩窄/恢复三状态证实正文保持、显示重新换行,文档位置与 DSR 不随显示坐标一同改变。本次已补有限寻址、末列输入、隐藏主屏、活动边界及宽字样本;仍需缩放中继续输出、更广泛的保存光标交叉、结合标/高度、历史淘汰及选择/Find 的完整合同,不能直接套用 ConPTY 网格。
- 完整 active grid/空白格样式、粗体及完整 RIS(含备用/非活动帧)仍没有完整原版依据。六属性 H/space 像素控制不等于全部网格/内部位已验收。
- 完整正式用户动作/TUI 由本项及 [R2-05][终端] 补齐终端回复与输入/输出模式并验收固定 TUI #28/[R2-07][文字] 验收复杂 Unicode、IME 与键盘/选择语义 #30 联合复验,五阶段公开 Qt 合成动作不代表物理键鼠、真实呈现或全部应用已通过。
原版记录:每屏与重复进入 · 六属性 · 正文缩放。
正式失败记录:Qt/固定 ConPTY。
父项 #7,下游 #28,与 #29/#30 联合验证。保持 OPEN;不声明完整 #27、R2 或性能等价。
2026-11-02 用户在本会话明确答复“按方案推进(推荐)”,批准 #27/#29 联合的有界正文保留、独立显示投影与历史/选择/Find 迁移,保持现有 Screen owner、ID/version/rank/epoch 和 C 叠加路线。ADR-0010 确认原问答 · 已确认方案。重大替换的批准已生效;未知原版行为继续先取证,不等于实现、验收或性能容差通过。执行分支 javazero/r27-r29-resize-retention。
Metadata
Metadata
Assignees
Labels
Projects
- StatusShow more project fieldsDone
Activity
JavaZeroo commentedon Oct 25, 2026
headless 兼容/身份切片已提交并推送:bd5b288。
#27 保持 OPEN:当前仅 headless 切片,C++ FFI、拥有值版本快照、实际 InputQueue、真实备用屏/滚动区产品场景和 R1 系统整合尚未完成;默认 shell 未替换。#28 仍由 #27 阻塞,#37 Windows Vim CI 问题单独保持 OPEN。
JavaZeroo commentedon Oct 25, 2026
补充明确版本标识:本切片为 alacritty_terminal 0.26.1-dev+termforge.1,而非原始 crates.io 0.26.0;完整身份以 bd5b288 的 PROVENANCE 和 manifest 为准。
JavaZeroo commentedon Oct 25, 2026
C++ 拥有值适配切片已提交并推送:1f65d2c。
#27 保持 OPEN:实际 InputQueue、默认 ShellWindow、真实备用屏/滚动区产品场景及 R1 系统整合尚未完成。下一步是这些真实整合,不将独立 FFI 计为产品 TUI。
JavaZeroo commentedon Oct 25, 2026
候选产品整合切片已提交并推送:0803c81。
TERMFORGE_BUILD_CANDIDATE_ADAPTER=ON的 ShellWindow 使用 CandidateTerminal;默认构建保留自研回退。PtyWrite 进入有界 InputQueue,不直接写 ConPTY。修复普通空格被当成宽字符 spacer 导致滚动旧字形残留,以及零长度事件排干。&columns/&lines、Ctrl-O:wq 写盘退出,返回主屏。独立子进程核实 ConPTY 尺寸与CSI 6n回复;另有 resize 后两轮独立 ESC 字节验证。原始 Vim 不含 1049/1047/47,因此不把这个流程计作备用屏验收;1049 仍由固定核心用例覆盖。candidate_core、candidate_shell_tui、runtime_observation通过;142 个固定 crate 单元+doc、5 候选 Python、24 差分、15 计量通过。真实应用 Python 4 项与 differential 通过。41 项源码/二进制哈希审计一致。#27 保持 OPEN:真实 R1 候选回归尚未通过,#29 的 resize/重放身份合同未闭合,#37 的 Windows CI 仍需自然通过。没有宣称 R2、产品 TUI 完整性或性能验收完成。证据:experiments/core/results/2026-10-25-candidate-adapter/validation.json。
JavaZeroo commentedon Oct 25, 2026
真实备用屏切片已推送:
7b447b4d74fc0d3a9d80ba4dd29c0fdc37e0384c。本 issue 与 #28 的阻塞继续保持 OPEN。滚动区域、原点/换行、异常序列、resize 交叉及完整 R1 系统回归仍未完成。默认和候选完整 CTest 正在运行,最终证据另行同步;不宣称 #27、#28 或 R2 完成。
JavaZeroo commentedon Oct 25, 2026
备用屏限定证据已推送:
34009c6(实现7b447b4),见experiments/shell/results/2026-10-26-alternate-screen/validation.json。ime_inventory超时归 [R2][回归] Windows CI 的 ime_inventory 纯夹具超过原 10 秒期限 #40,本机对照不冒充 CI 修复。[R2][回归] Windows CI 的 ime_inventory 纯夹具超过原 10 秒期限 #40 已作为 [R2][回归] 收敛 Windows 可靠性与历史未闭合失败 #38 的子项和原生阻塞项,[R2-12][交付] 构建并验收 Windows R2 基础开发包 #35 继续受阻。本项继续保留滚动区域、原点/换行、异常序列、resize 交叉及完整 R1 系统验收,#28 不解除阻塞。没有截图、前台输入或 WindTerm 运行时等价结论。
41 remaining items
Merge pull request #311 from JavaZeroo/agent/continuation/resume-issu…
JavaZeroo commentedon Nov 4, 2026
@JavaZeroo-Bot 继续已授权的 #27,保持 #27/#29 OPEN,不采用“把未完成验收移到其它 issue 后关闭 #27”的 A 方案;既定合同已明确保留这些联合验收,不需要重新让用户批准维持原范围。
PR #311 已由调度者核验并合并:head df1c32c 的 10/10 CI 成功,main 无保护/规则集阻塞,merge 1dcf624。此为纯高度隐藏正文保留工程修复,不是原版严格审计通过,不关闭完整 issue。
下一最小任务:以最新 main(包含 #308/#309/#310/#311)为基线,先完成原版取证运行时及现有归档的可恢复性盘点,核对实际路径/版本/哈希与所缺发行物/profile。可以在既有授权下恢复独立的新取证环境、完善探针及测试;不得修改旧 failed 记录、伪造原运行 provenance,不能把新的运行环境倒填为旧记录。若旧严格审计无法补证,明确保持 blocked,列出缺失项与解除条件,再继续不依赖该缺口的独立 #27 工程/验收项。未知原版行为要先调查;重要行为差异/新依赖/验收标准改变仍需用户批准。
出口:给出可核验的环境盘点、至少一个真实解除的证据缺口或有证据的不可恢复阻塞,以及具体剩余验收矩阵;有实现时做同源码 core/正式 Qt/固定 ConPTY 对应回归并提交 PR,保留旧失败,不降低断言。允许实现、测试、推送和创建 PR;合并由调度者负责。默认 Flash,单开发 worker,不触发 Codex review、不扩张费用。
调度限制:本轮本机 3082 管理 API 拒绝连接,监听与匹配服务进程均不存在,当前执行状态不能由磁盘旧 running 字段证明。既有同症状服务故障已自动恢复一次,本轮没有重复启动。此评论是后续任务指令,目前尚未核验接收/启动;恢复服务后先对账原 ticket 500634dea2994e4a7d73a70b308bd370,避免重复建单。
JavaZeroo-Bot commentedon Nov 4, 2026
收到:保持 #27/#29 OPEN,不以转移验收收口。先以含 #308–#311 的最新 main 为基线,盘点原版取证运行时与归档的可恢复性(路径/版本/哈希/缺失发行物与 profile),能真实补证则补,否则给出有证据的 blocked 与解除条件,并继续独立 #27 工程项。
JavaZeroo-Bot commentedon Nov 4, 2026
PR #312(https://github.com/JavaZeroo/termforge/pull/312)已推送并通过 CI 10/10(6abca8a),无生产代码改动、未合并、未关 #27/#29。
本轮盘点取证环境并解开一个阻塞:原 QEMU 取证域仍可用(完整运行时、EXE 7b1053…、4047 文件清单、含 app/profile 的原始录制);宿主归档缺 app/profile 只是归档不完整。以新目录只读原录制完成离线补充审计(不重跑、不改旧失败):
failure_preserved=true、additional_original_runs=0、semantic_acceptance=false;已发布盘点文档docs/research/original-evidence-runtime-2026-11-04.md。需要你决定隐藏帧/1049 返回的产品合同(见问题)。验证:补充审计 8/8(normal 与 -O)、隐藏高度探针 CTest 3/3、核心 CTest 37/37。
Merge pull request #312 from JavaZeroo/agent/continuation2/resume-iss…
JavaZeroo commentedon Nov 4, 2026
PR #312 已由调度者合并:精确 head 6abca8a 的 10/10 CI 全通过,保护/规则无阻塞,带 head 约束合并后远程确认 merge 49737e3。仅合入取证/离线审计材料,不批准隐藏帧行为差异、不关闭 #27/#29。
旧“缺完整取证输入”的阻塞已由原环境中的原始资料解除;原严格失败继续保留,补充审计与 semantic_acceptance=false 单列。当前新阻塞是产品行为决定:该样本返回主屏后的源文本丢失,与当前完整保留不同。已在用户会话提出两个明确选项(按原版可观察结果对齐,或接受保留正文的差异),待用户答复;不能把无人答复视为批准。观察到返回后的结果不等于证明内部裁剪发生的精确时点,B/C 两种内部实现不应先当作不同已证实合同。
当前开发槽空闲,调度者将派发不依赖隐藏帧决定的 #30 有界文字交互验证。请保留本工单现场与等待状态,不自行关闭、重复启动或扩大并发。待用户确认后再续接隐藏帧实现;其它 issue 的交付不豁免本项验收。
JavaZeroo commentedon Nov 4, 2026
用户已确认:保留完整正文,接受此项原版差异(2026-11-04)
用户在调度会话对具体行为选项明确答复:“保留完整正文,明确接受与 WindTerm 的这项差异”。
确认范围:#312 补充取证所示的“先缩窄主屏、进入备用屏、改变高度、再返回主屏”路径。TermForge 保留完整正文,接受该样本与 WindTerm 2.7.0 返回主屏后部分源文本丢失的可观察差异;维持 #311 已合入的纯高度隐藏正文保留方向,不为匹配该丢失结果而新增返回时裁剪。
这项用户决定解除
hidden-frame-return-retention-vs-observed-clipping的人工确认阻塞。后续由 Bot 将决定及本评论引用补入对应 ADR/FEATURES 和测试合同,分别保留:原版观察、产品有意差异、工程回归、正式路径验收。原严格失败、离线补充审计及 semantic_acceptance=false 不改写,不把本次确认外推为所有隐藏帧/尺寸/Unicode 行为或完整 #27/#29/R2 验收。调度顺序:本评论是已确认决定的归档,不是立即启动第二个 worker 的派单。当前 #30 正常执行,继续完成其切片;槽位空闲后按真实依赖续接 #27/#29,补充该已确认合同的验证与剩余工作。#27/#29 保持 OPEN;不重复要求用户选择同一问题。
证据:#312
JavaZeroo-Bot commentedon Nov 4, 2026
收到已确认决定:保留完整正文、接受该 WindTerm 差异。接下来把决定与评论引用补入 ADR/FEATURES、补充审计报告和测试合同,分别保留原版观察、有意差异、工程回归与正式路径验收;不改旧严格失败或 semantic_acceptance=false,不关闭 #27/#29、不外推到其它行为。
docs(qt): note the hidden-frame result required no production fix
JavaZeroo commentedon Nov 11, 2026
本轮核验:#332 已合并的是失败证据,完整 #27 验收尚未完成。GitHub 关闭事件指向提交 dbcb871;该提交否定句中含有换行的关闭关键字与 #27,引发了自动关闭。现已恢复 #27 为 OPEN;不将此事件视为验收或范围豁免。后续合并检查增加关闭关键字检查,避免否定句被 GitHub 识别为关闭指令。
校准诊断与修订计划已完成。失败来自校准脚本继承的固定行数守卫与 24→12 行目标冲突;不能归为 WindTerm 产品缺陷。修订区分 phase1/3 的新尺寸事件与 phase2 的同尺寸观测,不要求凭空出现尺寸事件。
待用户决定:允许 Bot 修正校准专用脚本,并额外运行一次固定 80×24→60×12→60×12→80×24 校准。首失败停止,保留旧证据,恢复专用测试 VM 的显示尺寸;不改产品行为。现有一次校准额度已用,依据既定“一次恢复、仍失败需用户决定”的规则,未追加运行。原尚未使用的唯一 v2 正式取证授权仍保留,以校准成功、计划及环境身份冻结为前提。
DSH 健康,实际 running=0、queued=0、maxWorkers=1;Bot 离线修订输入已读,报告已交付。#324/#327/IME 的运行阻塞未解除。#7/#35 仍开放,本轮未新增运行、未合并其他 PR、未进入 R3。
research(ui): record the BCD calibration retry action budget
research(ui): fix BCD dual-axis calibration fixtures (#333)