docs: architecture — clarify TUI session export formats and persona schema fields #4979

Merged
HAL9000 merged 1 commits from spec/tui-clarifications-session-export-persona into master 2026-05-31 13:37:37 +00:00
3 changed files with 10 additions and 7 deletions
+3 -1
View File
@@ -66,7 +66,7 @@ CleverAgents introduces the **Persona** concept as a TUI-only abstraction that b
3. **Scoped projects** — a list of project references that are always included in the session's context
4. **Scoped plans** — a list of plan references that are always included in the session's context
5. **Argument presets** — named sets of argument overrides that can be cycled with `ctrl+tab`
6. **Display metadata** — a short name, optional accent color, and description
6. **Display metadata** — a short name, optional accent color, optional icon (emoji/character), optional greeting message, and description
Personas are:
@@ -85,6 +85,8 @@ name: "feature-dev"
description: "Feature development with Claude on main projects"
actor: "anthropic/claude-4-sonnet"
color: "$primary" # Textual CSS color token or hex
icon: "🚀" # Optional emoji or single character for display in tab labels and lists
greeting: "Ready to build features!" # Optional greeting shown when this persona is activated
base_arguments:
thinking_effort: "medium"
@@ -261,8 +261,8 @@ When `/` is typed at position 0, the Slash Command overlay appears with filterab
| `/session:close` | `[--force]` | Close the current session tab (confirms if conversation exists) |
| `/session:delete <id>` | `<id>` (required), `[--yes/-y]` | Permanently delete a saved session (with confirmation) |
| `/session:rename <name>` | `<name>` (required) | Rename the current session's display label |
| `/session:export [path]` | `[path]` (optional, defaults to `./<session-name>.json`) | Export the current session's conversation history to a JSON file |
| `/session:import <path>` | `<path>` (required) | Import a session from a previously exported JSON file |
| `/session:export [path]` | `[path]` (optional, defaults to `./<session-name>.json`), `[--format json\|md\|txt]` (optional, defaults to `json`) | Export the current session's conversation history. `json` is the canonical format (full data, importable); `md` produces a human-readable Markdown transcript; `txt` produces a plain-text transcript. |
| `/session:import <path>` | `<path>` (required) | Import a session from a previously exported JSON file (only JSON format is importable) |
**Persona Commands**
+5 -4
View File
@@ -29415,7 +29415,7 @@ A **persona** is a TUI-only abstraction that bundles:
3. **Scoped projects** — projects always included in the session's context
4. **Scoped plans** — plans always included in the session's context
5. **Argument presets** — named argument overrides cycled with `ctrl+tab`
6. **Display metadata** — short name, accent color, description
6. **Display metadata** — short name, optional accent color, optional icon (emoji/single character for tab labels and lists), optional greeting message (shown when persona is activated), and description
Personas are stored as YAML files in `~/.config/cleveragents/personas/` and are strictly a Presentation-layer concept — they never appear in the domain model, A2A protocol, or database schema.
@@ -30553,11 +30553,12 @@ Conversations can be exported in multiple formats:
| Format | Command / Trigger | Output |
|--------|------------------|--------|
| JSON | `/session:export [path]` | Full session data including A2A messages, metadata, timestamps |
| Markdown | `/session:export --format md [path]` | Human-readable conversation transcript with Markdown formatting |
| JSON | `/session:export [path]` or `/session:export --format json [path]` | Full session data including A2A messages, metadata, timestamps. **Canonical format — the only format accepted by `/session:import`.** |
| Markdown | `/session:export --format md [path]` | Human-readable conversation transcript with Markdown formatting. Lossy — intended for sharing and documentation. |
| Plain Text | `/session:export --format txt [path]` | Plain-text conversation transcript with no markup. Suitable for piping into other tools or pasting into plain-text contexts. |
| SVG | Context menu → `v` (per block) | Single block rendered as SVG image |
The JSON export format is the canonical format for `/session:import` — it contains all data needed to fully restore a session. The Markdown format is a lossy export intended for sharing and documentation.
The JSON export format is the canonical format for `/session:import` — it contains all data needed to fully restore a session. The Markdown and plain-text formats are lossy exports intended for sharing, documentation, and interoperability with external tools.
### Hotkey Reference