This commit is contained in:
2026-02-12 00:05:42 -05:00
parent 7d86d37dea
commit 49edd5ba84
47 changed files with 4502 additions and 1 deletions

57
DEBUGGING_NOTES.md Normal file
View File

@@ -0,0 +1,57 @@
# Debugging Notes - Blank TUI Issue
## Current Status
### ✅ What's Working
1. **API Connection**: Successfully connecting to Jellyfin server
2. **Data Fetching**: All API endpoints returning data correctly
- Users: 12 found
- Libraries: 3 found
- Playback stats: Query working, data converting from list-of-lists to dictionaries
3. **Stats Services**: All three services (user, series, library) generating correct statistics
4. **Table Row Formatting**: Data being formatted correctly for display
### ❌ What's Not Working
- **TUI Display**: Tables appear blank/empty in the terminal
- No error messages or exceptions occurring
- Layout renders (header, tabs, footer) but content area is blank
## Data Dump Analysis
See `jellycleanarr_data_dump.txt` for complete data verification showing:
- User "HRiggs" with 346 plays
- Series "Landman - s02e05" with 13 plays
- All table rows properly formatted as lists of strings
Example working data:
```python
['HRiggs', '346', '3h 9m', '153']
['TV', '204', '5d 1h 16m', '115']
```
## Fixes Applied
1. **API Client** (`src/jellycleanarr/api/client.py`)
- Fixed `query_playback_stats()` to convert API's list-of-lists format to list-of-dicts
- Maps column names from `data["colums"]` to result rows
2. **StatsTable** (`src/jellycleanarr/ui/widgets/stats_table.py`)
- Moved column initialization from `__init__` to `on_mount()`
- Added logging for debugging
3. **CSS** (`src/jellycleanarr/ui/styles/main.tcss`)
- Added explicit height for widget containers
## Possible Remaining Issues
1. **Widget Composition**: TabPane might not be passing through content properly
2. **CSS Cascading**: Height/sizing might not be cascading correctly
3. **Async Timing**: Data might load but tables refresh before columns are added
4. **Textual Version**: Possible compatibility issue with current Textual version
## Next Steps
1. Try running with Textual devtools: `textual console` then run app
2. Check Textual version: `pip show textual`
3. Try simplifying the widget hierarchy (remove TabPane, just show widgets directly)
4. Add more explicit sizing in CSS (px values instead of percentages)