TrueHour v3.1.0 — Stable Release
We are excited to announce the stable release of TrueHour v3.1.0! This release introduces robust multi-profile support, fully isolated profile environments, encrypted local storage, optimized single-page invoicing, and critical stability fixes for file locking.
Here is a summary of what's new in this major release:
👥 Multi-Profile Environments & Isolation
Manage separate projects, clients, or team members with ease.
- Dedicated User Profiles: Create, select, rename, and delete multiple distinct profiles (e.g., Personal, Client A, Freelance) directly from the settings interface.
- Strict Database & Config Isolation: Each profile operates inside its own secure sandbox with isolated SQLite databases, customized app categories, session logs, and personal settings.
💾 Portable Backups & Easy Migration
- Compressed
.truehourBackups: Backup entire profiles to a single.truehourZIP archive containing all databases, session files, QR codes, settings, and custom logos. - Seamless Profile Restoring: Import a
.truehourfile to restore or clone your workspace onto any machine with built-in overwrite safety checks.
⚙️ Path Binding & System Stability
- Dynamic Path Resolution (
DynamicPath): Real-time path binding via a custom dynamicPathLikewrapper resolves all settings, QR code locations, and time-integrity hashes instantly when switching profiles. - Windows File Lock Resolution: Moved application lock files (
truehour.lock) and active logging streams (truehour.log,TrueHour_active.log) to the global root AppData directory, allowing seamless renaming, deletion, or modification of profile folders at runtime without permission conflicts.
🧾 Compact Invoicing & Print Compliance
- A4 Single-Page Compliance: Re-engineered print layouts, margins, cell paddings, and header heights for a ~38% reduction in vertical space, guaranteeing that standard invoices print beautifully on a single A4 page.
- Side-by-Side Payment Info: Created a dynamic flex-row layout that positions bank details and direct-payment QR codes side-by-side, adapting responsively as contents change.
- Enlarged High-Resolution QR Codes: Enlarged scan codes to
140pxwith optimized high-contrast borders for flawless mobile scanning. - Print Color Preservation: Added CSS rules (
print-color-adjust) to ensure visual gradient backgrounds, status badges, and table themes retain their color fidelity when saving/printing to PDF.
🔒 Security & Privacy Options
- Machine-Bound Encryption: Highly sensitive payment details and banking tokens are now encrypted locally using hardware-signature-derived keys (XOR-Base64) combined with SHA-256 seeding.
- Privacy-First Invoicing Toggle: Instantly hide or show your bank transfer details on generated HTML invoices with a single checkbox toggle in settings.
How to Upgrade
- If you're running the prebuilt executable, download the latest version from the GitHub Releases Page.
- If running from source, pull the latest changes from the main branch and restart the application:
git checkout main git pull python app.py