Repository navigation
[Grok/dsh 06] 会话恢复与单一执行写入者 #138
Description
Activity
Blackman99 commented
on Sep 20, 2026 OwnerAuthorMore actions按用户2026-09-20的实施授权领取 Ticket06 / #138;本次只记录领取,未启动实施工作者,也不表示已实现。已重新读取 #132 及全部80票正文/评论和实际 blocked-by;当前只有本票就绪(native 177 边与正文前置均只解锁 #138),未领取任何被阻塞后继。
实施必须从独立集成树精确基线
b2280d173275906bbbb5ec38756b2b9971d242e1开始。前置 #137 已关闭,其同一提交已保留在rewrite/grok-dsh-20260920;两位独立 grok-4.6 审查及集成证据见 #137 (comment) 。#136/#135/#134/#133 仍为已集成关闭基线 #136 (comment) 、#135 (comment) 、#134 (comment) 与 #133 (comment) 。范围按原验收:正常退出、强制终止和未完成工具结果的恢复保持已持久化内容,显示中断/未知状态,不自动重放副作用;竞争启动、断线、旧连接迟到写入被可靠仲裁,不得假设未验证的 dsh 跨进程锁已经存在;会话显示与持久化记录一致,源数据未损坏,不能安全取得写入权时明确拒绝;独立重跑 02—06 的启动、流、文件、审批、取消、恢复全链路,证明只有 dsh 执行核心后才开放后续功能实施。后续实施/审查子代理使用 grok-4.6。仅在实施、独立审查和集成验收通过后关闭。main、现有未跟踪文件及其他工作树不改动;不授权付费资源,#212仍须新的明确最终发布/默认切换批准。
Blackman99 commented
on Sep 20, 2026 OwnerAuthorMore actions已完成并集成到独立分支 rewrite/grok-dsh-20260920,HEAD 提交:dc09422 。feat 提交:c0a82f4 。该范围是对已审查 worker HEAD
445b3d1f7ee9d1e5b1c51c796a2add20b79b48cc的b2280d1..445b3d1cherry-pick(68903ae feat + 445b3d1 fix),tree 相同8c8d8d4d0a8d26eb19dc08d55be01bed4a003d4c。两位独立 grok-4.6 审查员对该精确 worker HEAD 均批准且无剩余问题(首轮 68903ae 的 pending 恢复 / Windows fail-open / owner 过早释放 / resume PTY drain 已在 445b3d1 修复)。集成控制器在隔离集成树独立复跑(TMPDIR=/tmp):typecheck、首次 80 文件 / 2233 通过 + 1 项 afterEach ENOTEMPTY 清理竞态后重跑 80 文件 / 2234 通过(含
scripts/rust-acp-protocol.spec.mjs15/15:list/resume、第二写入者拒绝、中断工具不重放、断线后继任者 resume)、cargo fmt、严格 Clippy(--offline -D warnings)、Rust workspace 30+61+2+379 项测试(含 resumes_closed_fake_session_and_refuses_an_active_owner、acquire_records_pid_and_second_lock_is_refused、projects_interrupted_unknown_tools、stale_owner_prompt_is_refused、shutdown_reaps_child_before_owner_release)、pnpm run build+build:rust(native SHA-256d9fd2b36230fa68ea3163890e89e38e73ee1a7c1fa2035d89d6f82d72f6575d2)、packed 安装产物 PTYscripts/rust-resume-pty-test.pyPASS(证据/tmp/codsh-rust-resume-7te6qsvi,五案 exit 0,note.txt 仍alpha\n,均含 1049l)、隔离套件scripts/rust-pty-test.pyPASS(.scratch/rust-pty-1789906762823917000)、流式回合 PTY PASS(/tmp/codsh-rust-turn-hwzzc9k8)、文件工具 PTY PASS(/tmp/codsh-rust-file-3wxxx_f3,noteAfterAllowALPHA\n)、取消 PTY PASS(/tmp/codsh-rust-cancel-emyw9eux,note 仍alpha\n)、41 项 legacy wrapper/input/session e2e。实际 UI:
--continue恢复同一 dsh 会话f3378baf-1c95-4d15-ba69-43e68c37f7a7 (resumed)并保留 TOKEN_RESUME_ONE/TWO;竞争--resume显示Write owner refused: session f3378baf-… is already running (pid 52066);SIGKILL 后--resumed6a2a73f-… (resumed)将未完成工具显示unknown+[interrupted],无pending/in_progress,note.txt 仍alpha\n,后续 TOKEN_AFTER_CRASH 可跑。真实 dsh@deepseek-ai/dsh@0.1.5-rc.2。变更仅为 opt-in
codsh --rust经 released dsh ACPsession/list+session/resume与本进程 exclusive write owner。未改 main(仍43b5da1),未链入官方 agent 核心,未发布 npm,未做默认切换。Linux/Windows PTY 仍未在本主机验证。#132 spec 与后继票仍不关闭。#212 仍须新的明确最终发布/默认切换批准。
Parent
#132
Ticket: 06
Status: ready-for-agent
User Stories: 28, 59, 62, 75(见父规格)
What to build
用户退出再启动后能恢复同一 dsh 会话;第二个客户端不能绕过活动会话的执行与写入所有者。
Acceptance criteria
Blocked by
Delivery contract
用户于2026-09-20批准当前测试与任务拆分。按父规格的已安装产物/真实终端和公开协议测试验收;实际实现须带适用的文档、Changeset及必要检查。ready-for-agent表示任务已定义,不表示前置任务已完成,也不授权自动开始本轮实施、购买付费资源或发布软件版本。