Skip to content

feat: 支持按工作区隔离会话存储#193

Merged
minorcell merged 6 commits into
1024XEngineer:mainfrom
wynxing:new_Feat-manual
Apr 8, 2026
Merged

feat: 支持按工作区隔离会话存储#193
minorcell merged 6 commits into
1024XEngineer:mainfrom
wynxing:new_Feat-manual

Conversation

@wynxing

@wynxing wynxing commented Apr 8, 2026

Copy link
Copy Markdown
Collaborator

背景

当前 session 持久化固定落在 ~/.neocode/sessions/,当 CLI 启动支持指定工作区后,不同工作区的对话历史会互相混杂,无法实现隔离。

本次改动

  • 引入 Cobra CLI 根命令,并新增 --workdir 启动参数
  • 将 Windows UTF-8 控制台初始化前置到 CLI 与 TUI 共用启动路径,保证中文路径与中文输出兼容
  • 将 session 存储切换为按工作区分桶:~/.neocode/projects/<workspace-hash>/sessions/
  • 保持 session.Workdir 仅表示运行目录,不再承担会话归属语义
  • 收敛工作区哈希规则,与现有项目级 transcript 哈希规则保持一致,避免同一工作区因路径大小写写法不同落入不同桶
  • 补充工作区覆盖、中文路径、分桶隔离与相关回归测试
  • 更新 README 与文档说明,明确 --workdir 的运行时覆盖语义

验证

  • go test ./...
  • go test ./internal/session ./internal/app ./internal/runtime

wynxing added 3 commits April 8, 2026 15:40
引入 Cobra CLI 根命令,并新增 --workdir 启动参数。

将 Windows UTF-8 控制台初始化前置到 CLI 与 TUI 共用启动路径,保证中文路径与中文输出兼容。

会话存储目录切换为 ~/.neocode/projects/<workspace-hash>/sessions,并保持 session.Workdir 仅表示运行目录。

补充工作区路径规范化、中文路径分桶、启动覆盖与相关回归测试,同时更新 README 与文档说明。
引入 Cobra CLI 根命令,并新增 --workdir 启动参数。

将 Windows UTF-8 控制台初始化前置到 CLI 与 TUI 共用启动路径,保证中文路径与中文输出兼容。

会话存储目录切换为 ~/.neocode/projects/<workspace-hash>/sessions,并保持 session.Workdir 仅表示运行目录。

补充工作区路径规范化、中文路径分桶、启动覆盖与相关回归测试,同时更新 README 与文档说明。
@codecov

codecov Bot commented Apr 8, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 91.08911% with 9 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
internal/app/bootstrap.go 87.23% 5 Missing and 1 partial ⚠️
internal/session/workspace.go 91.30% 1 Missing and 1 partial ⚠️
cmd/neocode/main.go 0.00% 1 Missing ⚠️

📢 Thoughts on this report? Let us know!

wynxing added 2 commits April 8, 2026 15:51
在测试规则中新增整体测试覆盖率 100% 目标。

要求改动必须覆盖正常路径、边界条件、异常分支、回归场景以及必要的跨模块交互。

同时在提交前最低检查中补充测试覆盖完整性核对项。
补充 CLI 执行入口、默认启动链路和启动参数转发测试。

补充启动装配、中文路径兼容、MCP 配置失败分支与 Windows 控制台编码测试。

补充 session 工作区分桶、覆盖写入和持久化异常分支测试,并验证全量测试通过。
@phantom5099

phantom5099 commented Apr 8, 2026

Copy link
Copy Markdown
Collaborator

workspace.go (line 33) 把工作区路径无条件 strings.ToLower 后再哈希,会让大小写敏感文件系统上的不同目录落到同一个 session bucket,直接破坏这次 PR 想提供的“按工作区隔离会话存储”

仅在 Windows 下对工作区路径做大小写归一化,避免大小写敏感文件系统上的不同目录落入同一个 session bucket。

同步更新工作区哈希测试,区分 Windows 与大小写敏感平台的预期行为。
@minorcell minorcell merged commit 3a1730d into 1024XEngineer:main Apr 8, 2026
2 checks passed
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.

3 participants