Skip to content

[Code Quality] Add interactive table component with sorting/filtering for large datasets #13055

@github-actions

Description

@github-actions

Description

The console package currently only supports static tables. For large datasets (MCP tool lists, workflow status tables, audit reports with 100+ rows), adding interactive sorting and filtering would significantly improve user experience.

Suggested Changes

Add interactive table component using Bubble Tea in pkg/console/table.go:

// Add to pkg/console/table.go
func RenderInteractiveTable(config TableConfig) error {
    if !tty.IsStderrTerminal() {
        fmt.Fprintln(os.Stderr, RenderTable(config))
        return nil
    }
    
    // Bubble Tea table with sorting
    model := newSortableTableModel(config)
    p := tea.NewProgram(model, tea.WithAltScreen())
    _, err := p.Run()
    return err
}

Files Affected

  • pkg/console/table.go (add interactive table component)
  • pkg/console/table_test.go (add tests for interactive mode)

Use Cases

  • MCP tool lists (gh aw mcp list)
  • Workflow status tables
  • Audit report tables with 100+ rows
  • Any large dataset requiring sorting/filtering

Success Criteria

  • Interactive table component implemented using Bubble Tea
  • Automatic fallback to static table in non-TTY environments
  • Keyboard navigation (arrows, enter, esc)
  • Column sorting support
  • Optional filtering capability
  • Tests covering interactive and fallback modes
  • Integration with existing TableConfig structure
  • All tests pass (make test-unit)

Source

Extracted from Terminal Stylist Analysis discussion #13054 - High Priority Recommendation #2

Priority

High - Significantly improves UX for large datasets, leverages existing Charmbracelet infrastructure

AI generated by Discussion Task Miner - Code Quality Improvement Agent

  • expires on Feb 15, 2026, 9:08 AM UTC

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions