Skip to content

GUI – Live Agent Output Panel #26

Description

@maddes8cht

Summary

Currently, agent output is invisible in the GUI. The Execution Log only shows engine lifecycle messages ([OpenLoop] Loaded workflow..., [OpenLoop] State updated: ...).

Add a dedicated output panel or tab in the Tkinter GUI that displays the full agent stdout/stderr in real time during execution.

Design Considerations

Receiver Pattern (recommended)

The ExecutionEngine already supports a logger callback. Extend this to an output_callback that is called with each chunk of agent output:

engine = ExecutionEngine(
    logger=log_queue.put,
    output_callback=output_queue.put,  # new
)

The GUI polls the output queue in _poll_log_queue() and appends text to a read-only Text widget in a dedicated frame/tab.

UI Layout Options

  1. Split pane – Execution Log on top, Agent Output on bottom (split via panedwindow)
  2. Tabbed – Existing "Execution Log" + new "Agent Output" tab via ttk.Notebook
  3. Expandable – Output in a ScrolledText with Show/Hide toggle

Concerns

  • Thread safety: Tkinter is not thread-safe. All widget updates must happen on the main thread via the queue polling pattern (already used for the log).
  • Performance: Agents can produce very long output (>100k chars). The Text widget should use insert with END and auto-scroll to bottom, with an optional "Auto-scroll" toggle.
  • Memory: The Text widget keeps all history. For long workflows, a cap (e.g. last 10k lines) may be needed later.

Priority

Low – File Logging (Issue #24) and CLI Verbose (Issue #25) cover 90% of the need. GUI Output Panel is a nice-to-have for interactive users.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions