History Tracking & Execution Logs

📘 General go v1

Flowork maintains a comprehensive Execution History system via the Go Engine. This creates an audit trail for workflow runs, terminal commands, and AI agent actions.

The Need for an Audit Trail

When Flowork is running completely autonomously—perhaps executing cron-based workflows overnight or utilizing Mother AI to scrape and write data—users need a way to understand what happened.

The History Tracking system provides a granular, easily readable audit trail.

What is Tracked?

The engine records almost everything modifying system state:

  • Workflow Executions: When a DAG starts, how long each node takes, what the final generated output was, and if/why it crashed.
  • Terminal Commands: Every command executed by an AI agent or a script via the runner, along with the stdout and stderr output.
  • System Crashes: Critical panic() events or unhandled Node.js exceptions caught by the self-healing kernel.

Local JSON Lines (JSONL) Storage

Instead of requiring a local database server like Postgres, Flowork uses JSONL format for logs.

In a JSONL file, each line is a completely valid, independent JSON object. This is ideal for logging because: 1. It is append-only (fast, no file rewriting needed). 2. If the application crashes halfway through writing a line, only that line is corrupt; the rest of the file remains easily parseable. 3. The UI can stream the file incrementally without loading a massive JSON array into memory.

User's can review these logs via the Flowork OS settings menu or extract them raw from FloworkData/history/.