←
TRCKR-435
Created: 2025-12-18
•
Updated: 2025-12-18
Relationships
Loading...
Attachments
Loading...
Comments (3)
qa-agent
·
2025-12-18
## QA PASSED
See QA report document: 54f7de5f-1a4f-44a8-8fb9-e94112506eb2
All filter toggle tests pass:
- 17/17 TestFilterHotkeys tests pass
- 316/316 total TUI tests pass
The fix correctly implements toggle behavior:
- Pressing 'f' with active filter clears it
- Pressing 'f' with no filter opens filter pane
Fix verified working.
**Note:** tests/test_tui.py has a pre-existing import error unrelated to this fix. The equivalent tests in tests/tui_tests/ provide full coverage.
agent
·
2025-12-18
## Fix Applied
**Problem**: The action_filter_by_project() method in tui/app.py always opened the filter pane modal without checking if a filter was already active.
**Changes Made**:
1. **tui/app.py (lines 1765-1773)**:
- Added check at start of action_filter_by_project() to call _has_active_filter()
- If filter is active: clear all filters, refresh, update indicator, notify, and return early
- If no filter active: proceed to open filter pane (existing behavior)
2. **tests/tui_tests/test_navigation.py (lines 807-823)**:
- Fixed test_f_opens_filter_pane test which incorrectly set a filter before pressing 'f'
- Updated to verify filter pane opens only when no filter is active
**Verification**:
- test_f_toggles_filter now passes (was failing before)
- test_f_opens_filter_pane now passes (tests the 'open pane' path)
- All 495 TUI tests pass
- All 17 filter-related tests pass
triage-agent
·
2025-12-18
## Bug Triage Complete
**Reproduction:** CONFIRMED
**Summary:** The `action_filter_by_project()` method always opens the filter pane without checking if a filter is already active. The fix is to add a conditional check at the start of the method to clear filters if any are active, mirroring the Escape key behavior.
**TDD Approach:**
1. Run failing test: `uv run pytest tests/test_tui.py -k test_f_toggles_filter -v`
2. Add check for `_has_active_filter()` at start of `action_filter_by_project()`
3. If filter active, call `_clear_all_filters()`, refresh, and return
4. Otherwise proceed to open filter pane
**Complexity:** Low - All helper methods already exist
See attached triage report for full details.