提交前确认 / Pre-submit checklist
运行环境 / Environment
插件版本 / Plugin version
v0.17.1(npm 最新)
类别 / Category
✨ 功能请求(新功能 / Feature request)
描述 / Description
DSH 是 agent 工作台:模型在会话里读写工作区文件。但用户想在侧边栏亲自管理一下工作区时,存在两个缺口,而它们共同导致第三个更深的缺口:
缺口 1:文件树没有右键「删除」
文件/文件夹右键只有 打开 / 下载 / 复制路径 / 上传,没有任何删除入口。清理 agent 生成的临时文件、实验产物只能开终端 rm。(详见 #484 / #482;历史尝试 #172 / #191 / #266 / #380 全部未合入)
缺口 2:源代码管理没有「抛弃修改(Discard changes)」
「更改」列表里未暂存文件只能打开 diff 或暂存(+),不能右键 discard 回滚到 HEAD。想撤销未提交修改只能去终端 git restore。已搜索 discard / 回滚 / 撤销 / revert / checkout / restore / unstage / 暂存 等关键词,此前无人提过。
缺口 3(本 issue 的核心主张):侧边栏文件操作对模型不可见
就算缺口 1、2 补上,还有一致性问题:用户删了 src/foo.js、或把 src/bar.ts 回滚到 HEAD,模型不知道。它的世界观停在旧状态——继续引用已删文件、把刚被用户 discard 的改动又生成一遍、或基于失效假设写代码。
DSH 本体已有完美先例:切换文件权限模式时(工作区 ↔ 完全权限),会话里会自动出现一条提示,模型立刻知道用户切换了。实现上即 @deepseek-ai/dsh-sandbox-policy 通过 systemPrompt.context() 注册的 runtime context(Current DSH file policy: ...):内容一变,agent loop 就把新快照作为模型历史插入会话。
期望行为 / Expected behavior
A. 文件树:右键 Delete
B. 源代码管理:Discard changes
C. 操作自动进入 AI 上下文(仿权限切换体验)
任一上述操作成功后,自动向当前会话注入一条通知,让模型明确「这是用户手动操作,请基于新状态继续工作」。建议形态:
[user file action] Deleted src/scratch/gen-output.md (sidebar file tree)
[user file action] Discarded uncommitted changes in src/bar.ts — restored to HEAD (Source Control panel)
实现路径两条(可并存,供参考):
- 事件型一次性消息:操作成功后立即向会话 append 一条 source=plugin 的 user message——即时可见,不依赖用户发送下一条消息
- runtime-context 快照(权限切换同款):
systemPrompt.context() 暴露「最近用户文件操作」状态,内容变化时由 agent loop 插入新快照
附一个设置开关(默认开),供不想注入的用户关闭。
复现步骤 / Steps to reproduce
- 会话中让模型生成几个文件,随后在文件树右键任一文件 → 无删除入口(缺口 1)
- 修改两个已跟踪文件,打开源代码管理面板,悬停/右键未暂存文件 → 无 discard 入口(缺口 2)
- 即使手动在终端删掉文件,会话里也不会出现任何提示,模型继续按旧状态引用它(缺口 3)
关联 / Related
补充 / Additional context
A、B 若按 #482 的参考实现独立推进,本 issue 的增量主张是 C:用户在侧边栏的每一次工作区变更,都应当和权限切换一样,自然地进入模型的上下文。
提交前确认 / Pre-submit checklist
运行环境 / Environment
插件版本 / Plugin version
v0.17.1(npm 最新)类别 / Category
✨ 功能请求(新功能 / Feature request)
描述 / Description
DSH 是 agent 工作台:模型在会话里读写工作区文件。但用户想在侧边栏亲自管理一下工作区时,存在两个缺口,而它们共同导致第三个更深的缺口:
缺口 1:文件树没有右键「删除」
文件/文件夹右键只有 打开 / 下载 / 复制路径 / 上传,没有任何删除入口。清理 agent 生成的临时文件、实验产物只能开终端
rm。(详见 #484 / #482;历史尝试 #172 / #191 / #266 / #380 全部未合入)缺口 2:源代码管理没有「抛弃修改(Discard changes)」
「更改」列表里未暂存文件只能打开 diff 或暂存(+),不能右键 discard 回滚到 HEAD。想撤销未提交修改只能去终端
git restore。已搜索 discard / 回滚 / 撤销 / revert / checkout / restore / unstage / 暂存 等关键词,此前无人提过。缺口 3(本 issue 的核心主张):侧边栏文件操作对模型不可见
就算缺口 1、2 补上,还有一致性问题:用户删了
src/foo.js、或把src/bar.ts回滚到 HEAD,模型不知道。它的世界观停在旧状态——继续引用已删文件、把刚被用户 discard 的改动又生成一遍、或基于失效假设写代码。DSH 本体已有完美先例:切换文件权限模式时(工作区 ↔ 完全权限),会话里会自动出现一条提示,模型立刻知道用户切换了。实现上即
@deepseek-ai/dsh-sandbox-policy通过systemPrompt.context()注册的 runtime context(Current DSH file policy: ...):内容一变,agent loop 就把新快照作为模型历史插入会话。期望行为 / Expected behavior
A. 文件树:右键 Delete
editor:+ path)too-large类错误码;新增菜单项补齐 i18n 词条B. 源代码管理:Discard changes
git restore <path>(回到 HEAD);未跟踪 = 删除该文件(与 A 共用确认弹窗与安全机制)C. 操作自动进入 AI 上下文(仿权限切换体验)
任一上述操作成功后,自动向当前会话注入一条通知,让模型明确「这是用户手动操作,请基于新状态继续工作」。建议形态:
实现路径两条(可并存,供参考):
systemPrompt.context()暴露「最近用户文件操作」状态,内容变化时由 agent loop 插入新快照附一个设置开关(默认开),供不想注入的用户关闭。
复现步骤 / Steps to reproduce
关联 / Related
changes.ops)@deepseek-ai/dsh-sandbox-policy的systemPrompt.context()+ agent loop 的 runtime-context 快照机制补充 / Additional context
A、B 若按 #482 的参考实现独立推进,本 issue 的增量主张是 C:用户在侧边栏的每一次工作区变更,都应当和权限切换一样,自然地进入模型的上下文。