OpenViking
volcengine
Self-evolving Context Database for AI Agents. Unify Agent Memory, Knowledge RAG and Skills.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:boyun-zhang/better-session-management
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
English | 中文
一个面向 DeepSeek Harness (DSH) 的插件包(dsh bundle),在会话(session)原语之上提供链式上下文视图、子会话(sub-session)、/btw 一次性问答与工作区/会话树管理,让长对话中的"分支继续"与"临时插话"更可控。

bsm_create_sub。
/btw <问题> 发起一次性只读临时问答:仅一次提问机会,回答后立即销毁全部运行态,界面只保留主会话中的问答卡片(问题 + 回答 + 耗时)。read / read_image / glob / grep / web_search / skill——不改文件、不执行命令、不创建子代理。
↳ 前缀。better-session-management/
├── package.json # dsh.bundle 清单(+ dsh.client 浏览器半声明)
├── cordis.patch.yml # bundle 层:挂载 Host 半
├── index.js # Host 半(子会话/btw 服务、Typert Remote RPC、模型工具)
├── client.js # Client 半(链视图、卡片、会话栏、设置页;模块加载器格式)
├── src/ # 动态插件源码镜像(开发调试用;bundle 由脚本生成)
│ ├── host.js # 动态版 Host(harness RPC)
│ ├── client2.template.js # 动态版 Client 模板(__ICONS_JSON__ 占位符)
│ └── icons.json # IconPark 图标目录(30 个,Apache-2.0)
├── scripts/
│ ├── build-client.cjs # 动态版客户端构建(图标占位 + 分块转义 + 语法检查)
│ └── build-bundle.cjs # bundle 移植生成器(src/host.js + dist 客户端 → index.js/client.js)
├── asset/ # 界面截图(仅供仓库 README 展示,不进 npm 包)
├── README.md / README_EN.md
需要 DSH 的
dshCLI(官方文档:Package and install a plugin)。
--profile 指定安装目标:一个 profile 就是一份可运行的插件组合(保存在 $DSH_HOME/profiles/<名称>/ 下,名称可自定义,例如 web、demo、work、default)。以名为 demo 的 profile 为例:
dsh plugin --profile demo add github:boyun-zhang/better-session-management
dsh --profile demo
本插件为纯 JavaScript、无构建步骤,通常无需额外授权;若 pnpm 提示 allowBuilds,按提示把包名加入该 profile 的 pnpm-workspace.yaml 后重试即可。
dsh plugin --profile demo add ./better-session-management # 本地 checkout
# 或发布到 npm / pnpm pack 出的 .tgz 后:
# dsh plugin --profile demo add <pkg 名或 ./xxx.tgz>
安装完成后 dsh --profile demo --dump-config 应能看到 # == dsh-better-session-management 配置层。
本仓库保留动态插件源码(src/host.js + src/client2.template.js),适合不重启服务地热修实验(DSH 会话内):
node scripts/build-client.cjs # -> dist/client.chunked.js
随后在 DSH 会话中用 cordis_define(plugin.kind: "new",code.host = src/host.js 全文,code.client = dist/client.chunked.js 全文)并 cordis_run 激活;更新用 cordis_define(kind: "existing")+ cordis_run(update)。动态插件为进程级定义,DSH 重启后需重新部署。
| 操作 | 方式 |
|---|---|
| 创建子会话(摘要快建/完整继承) | 助手消息操作条图标 / 反馈操作条按钮 / 模型工具 bsm_create_sub |
| 分支(完整继承) | 反馈操作条「分支」按钮(自有创建路径,不用官方 fork RPC) |
| btw 临时问答 | 输入框 /btw <问题> |
| 查看子会话/btw | 主会话轮次尾部卡片、左侧会话栏树 |
| 打开子会话 | 卡片「打开子会话」或侧栏点击标题 |
| 压缩注入主会话 | 子会话头部「压缩注入主会话」三档模板;btw 卡片「发送给主会话」 |
| 重命名/删除 | 侧栏悬停行:✏️ 重命名 / 🗑 删除(归档) |
| 设置 | 设置 → 会话管理 |
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: session-management。