会话管理
DSCC 会把所有交互会话落盘,便于之后查看、恢复或压缩。
存储
| 项 | 取值 |
|---|---|
| 目录 | .dscc/sessions/ |
| 文件名 | session-{timestamp_millis}.json |
| 结构体 | Session { version, messages[] },位于
runtime/src/session.rs:46–50 |
| 消息 | { role, blocks[], usage? } |
| Block 类型 | text、tool_use、tool_result |
命令
| 命令 | 作用 |
|---|---|
/session list |
列出本地会话 |
/session switch <id> |
切换到已有会话 |
/resume <session-path> |
从路径恢复会话(slash 形式) |
--resume <file.json> [/cmd...] |
CLI 参数,恢复后可选执行斜杠命令(main.rs:301–302, 490–506) |
/export [file] |
将当前对话写盘 |
/compact |
用摘要替换历史 |
压缩
实现位于
crates/commands/src/lib.rs:1756–1770。默认触发条件:消息数
大于 4 且估算 token 数 ≥
10,000(compact.rs:14–20)。
摘要包含(compact.rs:143–227):
- 按角色统计
- 使用过的工具
- 近期用户请求
- 待办事项
- 关键文件
- 时间线
相关
- slash-commands.md
/session完整参数形式。 - config-files.md 会话默认值的来源。