1) dsh-server-docs/ 从工作区(原 E:\...\aliyun-dsh-server\dsh-server-docs)**整体并入本仓**,
保留目录名 ⇒ 仓库内 dsh-server-docs/... 的相对引用天然继续有效;旧目录(含其 .git)已归档到
工作区 _中间产物_待清理/,未随本提交带入。
2) .gitattributes:新增 `dsh-server-docs/** -text` —— 原文档库是 `* -text` + autocrlf=false,
必须保持纯 LF,否则会被本仓的 CRLF 规则翻掉。
3) 活引用里的绝对路径已全部改到新位置(docs 的 INDEX / README / scripts / skills + 用户级 skills
+ ~/.workbuddy/settings.json 的 hooks);历史档案(04-调整方案/、archive/)按「只增不改」未动。
⚠️ hooks 路径改动需「完全重启会话」才生效(配置是会话启动快照)。
4) 交接单/T08:新增 §16「生产整体切换执行记录」(形态 / 落地动作 / **4 个只有真上线才暴露的真 bug** /
验收证据 / 回滚命令 / 残留项);台账 T08 行 → 已完成并归档;03-路线图 §二 登记 T08 收尾项。
5) 统一称谓:**「本机」只指跑 WorkBuddy 的开发机**,47 / 106 一律写「远程服务器」。
3.4 KiB
45-存量会话「新开会话」提示(P0-1 的最小代价处置)(2026-09-11 落地)
背景
档案 37a 的 P0-1:权限档位是会话级播种(建会话时写 permission/preset + sandbox/mode +
approval/policy,resume 不重播),所以档案 33 的 DSH_PERMISSION_MODE=danger-full-access
只惠及新会话;存量会话仍是 workspace-write + ask → 会话里每次 bash 都撞
no sandbox backend is usable on this host → 只能逐条审批升级(一次性,不持久)。
guest 最新会话(session-b83ae69b)把它暴露到极致:5 次逐条审批、子代理因
approval:"never" 无法提权而永久无 shell、用户最后直接问「没办法执行 bash命令了吗」。
全会话扫描(10 个主会话,含 admin):workspace-write 10 / danger-full-access 0 —— 全部受害。
决策:做提示(B),不做会话迁移(A)
| 方案 | 内容 | 判定 |
|---|---|---|
| A 存量会话迁移 | 改写各会话 session.jsonl.zstd 里的三条种子事件为 danger-full-access + never |
属 R5「扩大」(放松沙箱 + 取消审批,且影响全部现有租户);且种子在多帧 zstd、append-only 的会话日志里,改写=重写日志+重压缩,风险与收益不成比例 → 不做 |
| B 提示(采用) | 告知用户「新开一个会话即可使用完全权限」 | 只是文案,不属扩大 → 可直接做 |
依据:新会话(env = danger-full-access)及其子代理天然是 danger-full-access + never
(mode = env ?? 'workspace-write';子代理 mode 继承会话、policy 被强制 never,
种子带 "source":"delegation")→ bash 直接可用、无需审批。所以存量会话只是"残留",
提示一次即可解决,无需动任何权限。
实现
web/login.html 登录按钮下方插入一行常驻提示:
提示:若会话中 shell 频繁要求审批,新开一个会话即可使用完全权限(无需逐条确认)。
为什么选 login.html:登录直达链路是 / →(未登录)→ login.html → enter → 实例子域,
所以它是用户必经且会停留的页面;且属平台自有页面,零风险、不打断直达体验。
(其他候选:实例 UI 注入需改官方前端,触 R2;门户 portal.html 仅 admin 可见。)
验证记录
| 检查 | 结果 |
|---|---|
| 文件落位 | /opt/dshs/web/login.html 第 29 行含提示 ✅ |
| 生效副本唯一性 | 全盘 find 只有这一份是生效副本(另两份在 /opt/dsh/backups/repo-bak-* 备份里,不参与服务) |
| 静态服务 | 直连 127.0.0.1:3080/login.html 命中 1 ✅(重启门户后) |
| 域访问 | ⚠️ 测试时先用了 dsh.alotbuy.com,该域是旧域名、301 跳转到 alotbuy.com(故首次 grep 得 0);正确域为 alotbuy.com |
注意 / 后续
- 本提示是常驻文案(不区分会话新旧),因为客户端无法判定"当前会话是老会话"; 文案本身对任何会话都成立(新会话本来就不弹审批,看到也无害)。
- 根治仍是新开会话;若将来要做 A(存量迁移),需先按 R5 出「权限影响评估」并取得确认。
- 用户的下一个真实痛点已不是本条:技能、插件、Python 都已就绪,缺的是把 MCN 技能投放进去
(
bundled-skills目录至今为空)。