Repository navigation
Conversation
…Tencent#774) 按存储归属读取当前会话的写法在 assistant_workbench.go 里重复了 6 次, 新增 (*assistantHandlers).storedAssistantSession 收拢这条归属规则, prepareWorkbenchContext 开头只读一次并复用结果;历史附件收集抽成 historicalAttachmentIDs 纯函数。错误文案、判断顺序与附件覆盖语义不变。 Co-Authored-By: Claude Code <noreply@anthropic.com>
|
全量
其余全部通过,包括新增的 |
… issue checks Co-Authored-By: Claude Code <noreply@anthropic.com>
|
补测试(自动检查,head 63bb1a5 → d4b9428) 补了什么:新增
为什么:这次把 6 处会话读取合并成一次
本地验证(Go 1.26.11): |
Closes #774
改了什么
internal/httpapi/assistant_shared.go:新增(*assistantHandlers).storedAssistantSession(id, userID),空 ID 直接返回未找到,其余统一经assistantStorageOwner找到存储槽位后读取,把「共享/项目会话按创建者归属存储」这条规则收在一处。internal/httpapi/assistant_workbench.go:prepareWorkbenchContext开头读一次会话存入stored, hasStored,后续「会话属于其他项目」校验、关联需求上下文、讨论分支提示、附件作者回退、子 Agent resume 复用全部复用这份结果;原 6 处重复查询收敛为 1 处。历史附件收集抽成纯函数historicalAttachmentIDs(session, found, projectID)。workspaceTurnContext同步改用新 helper。internal/httpapi/assistant_workbench_session_test.go。为什么
同一次请求里把同一个会话从库里读 5–6 次,每处再各自判空,读起来像 6 件不同的事;归属规则散落各调用点,容易漏改。
怎么验证
gofmt -l internal/httpapi/无输出;go vet ./internal/httpapi/通过。go test ./internal/httpapi/ -count=1全部通过,包含新增用例:空 ID / 未知 ID 返回未找到、其他用户读不到私有会话、历史附件只继承同项目非共享会话。🤖 Generated with Claude Code