Sessions
DSCC persists every interactive run to disk so you can inspect, resume, or compact it later.
Storage
| Item | Value |
|---|---|
| Directory | .dscc/sessions/ |
| Filename | session-{timestamp_millis}.json |
| Struct | Session { version, messages[] } at
runtime/src/session.rs:46–50 |
| Message | { role, blocks[], usage? } |
| Block types | text, tool_use,
tool_result |
Commands
| Command | Purpose |
|---|---|
/session list |
List local sessions |
/session switch <id> |
Switch to an existing session |
/resume <session-path> |
Resume a session from a path (slash form) |
--resume <file.json> [/cmd...] |
CLI flag, resumes then optionally runs a slash command (main.rs:301–302, 490–506) |
/export [file] |
Write current conversation to disk |
/compact |
Replace history with a summary |
Compaction
Handled in-library at
crates/commands/src/lib.rs:1756–1770. The default trigger
fires when the conversation has more than 4 messages AND at
least 10,000 estimated tokens
(compact.rs:14–20).
The summary bundles (compact.rs:143–227):
- Count by role
- Tools used
- Recent user requests
- Pending work
- Key files
- Timeline
See also
- slash-commands.md for full
/sessionargument forms. - config-files.md for where session defaults come from.