Early version v0.1.0 · Native agents, one terminal workflow.Current status

Navigation

Browse documentation

Sessions & resume

uuldana-cli keeps an append-only journal per session; resume rebuilds it and continues.

On this page

uuldana-cli owns the record

A Session is an ordered history of runs in one absolute workspace. Each run records its provider, transport, effective permission policy, lifecycle, timestamps, and the native session ids it is known to have used. Every event of a session is written to an append-only JSON Lines journal under the data directory, with a versioned header.

Journals contain the events uuldana-cli observed: run start and end, permission policy, usage limits, and native session identity. When a run ends, the text its screen showed (the last 120 lines with text) is written too, so a journal can hold visible conversation text, and nothing else of it: an agent’s own conversation files are never read. A structured transport would record message events. Journals are plain files with your user’s permissions. When a new session starts, uuldana-cli keeps the 200 most recent journals and deletes older ones; deleting a journal deletes that history.

Resume

sh
uuldana resume

Resume finds the most recent session for the current directory and rebuilds it from its journal. It works after a crash too:

  • a run that did not end cleanly is marked as failed, and uuldana-cli says so;
  • damaged lines in the journal are skipped and counted;
  • An agent whose help offers a flag to choose the session id is started with an id uuldana-cli knows, and resumed by it. Any other agent is resumed with its own flag for continuing the latest conversation of this folder, which is the latest one there, not necessarily the one uuldana-cli started. An agent with neither flag starts again in the same directory, with the saved screen text as its first prompt when someone spoke to it.

If the directory has no earlier session, uuldana resume says so and suggests uuldana.

Native sessions stay with the provider

A native id is meaningful only to the provider that issued it. It may rotate inside a live process when an agent resets, loads another session, or forks. uuldana-cli records the ordered history of identities instead of treating each change as an error. For providers that choose their own id, uuldana-cli discovers the session the provider created in the workspace since the run started.

Resume is something each adapter has to establish from what the agent offers. Even a same-agent resume does not promise exact restoration of scrollback, pending prompts, or hidden interface state.

Resume and permissions

A session’s permission ceiling is fixed when it is created and is never raised. uuldana resume --bypass-permissions is therefore refused for a session that was created with a stricter ceiling; start a new session with uuldana --bypass-permissions instead.

Across providers

When work moves to another provider, that provider does not load the previous provider’s native session. It receives the visible conversation as its first prompt, and uuldana-cli keeps the task record across both. See Context handoff.

Search documentation

Start typing to search all articles.

↑ ↓ navigate · Enter openEsc close