> ## Documentation Index
> Fetch the complete documentation index at: https://docs.qredence.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Sessions and workspaces

> How Fleet RLM stores Sessions, Turns, Runs, workspace files, memory, Attachments, and Artifacts.

Fleet RLM uses one local User and one Workspace. The Workspace owns everything durable: Sessions, files, memory, Skills, Attachments, and Artifacts.

## Domain model

| Term | Meaning |
| - | - |
| Session | An ordered conversation of committed Turns. A Session is `active` or `archived`. |
| Turn | One user request and its committed answer. |
| Run | One attempt to execute a Turn. A cancelled Run leaves a short tombstone in history. |
| Attachment | A file you upload for a Turn. |
| Artifact | A file Fleet produces and commits with a Turn. |
| Workspace memory | Cross-Session notes that Fleet reads and updates through memory tools. |
| Project | A durable folder that Fleet reads and writes through project tools. |

## Persistence

Fleet stores Sessions, Runs, and Turns in the database named by `FLEET_DATABASE_URL`.

* Use SQLite for local development. The example `.env` sets `sqlite+aiosqlite:///./.fleet_rlm/local.sqlite3`.
* Use PostgreSQL at the Alembic head for durable deployments. See [Deploy with PostgreSQL](/fleet-rlm/guides/deploy-with-postgres).

Fleet never migrates the database on startup. Run `uv run python scripts/database.py upgrade` after install and after every upgrade.

## The Workspace Volume

One Daytona Volume holds each Workspace under `workspaces/<workspace_id>`. Fleet mounts it two ways.

| Sandbox | Mount | Holds |
| - | - | - |
| Root Session Sandbox | The Session Workspace at `/workspace` | The only durable path that model code sees. Per-Run scratch lives at `/tmp/fleet/<run>`. |
| Short-lived host I/O Sandbox | The whole Workspace at `daytona.volume_mount_path` | Memory, task checkpoints, Attachment originals, Artifacts, result snapshots, Projects, and the public `files/` area. |

Model code reaches the wider Workspace only through host tools. See [Sandbox tools](/fleet-rlm/reference/sandbox-tools).

## Attachments and Artifacts

* Upload an Attachment with `/attach <path>` in the terminal or `POST /api/attachments`. Pass up to 32 Attachment IDs in the next Turn request.
* Fleet creates Artifacts with the `create_artifact` and `publish_workspace_artifact` tools. An Artifact stays a private candidate until Turn Commit. There is no public endpoint to create Artifacts.
* `storage.max_upload_bytes` and `storage.max_artifact_bytes` cap both sizes. Each defaults to 10 MiB.

## Workspace memory

Workspace memory is file state shared across Sessions. Fleet reads it with `read_workspace_memory`, `list_memories`, and `search_memories`, and writes it with `remember`, `edit_memory`, `update_workspace_memory`, and `forget`.

`rlm.autonomous_memory_categories` lists the categories Fleet may propose on its own through `propose_memory`. The shipped configuration leaves it empty.

Memory is not a substitute for Turn Commit. Only committed Turns form the conversation history.

## Cancellation

Cancel a Run with `/cancel` or `PUT /api/runs/{run_id}/cancellation`. The stream emits one `turn_cancelled` event. After settlement, history shows the original input and an assistant message with a `cancelled` status and the text `Turn cancelled`. Tombstones never contain reasoning, code, output, or tool evidence.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.