Skip to content

Add filter functionality to CloudWatch Logs tail view #120

@yimsk

Description

@yimsk

Feature Request

Add real-time filter functionality to CloudWatch Logs tail view.

Implementation: Client-Side Only ✅

Decision: Simplified to client-side substring match only (removed initial hybrid AWS+Client approach)

Why Client-Only?

  • Tail views logs already fetched → client mode sufficient
  • AWS filtering only useful for high-volume streams (rare case)
  • Hybrid approach added unnecessary complexity
  • Avoids confusion about which filter is active

Features Implemented

  • Filter activation: / key (consistent with ResourceBrowser)
  • Real-time filtering: Filters as user types (instant feedback)
  • Filter syntax: Simple case-insensitive substring match
  • Clear filter: c key (or clears buffer if no filter active)
  • Visual indicators:
    • 🔍 filter: ERROR
    • Filtered count: (45/1,234 lines)
  • Status help: Esc:cancel Enter:done when filtering

UI/UX

  • / → Activate filter input
  • Type → Real-time filtering
  • Enter → Done (filter already applied)
  • Esc → Cancel/deactivate
  • c → Clear filter (or buffer)
  • Backspace → Delete chars (fixed via HasActiveInput)

Implementation

  • File: internal/view/log_view.go only
  • Net change: -68 lines (simpler than initial hybrid)
  • No breaking changes: Pure additive feature

Branch

feature/120-log-tail-filter

Status

✅ Implemented
✅ Tests pass
✅ Backspace handling fixed
✅ Simplified from hybrid to client-only
⏳ Ready for manual testing + PR

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions