logs.gokuls.in

5 pull requests merged across 1 repo

bahdotsh/wrkflw

…crolling

  • Add comprehensive keyboard shortcut documentation organized in sections
  • Implement two-column layout with color-coded sections and emoji icons
  • Add scrollable help content with ↑/↓ and k/j key support
  • Enhance help overlay with larger modal size and scroll support
  • Include detailed explanations of all tabs, runtime modes, and features
  • Update status bar with context-aware help instructions
  • Add help scroll state management to app state
  • Document workflow management, search functionality, and best practices

The help tab now provides a complete guide covering:

  • Navigation controls and tab switching
  • Workflow selection, execution, and triggering
  • Runtime modes (Docker, Podman, Emulation, Secure Emulation)
  • Log search and filtering capabilities
  • Tab-specific functionality and tips
  • Quick actions and keyboard shortcuts

Security Features:

  • Implement secure emulation runtime with command sandboxing
  • Add command validation, filtering, and dangerous pattern detection
  • Block harmful commands like 'rm -rf /', 'sudo', 'dd', etc.
  • Add resource limits (CPU, memory, execution time, process count)
  • Implement filesystem isolation and access controls
  • Add environment variable sanitization
  • Support shell operators (&&, ||, |, ;) with proper parsing

New Runtime Mode:

  • Add 'secure-emulation' runtime option to CLI
  • Update UI to support new runtime mode with green security indicator
  • Mark legacy 'emulation' mode as unsafe in help text
  • Default to secure mode for local development safety

Documentation:

  • Create comprehensive security documentation (README_SECURITY.md)
  • Update main README with security mode information
  • Add example workflows demonstrating safe vs dangerous commands
  • Include migration guide and best practices

Testing:

  • Add comprehensive test suite for sandbox functionality
  • Include security demo workflows for testing
  • Test dangerous command blocking and safe command execution
  • Verify resource limits and timeout functionality

Code Quality:

  • Fix all clippy warnings with proper struct initialization
  • Add proper error handling and user-friendly security messages
  • Implement comprehensive logging for security events
  • Follow Rust best practices throughout

This addresses security concerns by preventing accidental harmful commands while maintaining full compatibility with legitimate CI/CD workflows. Users can now safely run untrusted workflows locally without risk to their host system.

  • 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
  • Add custom deserializer for runs-on field to handle both string and array formats
  • Update Job struct to use Vec<String> instead of String for runs-on field
  • Modify executor to extract first element from runs-on array for runner selection
  • Add test workflow to verify both string and array formats work correctly
  • Maintain backwards compatibility with existing string-based workflows

Fixes issue where workflows with runs-on: [self-hosted, ubuntu, small] format

would fail with 'invalid type: sequence, expected a string' error.

This change aligns with GitHub Actions specification which supports:

  • String format: runs-on: ubuntu-latest
  • Array format: runs-on: [self-hosted, ubuntu, small]