Skip to content

修复 /cwd 工作区切换串台并补齐会话隔离#201

Closed
wynxing wants to merge 7 commits into
1024XEngineer:mainfrom
wynxing:new_Feat-manual
Closed

修复 /cwd 工作区切换串台并补齐会话隔离#201
wynxing wants to merge 7 commits into
1024XEngineer:mainfrom
wynxing:new_Feat-manual

Conversation

@wynxing

@wynxing wynxing commented Apr 9, 2026

Copy link
Copy Markdown
Collaborator

变更背景

  • 当前项目已经支持在启动时指定工作目录,但运行中通过 /cwd 切换目录时,执行目录虽然会变化,会话历史仍然停留在旧工作区,导致跨目录继续沿用旧对话
  • 本次改动将“执行目录切换”和“工作区会话域切换”拆开建模,并补上后续 review 中发现的串台边界修复

主要改动

  • 在 runtime 中新增工作区切换语义,按工作区根目录路由和缓存 session store,不再固定绑定启动时的单一 store
  • /cwd 同工作区内仅更新当前 session 的 Workdir;跨工作区时切换到新的工作区分桶,并让 TUI 回到 Draft 状态而不是继续复用旧历史
  • 新增工作区解析逻辑,优先使用 Git 仓库根目录作为 workspaceRoot,非 Git 目录则回退到目标目录本身
  • 加强 TUI 对 runtime 事件的过滤,避免跨工作区后 Draft 状态被旧 run/session 的迟到事件重新污染
  • 同步补齐 runtime、TUI 和工作区切换相关测试,并更新配置与会话持久化文档

重点文件

  • internal/runtime/workspace_switch.go
  • internal/session/router.go
  • internal/tui/core/commands/workspace.go
  • internal/tui/core/app/update.go
  • docs/session-persistence-design.md

验证

  • go test ./...

@codecov

codecov Bot commented Apr 9, 2026

Copy link
Copy Markdown

@wynxing wynxing changed the title 修复工作区切换后的串台与 Git 根解析 修复 /cwd 工作区切换串台并补齐会话隔离 Apr 9, 2026
@phantom5099

Copy link
Copy Markdown
Collaborator

[P2] runtime.go:189 这条 Run() 主路径还没有把 UserInput.Workdir 纳入“先选 workspace bucket、再建/载入 session”的流程。现在只要绕过 /cwd,直接用 runtime API 发起一个带新 Workdir 的 run,就还是会落到旧工作区的 session store 里,和 PR 想修的“按 workspace 隔离会话”目标不一致。

[P2] workspace_switch.go:245 同工作区 /cwd 的状态更新顺序有问题。它先改 runtime 的当前 workdir,再去 Save() session;如果持久化失败,用户会收到错误,但 runtime 实际已经切到了新目录,后续工具执行和下一轮 run 会偷偷用新路径,造成“界面报失败、进程已切目录”的不一致。

@wynxing wynxing requested a review from phantom5099 April 9, 2026 08:18
@wynxing wynxing closed this Apr 10, 2026
@wynxing wynxing deleted the new_Feat-manual branch April 10, 2026 13:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants