Files
wrkflw/crates/ui
bahdotsh d1268d55cf feat: move log stream composition and filtering to background thread
- Resolves #29: UI unresponsiveness in logs tab
- Add LogProcessor with background thread for async log processing
- Implement pre-processed log caching with ProcessedLogEntry
- Replace frame-by-frame log processing with cached results
- Add automatic log change detection for app and system logs
- Optimize rendering from O(n) to O(1) complexity
- Maintain all search, filter, and highlighting functionality
- Fix clippy warning for redundant pattern matching

Performance improvements:
- Log processing moved to separate thread with 50ms debouncing
- UI rendering no longer blocks on log filtering/formatting
- Supports thousands of logs without UI lag
- Non-blocking request/response pattern with mpsc channels
2025-08-13 13:38:17 +05:30
..
2025-08-09 17:46:09 +05:30

wrkflw-ui

Terminal user interface for browsing workflows, running them, and viewing logs.

  • Tabs: Workflows, Execution, Logs, Help
  • Hotkeys: 1-4, Tab, Enter, r, R, t, v, e, q, etc.
  • Integrates with wrkflw-executor and wrkflw-logging

Example

use std::path::PathBuf;
use wrkflw_executor::RuntimeType;
use wrkflw_ui::run_wrkflw_tui;

# tokio_test::block_on(async {
let path = PathBuf::from(".github/workflows");
run_wrkflw_tui(Some(&path), RuntimeType::Docker, true, false).await?;
# Ok::<_, Box<dyn std::error::Error>>(())
# })?;

Most users should run the wrkflw binary and select TUI mode: wrkflw tui.