Repository navigation
Conversation
Add qt_eight_session: eight real children are created only through the public +/tab-switch/close entries, each with its own PID, process-local nonce and incremental UTF-8 receive file. Hard-coded literal expectations (ASCII, CJK, supplementary plane, combining mark, and the unmodified Home key) must reach only the active target, including through a non-creation-order switch sequence. A controlled 120-line-per-child background block proves inactive children keep draining and never take the input target. Closing a non-active and then the active tab must leave surviving targets receiving exactly their literal bytes; a replacement tab must not inherit a closed tab's pending UTF-16 unit; a parent window close must complete every remaining session with cleanup_verified and active_processes_after=0 under the OwnedJob supervisor. The session matrix, PID/nonce/file identities, per-step expected/actual hex and timing, bounded background sequences, close timings and parent-close states are recorded for review. This is an offscreen synthetic-event check: presented_done is null, and no physical keyboard, native IME, system clipboard or ninth-session policy is claimed. SessionTabs currently has no session cap; the approved eight session basis is verified, not extended. #30/#155 stay open. Co-authored-by: JavaZeroo <71128095+JavaZeroo@users.noreply.github.com>
Record the final two-run and regression results for qt_eight_session in validation.json: per-session PID/nonce/receiver-file matrix, per-step literal expected/actual bytes and timing, non-creation-order switch coverage, bounded background sequences and queue drain, close timings, replacement pending-unit isolation, parent-close cleanup states, and the fixed dependency/source/binary identities. Align the report's measured values with the final runs. The recorded implementation sources still match the implementation commit; this follow-up changes only documentation. #30/#155 stay open. Co-authored-by: JavaZeroo <71128095+JavaZeroo@users.noreply.github.com>
4 tasks
JavaZeroo-Bot
added a commit
that referenced
this pull request
Nov 12, 2026
…ecord-hidden-retention-2e7373117ea0 Union both sides: keep the bounded autoscroll Qt target/CTest entry and the #324 system paste, #333 BCD fixtures, #330/#331 packaging and #328 eight-session capabilities with their assertions. Co-authored-by: JavaZeroo <71128095+JavaZeroo@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
范围
在同一个正式 C++ / Qt Widgets / 随包固定 Microsoft ConPTY 构建中,补 #30 的独立切片:八会话文本输入目标隔离与生命周期(不重复 #313 的 Unicode glyph/呈现实验,不消费 #27 隐藏帧决定)。
+/ 标签切换 / 关闭入口创建 8 个真实固定 ConPTY child(+1 个替代页),不直接拼装 8 个 model。TF8_READY pid=<pid> nonce=<16hex>并写独立<nonce>.bin接收文件;测试用model.resize_state().child_pid绑定 PID,比较硬编码字面预期(ASCII/CJK/补充平面/结合标 + 无修饰 Home),不读取产品输出来生成 expected。[4,0,7,2,5,1,6,3];8×120 行受控有界后台输出期间后台 child 排空且不夺取输入目标;关闭非活动/活动标签后存活目标精确接收;替代页不继承已关闭会话的待发 UTF-16 单元;父窗口关闭后所有存活会话cleanup_verified/active_processes_after=0,外层 Jobactive=0。改动
src/qt/eight_session_test.cpp(新):上述矩阵/生命周期测试与 JSON 证据记录。experiments/shell/eight_session_client.cpp(新):独立接收(增量 UTF-8 落盘)+ 身份 READY + 受控 120 行后台输出夹具。CMakeLists.txt:新 fixture 与qt_eight_session_test/ CTestqt_eight_session(offscreen + OwnedJob supervisor)。.github/workflows/qt-cpp.yml构建目标、运行时清单与 CTest 选择加入新测试。experiments/shell/results/2026-11-08-qt-eight-session-isolation/(README + validation.json)、src/qt/README.md、docs/FEATURES.md、docs/EVIDENCE.md。验证(同源码实测)
finished/cleanup_verified/active_processes_after=0,status=0,supervisorjob_after={active:0,total:20,terminated:0}。expected_hex == actual_hex;8 个后台块全部seq=120、queued_bytes=0。experiments/shell/results/2026-11-08-qt-eight-session-isolation/validation.json。边界与未验证
presented_done=null);不宣称完整 Copy→Paste→IME、R2、[R2-07][文字] 验收复杂 Unicode、IME 与键盘/选择语义 #30 或 [R2][输入验收] Qt IME 候选窗与固定拼音交叉验证 #155 通过。SessionTabs当前无会话上限,本切片未定义/未测试第 9 个会话或资源政策。*BG*)触发的固定 120 行合成负载,不是吞吐/延迟指标。复验与全部身份见 固定结果。