Skip to content

feat: 将 /cwd 改为重启切换工作区#206

Closed
wynxing wants to merge 3 commits into
1024XEngineer:mainfrom
wynxing:feat_workspace
Closed

feat: 将 /cwd 改为重启切换工作区#206
wynxing wants to merge 3 commits into
1024XEngineer:mainfrom
wynxing:feat_workspace

Conversation

@wynxing

@wynxing wynxing commented Apr 9, 2026

Copy link
Copy Markdown
Collaborator

背景

当前 /cwd 在进程内只修改 session workdir,无法真正切换工作区实例,导致工具根目录、会话分桶和对话区状态可能出现半切换问题。

改动说明

  • /cwd 重定义为进程级工作区切换:解析目标目录后,启动带 --workdir <target> 的新 NeoCode 进程,并在成功拉起后退出当前进程。
  • bootstrap -> services -> infra -> core 链路中注入 WorkspaceSwitcher,把进程重启职责从 core 逻辑中剥离出来。
  • 保留 runtime.SetSessionWorkdir 以避免影响其他路径,但 /cwd 调用链不再使用它。
  • 修正工作区语义:相对路径基于启动工作区解析,CurrentWorkdir 不再被 session / run_context 意外覆盖。
  • 同步更新配置与会话持久化文档说明,明确 /cwd 现在是“重启到新工作区实例”。

测试

  • go test ./...
  • 补充 /cwd 切换成功、失败、busy 拒绝、same-workspace no-op、runtime run_context 不覆盖实例工作区、bootstrap 工厂错误分支、workspace switcher 边界分支等测试。

差异概览

  • 24 个文件改动
  • 1582 行新增
  • 313 行删除

@codecov

codecov Bot commented Apr 9, 2026

Copy link
Copy Markdown

@wynxing wynxing closed this Apr 10, 2026
@wynxing wynxing deleted the feat_workspace 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.

1 participant