Releases: ThoriaDevelopment/Kleos
Releases · ThoriaDevelopment/Kleos
Release list
Kleos v1.2.3
Small Dashboard aesthetics improvements & geometry fixes, bug fixes, better theme & notifications tracking.
Release v1.2.2
Fix missing matplotlib SVG backend in PyInstaller build
- Add matplotlib.backends.backend_svg to PyInstaller hiddenimports so HTML reports work in the packaged executable.
- Bump installer version to 1.2.2.
Kleos v1.2.1
Bug Fixes
- HTML report charts now correctly respect the selected timeframe (e.g., Monthly, Weekly, Yearly).
- Summary table labels in HTML reports now reflect the selected timeframe (e.g., 'Monthly All Videos' instead of 'All Videos').
- Updated footer GitHub link to https://github.com/ThoriaDevelopment/Kleos.
v1.2.0
v1.2.0 — Content Type Filters, Per-Creator Reports, Analytics Overhaul
Features
- Content type filtering — Verified only + Type (Shorts/Videos/Streams) + Range (All time/Year/Month/Week) filters on Analytics charts, Media History stats, reports, and HTML exports
- Content type override — Right-click any media item to manually set its type (Video/Short/Stream). Overrides persist across data refreshes
- Per-creator report & HTML export — Copy Report and Export HTML buttons in each creator's Stats tab, scoped to that member
- Analytics window overhaul — Removed old platform filter buttons and leaderboard text panel; charts now fill full width with dedicated filter controls and separate report filter row
- HTML export with charts — Inline SVG timeline and bar charts embedded in the exported HTML dashboard
- All time period — Reports and HTML exports now support an "All time" period option
- Minimize button removed from all non-main dialogs (Analytics, Media History, Settings)
Fixes & Cleanup
- Immediate data sync when overriding content types in Media History
- Removed stale changeEvent/minimize-restore code from dialogs
- Transparent canvas backgrounds to eliminate white edge lines on charts
- Updated USERMANUAL.md and README.md for v1.2.0
v1.1.1 — Bug Fix Update
Kleos v1.1.1 — Comprehensive Bug Fix Update
Critical Fixes
- C3: Uninstaller now asks for confirmation before deleting user data; added running-instance check before install
High Fixes
- H1: Fix
_writerollback race — rollback now inside same lock scope as write - H2: Wrap all Twitch API
resp.json()calls in try/except for JSONDecodeError - H3: Add error handling to
get_channel_id(network + JSON errors) - H4: Guard thread pool callback against destroyed widget (sip.isdeleted check)
- H5: Disconnect before reconnecting in
_on_profile_switchto prevent signal accumulation - H6: Defer profile import on drop until fetch worker finishes
- H7: Add
delete_profile()method with validation; settings dialog uses it instead of raw file deletion - H8: Preserve existing API key on validation failure instead of overwriting with empty string
- H9: Add sip.isdeleted guards for
_bg_canvas._animin closeEvent
Medium Fixes
- M1: Remove per-URL download lock release (was causing race condition)
- M2: Add
_safe_parse_platforms()helper for robust JSON parsing - M3: Clamp Twitch token expiry to at least 60s from now
- M4: Classify zero-duration strings (e.g. 'PT') as not-short
- M5: Only mark first-run wizard complete on Accepted, not on rejection
- M6:
initialize_app_datareturns bool; show QMessageBox on failure - M7: Add
_validate_profile_name()to prevent path traversal - M8: Add clarifying comment on backup WAL race (acceptable behavior)
- M9: Add
forceparameter toensure_thumbnail; refresh uses it - M10: Replace f-string SQL interpolation with parameterized conditions
- M11: Replace geometry press animation with opacity effect (no layout flicker)
- M12: YouTube key length check is now warning-only, not a hard block
Low Fixes
- L1: Batch
_fetch_statsrequests in groups of 50 - L3: Add public
get_all_thumbnail_paths()method - L4: Remove redundant
import re as _re - L7: Pause/restore refresh timer on window show/hide
- L8: Wrap QPainter in try/finally in
_circular_pixmap - L9: Add running-instance check in NSIS installer
- L10: Add IfFileExists guard before RMDir in uninstaller
- L11: Validate
dark_questiondefault button is in buttons set - L13: Only hide tooltips on spontaneous Leave events
Dialog Minimize Fix
- Fix minimize button on History and Analytics dialogs restoring the dialog itself immediately — now only restores the parent window, allowing the dialog to stay minimized as intended
Kleos v1.1.0
What's New in v1.1.0
Welcome Wizard
- 10-page guided onboarding — new users now see a multi-step walkthrough with visual mockups for every key feature: Add Members, View History, Right-Click Menu, Verify Content, Leaderboard, Search & Filter, Creator Notes, and Shortcuts
New Features
- Keyboard shortcuts — Ctrl+R (Refresh All), Ctrl+N (Add Member), Ctrl+F (Focus Search), Escape (Clear Search)
- Tooltips on all toolbar buttons (3-second display, resets between buttons)
- Context menu enhancements — right-click a card for Delete Member and Edit Notes
- Creator notes — per-member notes field, auto-saved, included in exports
- Cooldown countdown timer — live seconds countdown after Refresh All
- Lazy card creation — cards render in batches for smoother performance
- Thumbnail concurrency cap — max 4 concurrent downloads to prevent crashes
- Debounced search — 200ms delay before filtering
- Toggleable charts — switch between Timeline and Upload Activity in both Stats and Leaderboard
Bug Fixes
- Fixed tooltip text invisible on dark theme
- Fixed tooltip appearing too fast between buttons
- Fixed creator notes not preserved on export/import
- Fixed card overlap after Refresh All
App Icon
- Red triangle icon now appears on desktop shortcut, taskbar, and wizard dialog
v1.0.1
Bug Fix
- Fixed a crash when right-clicking a media member on the main dashboard
Kleos 1.0.0
Kleos 1.0.0 — First stable release
Kleos is a desktop dashboard for tracking YouTube and Twitch creators. Features include a card-based dashboard, per-member media history with charts, global leaderboards, auto-verification via Claude, multi-profile support, and JSON import/export.
Download: Kleos-Setup.exe
After installing, add your API keys in Settings to begin fetching data.