Skip to content

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-bug from the conversation.
  • Press F5 to open the backend console, then press r.

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.

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.

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.

The review shows each category, its size, and whether it may contain customer content. Every checkbox can be cleared, including the safe defaults.

CategoryDefaultWhat it contains
System and runtimeOnDreadnode 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)OnA bounded snapshot of recent TUI and runtime logs, excluding TRACE entries
Latest exceptionOn when availableThe most recent error or traceback
TRACE logsOffVerbose runtime events that may contain prompts or model payloads
Conversation contentOffThe active session transcript, including model and tool content
Worker logsOffCurrent capability worker logs
MCP logsOffCurrent MCP server logs
Persistent and previous logsOffThe 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.

Choose one of these paths from the review:

  • Save bundle writes dreadnode-report-<timestamp>-<hash>.zip under ~/.dreadnode/logs/. This works offline and does not authenticate or contact the platform. You can also press Ctrl+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.

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-*.zip to your platform operator.
  • Operators — attach TUI bundles when escalating to Dreadnode support, alongside a support bundle when the platform itself is misbehaving.

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.

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.