# Roomote

> Import Roomote server histories through a read-only database history copy or authorized cloud endpoints.

Roomote stores conversations and delegated tasks on its server. Hansard offers
two explicit import paths for a deployment.

## Source IDs

| Source          | Use it for                                                                  |
| --------------- | --------------------------------------------------------------------------- |
| `roomote-db`    | PostgreSQL conversation history, inference usage, and retained memory text. |
| `roomote-cloud` | Authorized visible transcripts through the Roomote API.                     |

## How the import works

The database reader asks PostgreSQL for a consistent, read-only copy of
specific history tables and columns. It preserves primary messages, tool
arguments and outputs, task attempts, and durable inference usage. Task usage
belongs to the task even when the same row also names its parent session.
Selected model settings remain metadata; only recorded inference models enter
model accounting. Connection credentials and unrelated deployment settings
are excluded from the archived copy.

The cloud reader enumerates accessible sessions, reads their summaries and
linked task transcripts, and verifies that summaries remain stable during
capture. It requests the transcript endpoint without a message limit to avoid
the separate session endpoint's thousand-message cap. This API returns
sanitized visible text and image references, so it cannot supply the database
reader's structured tool arguments or inference usage. Both paths derive the
same identities from the deployment origin, allowing richer database imports
to replace earlier cloud captures without duplicating conversations.

## Import and keep current

**Conversation history**

Set `ROOMOTE_URL` to the deployment's HTTPS origin. Loopback HTTP is also
supported for a local server. Supply `ROOMOTE_DATABASE_URL` and install `psql`
for database imports; `HANSARD_ROOMOTE_PSQL` can select its executable.

```sh
hansard import roomote-db --since all
```

For cloud imports, supply an authorized bearer token in `ROOMOTE_AUTH_TOKEN`:

```sh
hansard import roomote-cloud --since all
```

Both commands accept `--session <uuid>`, `--dry-run`, and `--json`. Use the same
`ROOMOTE_URL` for both paths. Repeat the command to capture subsequent turns;
these sources remain outside the local watcher and source picker.

**Memories and instructions**

```sh
hansard import roomote-db --since all
```

The database import also snapshots deployment instructions, task instructions,
and retained Fast/Brain memory outbox text. Task memories retain repository
scope when an explicit repository URL is present. These observations are
read-only and may differ from finalized Brain pages. Periodic memory backup
does not query Roomote, and the cloud transcript path does not export memory.

## Review the import in the app

1. When the import finishes, open **Conversations** and select **Filter & sort**.
2. Set **Source** to **Roomote** and set **Time** to the window you imported. Use **Folder** to narrow the list when you use this harness in several projects.
3. Select a conversation to check its messages, tool calls, files, commits, model, and token usage.

To keep archiving new sessions from a local harness, open **Settings → Imports**. **Automatic** follows every supported harness installed on this computer. **Custom** lets you turn individual harnesses on or off. Cloud sources and account exports never run from here; each needs its own import command. If a conversation you expect is missing after you reset the filters, run the import command on this page again with `--explain-skips` where the source supports it.

Check database tool arguments and edit diffs, parent-task links, recorded
inference models, and memory scopes. Cloud tool previews remain context text.

## What Hansard preserves

- Database messages, reasoning, tools, results, and inline attachments.
- Durable inference tokens, cache and reasoning counts, and reported costs.
- Delegated task links, resumed task attempts, and automation classification.
- Sanitized cloud transcripts and provider summaries returned by read endpoints.
- Raw history copies or API responses, plus read-only memory snapshots.

## Known limitations

The supported schema is Roomote 1.13.1. Database imports include standalone
tasks and sessions, including retained archived records. Legacy compatibility
message arrays remain raw-only; Fast conversations without a session record
are outside this import. Encrypted personalization, runtime secrets,
compute files, and finalized Brain pages are not exported. Remote attachment
bytes are not fetched, and upstream tool truncation cannot be reversed.

Cloud listings omit hidden and archived sessions. An authorized known session
can be requested explicitly, subject to server access controls. Cloud reads
have no atomic snapshot; a changed summary rejects that session for retry.
Captures are limited to 2,000 sessions, 100,000 database rows or messages per
cloud transcript, and 128 MiB. Select a session when a limit is reached.
Authenticated hosted inference, delegation, and cloud acceptance remain pending.

## Refresh an existing archive

Repeat the corresponding `hansard import roomote-db --since all` or
`hansard import roomote-cloud --since all` command after a parser update.
Subsequent cloud imports retain an existing database archive of the same
identity. Provider originals are required; raw replay is not implemented.
