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
- Split pane – Execution Log on top, Agent Output on bottom (split via
panedwindow)
- Tabbed – Existing "Execution Log" + new "Agent Output" tab via
ttk.Notebook
- 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.
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
ExecutionEnginealready supports aloggercallback. Extend this to anoutput_callbackthat is called with each chunk of agent output:The GUI polls the output queue in
_poll_log_queue()and appends text to a read-onlyTextwidget in a dedicated frame/tab.UI Layout Options
panedwindow)ttk.NotebookScrolledTextwith Show/Hide toggleConcerns
insertwithENDand auto-scroll to bottom, with an optional "Auto-scroll" toggle.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.