能否新增「无工作区」新会话入口? #8298
WeatherWind
started this conversation in
Ideas
Replies: 3 comments
|
ZCode的无工作区任务,其实就是静默帮你选择了一个固定的默认工作区文件夹作为工作区 |
0 replies
|
这个好解决,建一个 |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
需求
新建会话目前必须先选择一个工作区(当前文档仍写明:"The session composer remains unavailable until a workspace is selected.")。希望增加一个「无工作区」的开新会话入口,用于不属于任何项目的任务:
~/.dsh/settings.yaml(permissions、profiles、插件)、~/.zshrc/~/.config/*、git config --global、SSH 与代理配置这类任务的共同点是:操作对象是"这台机器 / 用户主目录",而不是某个代码仓库。现在只有两个选择,都不好:
注意:「无工作区」≠「没有 cwd」。会话仍然有工作目录,仍然照常受该目录的 fs sandbox 约束、照常需要审批;变的只是"归属",不是"能力"。
已有讨论(本贴不重复定位,只做索引)
sessions.create({})能创建无工作区会话且落入「未分组」,问题在 Web 客户端的 New Session / Composer 流程;hazelhao 给出最小修复清单,MarvinFS 在 0.1.5-rc.2 与 master 上以四处客户端改动验证通过(含「未分组」分组+直建、inert条件放开),并指出sessions.create({})的 cwd 会落到dsh web进程的process.cwd()(从计划任务启动时可能是系统目录),建议显式取宿主 home。dsh-projectless-session、dsh-just-chat等绕行方案("临时注册后删除" / "独立空工作区"),说明需求真实且在持续增长。请官方裁定的问题
Q1:无工作区会话的默认 cwd 取什么?
~)——最贴近"全局"语义,全局配置任务开箱即用(MarvinFS 的实现即取 home);$DSH_HOME下的专用 scratch 目录——安全,但全局任务每次都要往外走审批;无论选哪个,建议不要用
process.cwd()兜底——后台 / 计划任务启动时不可预期。Q2:
workspace-write里的 "workspace" 在无工作区会话中是什么?~/.dsh、~/.config、dotfiles)开放写,~/.ssh、密钥环等敏感路径仍 ask。我个人倾向起步用 a(cwd = home + 现有语义不变),细粒度预设留给后续;但"默认有多危险"应由官方定调。
入口与验收建议
::no-workspace);「未分组」分组的+直接创建(兄弟们,没办法创建不带工作区的全局对话啊,这不是问题么? #430 建议)。+行为不变(MarvinFS 已验证)。先例
ZCode(智谱)可以不选择工作区直接开启对话(其「开始窗口」形态),工作区是可选项而非前置条件。改设置、配环境、问问题这类无归属任务本来就需要一个"不选项目"的会话形态;dsh 生态里越来越多非编码用途(研究类插件、日常诊断)也在反复撞同一个门槛。把它补成核心能力,比让每个用户各造一个插件绕行更划算。
与已有讨论的关系
本贴不是重复提需求:#430 / #6176 / #7830 已完成问题定位与客户端补丁验证。若上游愿意收一个最小修复,MarvinFS 的四处客户端改动 + hazelhao 的回归清单就是现成起点;若 repo 当前不接收外部 PR(社区反馈如此),也欢迎将其兑现为内置路径,或明确官方插件样板的位置。
English summary
Add a "no workspace" entry point for new sessions (for global-config / system-maintenance tasks).
The model layer already supports workspace-less sessions —
SessionCreateRequest.workspaceId/cwdare both optional, and the Ungrouped bucket is a first-class state — but the web client gates the composer behind picking a workspace, with no "no workspace" path in the picker. Requested before in #430 (with a verified four-edit client-side fix by MarvinFS on 0.1.5-rc.2 + master), #6176, and #7830; community plugins (dsh-projectless-session,dsh-just-chat) work around it. This post adds the missing use case — global/system maintenance (dotfiles,~/.dshsettings, toolchains, diagnostics) — and asks the team to decide two things:$DSH_HOMEscratch vs a picked-but-unregistered dir; avoid falling back toprocess.cwd());Acceptance: create → send first message → reload-restore → archive/reopen, with normal workspace
+behavior unchanged. Prior art: ZCode's "start window" starts conversations without opening a folder.All reactions