Taskwire v1.55.2
BUG FIX + SOURCE CODE REFACTOR UPDATE:
Bugs discovered during the C++ Qt6 rewrite by 4-model AI review team (Claude Opus 4.6, Gemini 3.1 Pro, Grok 4.1, and GPT 5.4), then backported to the Python version.
(YES, a full NATIVE C++ rewrite is in progress to release soon! Faster launch times, much smaller binary, smaller computational footprint. About 90% complete at this point.)
BUG FIXES APPLIED:
ProcessListWidget
Selection after sort: Restored selection to stale row index after sorting — now correctly clears selection since the process at that index changed
ServicesWidget
Context menu wrong row: Right-click context menu acted on the previously selected row, not the row under the cursor
Selection after sort: setSortingEnabled(True) re-sort invalidated saved row index — now uses item pointer for sort-safe restoration
UI freeze on scroll: 5-second auto-refresh timer + ResizeToContents columns caused hangs when scrolling through ~235 services — changed to 30s timer + fixed-width Interactive columns
ConnectionsWidget
Context menu wrong row: Same right-click targeting bug as ServicesWidget
Selection after sort: Same sort invalidation bug as ServicesWidget
Lexicographic port/PID sorting: Port numbers sorted as strings (100 before 20) — now uses SortableTableWidgetItem with numeric UserRole data
Missing pkexec check: _escalated_kill() attempted pkexec without checking if it was installed, causing confusing errors
JournalLogWidget
Unexpected exit not reported: journalctl --follow exit with code 0 was silently ignored — now any exit is treated as unexpected since --follow should stream indefinitely
Incomplete clear: Clear button didn't reset partial line buffer or search highlights, allowing stale fragments to reappear
Unbounded memory growth: Line buffer cap only applied during pause — extreme log bursts could grow memory without bound during normal streaming
Undo stack leak: Read-only streaming widget accumulated undo history from programmatic insertions — disabled with setUndoRedoEnabled(False)
Also included:
Refactored monolithic src/ui.py (5,518 lines, 22 classes) into src/ui/ package with 15 modules
Log view theme color switching fix (from v1.55.1 hotfix)
Priority filter labels cleaned up (removed confusing level numbers)