Repository navigation
Releases: belal-waheed/o2om
Release list
O2om v4.2.0 — Major Architecture & Stability Release
Summary
O2om v4.2.0 is a major stability, performance, and craftsmanship release. It addresses 21 architectural and UX issues identified during comprehensive auditing across backend concurrency, state persistence, hardware idle detection, audio latency, and frontend lifecycle management.
Critical Fixes
- Break Session Pause State Preservation (C1): Resolved an issue where pausing during an active break or guided exercise transitioned the engine to a generic paused work state and prematurely aborted the routine upon resume. Introduced explicit
pre_pause_statustracking inTimerEngineto guarantee seamless resume into the correct break cycle. - Asynchronous SQLite Connection Architecture (C2): Migrated local storage from blocking
rusqlite::Connectionbehind a standardMutexto asynchronous non-blocking queries powered bytokio-rusqlite. Decoupled persistence operations from the high-precision 100ms timer loop and IPC commands, eliminating thread starvation and lock contention. - Synchronous Initialization Guard (C3): Added an immediate synchronous
isInitializedflag inuseTimerStore.initStore()preceding IPC registration. Prevents React 19 Strict Mode concurrent double-mount cycles from creating duplicate event listeners and memory leaks.
High-Severity Fixes
- Midnight Date Rollover Data Loss Prevention (H1): Eliminated a race condition in
record_stand_if_neededwhere querying the current date separately fromcheck_and_reset_daily_statscould cause stands completed immediately after midnight to be lost or misattributed. The verified date string is now retrieved once and passed atomically through streak and stand calculations. - Frontend Event Listener Lifecycle Management (H2): Implemented structured unlistener tracking via an internal
unlistenersregistry inuseTimerStorealongside an explicitcleanup()lifecycle hook for clean teardown during component unmounts and hot reloading. - Dynamic Cross-Platform AppData Resolution (H3): Replaced hardcoded Windows
%APPDATA%string concatenation with Tauri's nativeapp.path().app_data_dir(), ensuring robust directory initialization and cross-platform path resolution.
Medium-Severity Enhancements
-
Extended Inactivity Auto-Reset (M1): Added an intelligent auto-reset mechanism during active work intervals. When physical hardware idle time reaches or exceeds double the configured idle threshold (
$\ge 2\times$ ), the abandoned session is automatically reset back to the start of the current work interval. - Position-Based Dock Edge Detection (M2): Replaced asynchronous window move event listener tracking with direct coordinate evaluation against active monitor work areas, eliminating stale position race conditions and dock flickering for the floating mini-pill widget.
-
Non-Blocking Numeric Settings UX (M3): Refactored numeric inputs in
SettingsViewto support temporary empty-string states while typing, preventing premature zero-clamping and input jitter when users backspace or edit durations. -
User-Visible IPC Error Notifications (M4): Integrated
react-hot-toastnotifications intoMainWindowanduseTimerStore, providing non-intrusive visual feedback whenever backend IPC commands encounter errors. - Persistent Audio Worker Thread (M5): Replaced on-demand audio device acquisition with a dedicated, persistent audio worker thread and bounded crossbeam/mpsc channel. Eliminates audio device re-initialization latency and allocation overhead on chime playback.
Low-Severity Polish & Cleanups
- Dead Code Elimination (L1-L3):
- Removed legacy 2-stage reminder escalation state tracking from
TimerEngine. - Removed obsolete
session_logstable schema, indices, and dead SQL query methods fromDbRepository. - Pruned unused
reminder_escalationfields from settings structs and TypeScript IPC interfaces.
- Removed legacy 2-stage reminder escalation state tracking from
- Tailwind CSS Mini-Pill Optimization (L5): Replaced JavaScript
onMouseEnter/onMouseLeavestate management inMiniPillViewwith pure Tailwind CSSgroup-hover:styling, avoiding unnecessary React component re-renders during mouse hover. - Safe Multi-Window URL Parameter Validation (L6): Added strict validation for
?window=URL query parameters inApp.tsx, safely falling back toMainWindowwhen invalid parameters are supplied. - Native RTL Layout Mirroring for Break Overlay (L7): Swapped physical
right-2positioning with logical CSSend-2for close and skip controls inGuidedBreakView, ensuring perfect layout alignment in Arabic (RTL) mode. - Statistical Metric Text Selection (L8): Added
select-textCSS utility classes to analytics numbers and streak displays inStatsView, allowing users to highlight and copy metrics while maintainingselect-noneon interactive buttons. - Window Startup Consolidation (L9-L10): Removed duplicate
show_maininvocations during application boot and unified conditional branches for mini-pill window initialization inWindowManager.
v4.1.1 - Encapsulated Autostart Service & Observability
What's New in v4.1.1
- Encapsulated Autostart Service: Migrated autostart logic to
services::autostart::AutostartServiceadhering to Layered Clean Architecture. - Observability: Added explicit warning logs for registry reconciliation errors.
- Deduplication: Hoisted disable call during reconciliation to avoid code duplication.
- Clean Dependencies: Purged unused
@tauri-apps/plugin-autostartnpm client dependency.
v4.1.0 - Self-Healing Autostart & Enhanced Windows Integration
What's New in v4.1.0
- Self-Healing Autostart Architecture: Migrated OS startup reconciliation into the native Rust host (lib.rs and save_settings IPC). Windows autostart path now self-heals on every application boot to match the running binary.
- CurrentUser NSIS Install Mode: Enforces consistent deployment to %LOCALAPPDATA%\O2om, eliminating UAC elevation and path fragmentation across updates.
- Registry Hardening: Ensures quoted executable paths in HKCU:\Software\Microsoft\Windows\CurrentVersion\Run.
- Clean Architecture: Decoupled the React settings UI from direct OS plugin calls.
O2om v4.0.3 — Single-Instance, Quiet Post-Session Engine & Ergonomics Companion
What's Changed in O2om v4.0.3
1. Single-Instance Enforcement
- Integrated official \ auri-plugin-single-instance\ via Windows named pipes.
- Launching O2om while it is already running brings the primary dashboard to the foreground, unminimizes it, and sets focus instead of spawning duplicate processes.
2. Quiet Post-Session State Machine
- Eliminated recurring 5-minute escalation alert dings and auto-resets when focus sessions finish.
- The timer remains quietly paused at \�0:00\ in \WaitingBreak\ mode until the user chooses to start a break or resume work.
3. In-Place Update Auto-Kill Hook
- Added NSIS \NSIS_HOOK_PREINSTALL\ hook to automatically close running tray instances before file replacement.
- Eliminates Windows "file in use" error dialogs during setup updates.
4. In-App Data Reset & State Synchronization
- Added a dedicated "Reset All Data / البدء من جديد" danger section in Settings with an explicit bilingual confirmation prompt.
- Clears database tables, refreshes cached health statistics, and broadcasts updates to all active windows synchronously.
5. Multi-Window Hydration & UI Polish
- Optimized auxiliary floating windows (\pill\ and \�reak_overlay) to skip heavy database queries upon mount.
- Upgraded documentation with GitHub SEO & GEO specifications, Mermaid architecture diagrams, and high-density specification tables.
6. Local SQLite Persistence
- All statistics, streaks, and user preferences reside locally in %APPDATA%\com.o2om.desktop\o2om.db\ with Write-Ahead Logging (WAL) and memory-serialized transactions.
O2om v4.0.0 - Tauri v2 Desktop Overhaul
What's Changed in v4.0.0
This release marks the complete modern rewrite and architectural overhaul of O2om from AutoHotkey to Tauri v2 + Rust + React 19.
Highlights & Key Improvements
- Auto-Pill Mode & Edge Docking: Instant micro-pill widget with automatic left-edge monitor docking and smooth translucent tucked indicator.
- Alt+Tab & Taskbar Exclusion: Floating mini-pill is registered with Win32 WS_EX_TOOLWINDOW and properly excluded from Alt+Tab and taskbar switchers.
- State & Session Persistence: Full SQLite local persistence (%APPDATA%\com.o2om.desktop\o2om.db). Automatically tracks active sessions and reconciles elapsed real-world time across application restarts.
- Boot Idle Baseline Fix: Completely resolves boot-time countdown freezing by anchoring hardware idle monitoring to application launch baselines with a 30s grace period.
- Fail-Safe System Tray: Embedded fallback icon and seamless close-to-tray window management.
- Zero-Dependency Audio: High-fidelity synthesized audio chimes dynamically generated in Rust.
Downloads
- Windows Setup (NSIS Installer): O2om_4.0.0_x64-setup.exe
- Windows MSI Package: O2om_4.0.0_x64_en-US.msi
O2om (قُوم) v3.1.0 — Architectural Redesign & Modern UX Overhaul
O2om (قُوم) v3.1.0 — Architectural Redesign & Modern UX Overhaul
O2om v3.1.0 is a complete redesign and re-architecture from the ground up, bringing a serene, high-craft Obsidian Dark design, an auto-hiding edge-docked mini-pill, a panoramic 5-in-1 exercise guide, multi-mode ergonomics, and 1-click smart presets.
✨ What's New in v3.1.0
-
Obsidian Dark & Zero-Flicker Aesthetic:
- Native Windows 10/11 DWM dark titlebar integration (DWMWA_USE_IMMERSIVE_DARK_MODE).
- Replaced clunky Win32 buttons with bespoke Obsidian Dark cards (#1F2333).
- Single prominent Hero Action Button (10B981 / 6366F1) with discrete secondary chips.
- Zero redraw flickering via WS_CLIPCHILDREN (+0x02000000).
-
Auto-Hiding Edge-Docked Mini-Pill:
- Modern rounded pill widget (SetWindowRgn).
- Automatically docks to the left or right screen border when placed near edges, collapsing into an 8px colored accent tab.
- Smoothly expands to the full 150px pill on cursor hover and retracts when the mouse leaves.
- Double-click restores the full Dashboard window immediately.
-
Panoramic 5-in-1 Desk Exercise Coach:
- High-resolution 16:9 illustration displaying all 5 posture and mobility exercises.
- Synchronized 5-segment roadmap tracking directly beneath each panel (Neck Tuck → Chest Opener → Torso Twist → Hip Lunge → 20-20-20 Eye Rest).
- High-contrast per-step countdown timer and audio transition chimes.
-
Multi-Mode Ergonomic Engine:
- Stand-Up & Posture Mode (Recommended): 40m focus / 5m active stretches / 15m long break.
- 20-20-20 Eye Strain Guard: 20m focus / 20s distant gaze rest.
- Deep Work / Pomodoro Mode: 25m focus / 5m short break.
- Custom Mode: User-defined intervals.
-
Daily Health Analytics & Streaks:
- Track completed stands against customizable daily goals (default: 8 stands/day).
- Log focused work hours and maintain multi-day streaks across midnight rollovers in o2om_stats.ini.
-
1-Click Smart Presets:
- Replaced 10 numeric text boxes with 3 instant preset cards (Ergonomic Posture, Pomodoro, Eye Guard).
- Simplified toggles for Sound Chimes, Autostart, and Language (العربية / English).
🚀 Download & Installation
- Download O2om.exe below.
- Zero installation required. Portable, standalone executable consuming < 15MB of RAM.
O2om (قُوم) v2.5.3
O2om (قُوم) — Mouse Cursor Fix, Smart Escalation & Standalone Portability
What's New in v2.5.3
1. Instant Mouse Pointer Reset & GDI Coordinate Separation
- Fixed Cursor Loading Spinner: Resolved an issue where Windows retained the
IDC_APPSTARTING(busy/loading wheel) cursor on application launch. - Added explicit Win32
SetCursor(IDC_ARROW) on window display to immediately release the loading state. - Separated child control Y coordinates to eliminate GDI hit-test collisions and mouse flicker between the progress bar and status text.
2. Standalone Binary Portability & Self-Extracting Assets
- Embedded
assets/exercises_bg.pngandassets/o2om.icodirectly into the compiled executable viaFileInstall. - Zero Configuration: When distributed to clean machines without the source repository, assets automatically extract to
%APPDATA%\O2om\assets\seamlessly.
3. Smart Two-Warning Escalation & Auto Work Reset
- Initial Break Alert (
00:00): Dispatches the initial break prompt and presents fullscreen/tray break choices. - Warning 1 (
+escalationMin): Dispatches an extra reminder if unacknowledged. - Warning 2 & Auto-Reset (
+2 * escalationMin):- If the user is actively using the computer (
A_TimeIdlePhysical < idleThresholdMin), dispatches the final toast, resets the timer (ResetToWork()), and automatically starts a fresh work countdown. - If the user stepped away from the desk (
A_TimeIdlePhysical >= idleThresholdMin), transitions cleanly to idle state without premature resets.
- If the user is actively using the computer (
4. Physical Inactivity Isolation
- Restricted hardware idle polling strictly to active work countdowns. Break countdowns continue uninterrupted while users step away to stretch.
5. Defensive Input & Window Lifecycle Guards
- Implemented
SafeInt()bounds checking on Settings inputs to preventValueErrorcrashes. - Guarded all
breakGuireferences against destroyed/null handles. - Bound
OnError(GlobalErrorHandler)to catch and log unexpected exceptions to%APPDATA%\O2om\error_log.txt.
6. Automated Testing Suite
- Passed 32 automated assertions validating state transitions, countdown math, cycle switching, snooze, idle isolation, two-warning escalation, and localization.
Download & Installation
- Download O2om.exe (v2.5.3)
- Portable Standalone Executable: No installer or dependencies required. Runs on Windows 10 & Windows 11 (64-bit).
O2om ya my Nilla
O2om v2.0.0
O2om (قُوم) is a lightweight, modern desktop health utility for Windows built with AutoHotkey v2 to help software engineers, remote workers, and gamers prevent sedentary fatigue and posture strain.
What's New
Pause & Resume Controls
- Added dedicated Pause / Resume button directly on the main dashboard to freeze work countdowns when stepping away from your desk.
- Expanded countdown display height (h75) ensuring tall numbers like 39:30 render with zero text clipping.
Fullscreen 16:9 Desk Exercise Guidance
- Upgraded break screen to a clean 16:9 posture stretch graphic (assets/exercises_bg.png).
- Implemented dynamic aspect-ratio scaling working seamlessly across 768p laptops up to 4K displays.
- Automatically closes/destroys the fullscreen window on break finish (00:00), popping up the main dashboard with a manual Start Work prompt.
Native Dual Localization (Arabic & English)
- Arabic (ar) by default with native Windows Right-To-Left layout mirroring (WS_EX_LAYOUTRTL +E0x400000).
- Seamless language switching between Arabic and English from Settings.
Zero-Flicker & Window Persistence
- Applied +WS_CLIPCHILDREN (+0x02000000) and WinRedraw layout guards to eliminate screen redraw flicker and background ghosting artifacts.
- Persistent window stays open on screen until manually minimized or closed to tray.
Download
Download the pre-compiled standalone binary below (no installation or AutoHotkey runtime required):
- O2om.exe
Its Never Too Late For COFFEE