Skip to content

Taskwire v1.55.2

Choose a tag to compare

@majoraexp majoraexp released this 22 Mar 01:01
· 19 commits to main since this release

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)