Reporting TUI problems
Review privacy-safe diagnostics, save a bundle offline, or send a bug report through your Dreadnode deployment.
The TUI can package the details support needs without attaching your full configuration, environment, or conversation by default. You choose every diagnostic category before anything is saved or sent.
Open the reporter in either place:
- Run
/report-bugfrom the conversation. - Press
F5to open the backend console, then pressr.
The reporter works without a network connection. Sending requires an authenticated profile and a deployment with feedback delivery configured; saving a local bundle does not.
Inspect client and runtime logs
Section titled “Inspect client and runtime logs”Press F5 to open the console. Local process shows logs from this TUI and
its embedded runtime together. In embedded mode there is only this view: the
console reads its in-memory buffer without polling its own runtime.
When connected to a runtime in another process (including a direct server URL),
the console offers Tab to switch to Runtime server. The runtime URL appears
above the log. Changing remote connections clears the previous runtime’s view;
returning to the embedded runtime restores Local process and removes the
source switch. Connection changes are detected while the console is visible
and when you return to it.
Runtime logs refresh every two seconds while that source is visible. The runtime keeps its latest 2,000 structured entries in memory, starting when logging is initialized, and switching to Runtime server loads all of them. Timestamps from both sources are shown in your local time. Capture includes Dreadnode DEBUG-and-above messages, external warnings, and runtime server errors; HTTP access logs and TRACE payloads are not captured. Each message is limited to 8,192 characters and marked when truncated. There is no dependency on a log file. History is lost on process restart, and the console reports restarts and gaps when older entries have left the buffer.
Press l to change the displayed level, c to copy, or s to save the selected
source under ~/.dreadnode/logs/. Press x to clear the selected view; clearing
runtime logs does not erase the server’s history. Runtime polling pauses when
you leave the view. Connection and authentication failures appear above the log.
Remote runtime logs are not automatically attached when you open the bug reporter.
Runtime clients can query the same history through authenticated GET /api/logs.
Use level, text (case-insensitive message/source substring), and limit
(1–200; default 100). The first query returns recent matches; subsequent queries
pass the returned instance_id and next_cursor as instance_id and after.
A reset means the process changed or the cursor is ahead of its history; a
gap means retained history no longer covers the requested cursor. This endpoint
accepts no file paths and is available while the runtime is still initializing.
1. Describe the problem
Section titled “1. Describe the problem”Fill in a short title, the steps that reproduce the problem, what you expected, and what actually happened. Additional context is optional.
Turn on Dreadnode may contact me about this report only if you want follow-up. Without consent, the stored support record and delivery summary use an anonymous placeholder instead of your profile name and email.
Press Review diagnostics or Ctrl+Enter when the report is ready.
2. Review the bundle
Section titled “2. Review the bundle”The review shows each category, its size, and whether it may contain customer content. Every checkbox can be cleared, including the safe defaults.
| Category | Default | What it contains |
|---|---|---|
| System and runtime | On | Dreadnode and runtime versions, OS and architecture, terminal indicators, runtime and deployment mode, active screen, session ID, selected agent and model, and enabled capability names and versions |
| Recent logs (INFO/DEBUG) | On | A bounded snapshot of recent TUI and runtime logs, excluding TRACE entries |
| Latest exception | On when available | The most recent error or traceback |
| TRACE logs | Off | Verbose runtime events that may contain prompts or model payloads |
| Conversation content | Off | The active session transcript, including model and tool content |
| Worker logs | Off | Current capability worker logs |
| MCP logs | Off | Current MCP server logs |
| Persistent and previous logs | Off | The current persistent TUI self-log and two newest TUI, worker, or MCP rotations |
The default bundle does not include config.yaml, mcp-auth.json, the raw environment, or the full conversation. Archives have a 2 MiB compressed limit and include a readable manifest.json plus the report text, selected diagnostics, sizes, checksums, and truncation markers.
3. Save or send
Section titled “3. Save or send”Choose one of these paths from the review:
- Save bundle writes
dreadnode-report-<timestamp>-<hash>.zipunder~/.dreadnode/logs/. This works offline and does not authenticate or contact the platform. You can also pressCtrl+S. - Send report uploads the reviewed bundle to your configured deployment. The button remains disabled when you are offline, unauthenticated, or feedback delivery is not configured.
Submission returns a stable receipt such as RPT-12AB34CD56EF78AB, a delivery state, and the date the stored report expires. Keep the receipt when following up with support. A stored or partial state means the report is safely retained but one or more configured delivery destinations did not complete; it is not presented as a successful delivery.
If upload fails, the reporter stays open and offers local save. No report is shown as sent unless the server first stores it durably.
Self-hosted deployments
Section titled “Self-hosted deployments”Most self-hosted deployments leave feedback delivery unconfigured, so Send report stays disabled. Save bundle is the supported path: the archive is redacted, self-contained, and safe to move over email or a ticket system.
- Users — hand the saved
dreadnode-report-*.zipto your platform operator. - Operators — attach TUI bundles when escalating to Dreadnode support, alongside a support bundle when the platform itself is misbehaving.
How report data is protected
Section titled “How report data is protected”Credential-like values are redacted once while the TUI builds the archive and again after the server receives it. The server also rejects malformed, encrypted, oversized, non-text, or path-traversing archive entries.
Accepted reports are kept in private deployment object storage for 365 days. Configured internal issue delivery receives the report summary, receipt, and a time-limited private bundle link—not raw log text pasted into the issue. A self-hosted deployment does not send reports to Dreadnode or another external system unless its operator explicitly configures feedback delivery and you choose Send report.
When the TUI exits unexpectedly
Section titled “When the TUI exits unexpectedly”The TUI continuously writes a bounded ~/.dreadnode/logs/tui.log self-log and retains the two newest rotations. The self-log records DEBUG-and-above entries only; TRACE-level content, which can include prompts and model payloads, is never written to disk. Restart the TUI, open /report-bug, and opt into Persistent and previous logs if those earlier records are relevant. You can still clear that checkbox and save or send the rest of the report.