Skip to content

Release/v1.3.3 - #354

Merged
suraj-yadav0 merged 126 commits into
mainfrom
release/v1.3.3
Sep 16, 2026
Merged

suraj-yadav0 merged 126 commits into
mainfrom
release/v1.3.3

Conversation

@suraj-yadav0

Copy link
Copy Markdown
Collaborator

v1.3.3 - Major Stability, Offline Support & Performance Improvements

Summary

Version 1.3.3 is a major stability and usability release focused on bringing Local Accounts closer to full feature parity, improving task and project navigation, strengthening account-level data isolation, and optimizing application startup and runtime performance.

Key Highlights

  • Full offline timesheet lifecycle for Local Accounts
  • Hierarchical task and subtask navigation
  • Account-scoped task and subtask data isolation
  • Default stages for Local Accounts
  • Improved Local Account switching and session handling
  • Startup and task-list performance optimizations
  • Improved account deletion and attachment cleanup
  • Collapsible navigation sidebar
  • Improved dashboard analytics for Local Accounts
  • Japanese localization and refreshed translations
  • Multiple UI, QML, navigation, and stability fixes

Local Account Improvements

Complete Offline Timesheet Lifecycle

Local Accounts now support the complete timesheet lifecycle without requiring a remote Odoo connection.

Users can:

  • Start timers
  • Pause timers
  • Save timesheets
  • Move timesheets to draft
  • Auto-finalize timesheets

This also resolves previous sync-related errors caused by attempting to process Local Account timesheets through remote-only workflows.

Default Stages

Configured and mapped default:

  • Project Stages
  • Global Task Stages

This ensures newly created projects and tasks in Local Account mode immediately receive the expected stages.

Activity and Assignee Resolution

Fixed activity type loading and assignee filtering by explicitly scoping queries to the active account.

This enables activity creation to work correctly in Local Account mode.

Local Account Toggle

Added a synchronized Local Account toggle to the menu and drawer headers.

Additional guards prevent users from switching account modes when no valid remote session is available.

Local Hierarchy and Dashboard

Fixed:

  • Project hierarchy mapping
  • Breadcrumb navigation
  • Task count calculations
  • Nested subproject handling
  • Dashboard chart calculations
  • Dashboard data aggregation

These changes ensure Local Account data is represented consistently throughout the application.

Server-Only Actions

Removed server-only swipe actions when viewing Local Account data to prevent unsupported operations from being exposed.

Task & Project Management

Hierarchical Tasks & Subtasks

Implemented full task hierarchy navigation in the Task List.

This includes:

  • Expandable child tasks
  • Subtask count badges
  • Breadcrumb drilldowns
  • Parent/child task navigation

Account-Scoped Queries

Updated task and subtask queries to use the active account ID.

This applies to:

  • Subtask retrieval
  • Parent task lookups
  • Child task counts
  • Related task queries

This prevents task data from one account from appearing in another account's context.

Timesheet Aggregation

Fixed analytical timesheet calculations to correctly aggregate logged hours across parent tasks and their subtasks.

Activity View Separation

Fixed an issue where task activities could incorrectly appear inside project activity views.

Project Details

Fixed project name rendering and lookup issues in project detail views.

Navigation

Improved back navigation handling across:

  • Task detail pages
  • Project update pages
  • Hierarchical task navigation

Data Isolation & Stability

Account Deletion Cleanup

Improved account deletion handling to clean up:

  • Orphaned attachment files
  • Local database records
  • Sync state

This prevents stale local data from remaining after an account instance is removed.

Attachment Handling

Fixed:

  • Duplicate attachment uploads
  • Attachment data loss when reopening attachment selection dialogs

Input Validation

Hardened:

  • Account name validation
  • Connection input sanitization
  • Odoo server URL validation

Invalid or malformed server endpoints are now rejected earlier.

Session Switching

Added additional validation around Local/remote account switching to prevent invalid session states.

Performance Improvements

Startup Optimization

Implemented deferred database maintenance and lazy query loading.

This reduces startup-time database work and eliminates startup freezes caused by expensive initialization queries.

Task List Optimization

Optimized task loading through:

  • Direct SQL queries
  • Batched hours calculations
  • Improved filter indexing

Database Query Hygiene

Filtered empty and inactive user/activity records during loading to reduce unnecessary runtime memory usage.

UI & UX Improvements

Collapsible Navigation Sidebar

Added a collapsible navigation sidebar for desktop and tablet layouts.

The compact 8 GU mode provides direct access to:

  • Account switching
  • Local Account toggle
  • Theme controls

Project Details

Redesigned project detail cards with:

  • Cleaner typography
  • Improved spacing
  • Left-aligned priority indicators
  • More consistent visual hierarchy

Unified Search

Introduced the reusable TSSearchBar component with clear-button support across project and task views.

Theme Improvements

Fixed toggle state persistence when switching between light and dark themes.

Improved date field contrast across both themes.

Header Layout

Resolved responsive layout issues in MenuPage and AppDrawer.

Action buttons and theme controls now remain correctly anchored across different sidebar widths and resize states.

Notification Snackbars

Decoupled sync progress and voice model download notifications.

Each operation now has an independent snackbar with dynamic vertical stacking and clear status indicators.

Voice Model Setup

Fixed voice-to-text model installation and download status handling.

Activity Scheduling

Added a Tomorrow quick filter to DaySelector for activities while retaining Yesterday for timesheets.

QML & Code Quality

Resolved QML anchor and namespace conflicts across:

  • TaskList
  • TimeRecorderWidget
  • Timesheet
  • DateRangeSelector

These fixes also eliminate related runtime warnings and improve layout reliability.

Localization

Added complete Japanese (ja) translation.

Updated translations for:

  • German (de)
  • Dutch (nl)
  • Marathi (mr)
  • Sanskrit (sa)

Related Issues

Validation

The release includes improvements across:

  • Local Account workflows
  • Remote account workflows
  • Task and subtask navigation
  • Timesheet lifecycle
  • Account isolation
  • Attachments
  • Dashboard analytics
  • Navigation
  • Responsive layouts
  • Light/dark themes
  • Localization
  • Application startup performance

Release

Target Version: 1.3.3

Previous Version: 1.3.2

parvathyabnair and others added 30 commits August 18, 2026 17:22
fix(timesheet): revert other active timesheets to draft status when marking one as active
chore: update version to 1.3.2 across manifest, constants, release no…
fix: support activity types for local account
fix: improve date field color contrast
suraj-yadav0 and others added 18 commits September 11, 2026 12:48
…338)

* Warn user and prevent switching when no remote account is logged in

* Fix multiple overlapping pop-ups on repeated account toggle (#334)

- Make NotificationPopup modal and guard open() with activeDialog reference
- Guard AccountSelectorDialog open() against duplicate active dialogs
- Reset activeDialog on dialog destruction and close
* Fix TextField namespace conflict in DateRangeSelector

* Scope task child queries and subtasks retrieval by account ID

* Implement task hierarchy navigation and subtask drilldown in TaskList

* Fix subtask styling and prevent filter refresh corruption in TaskList

* Clean up orphan project updates and sync account changes on instance removal

* Replace Controls.TextField with styled Rectangle and Label in DateRangeSelector

* Fix QML layout anchor conflicts in TaskList, TimeRecorderWidget, and Timesheet

* Optimize startup performance with deferred DB maintenance and lazy query loading

* Fix device build launch, daemon path handling, and QML view initialization

* Fix subtask drilldown navigation, child count calculation, and revert clickable launch

* Scope subtask timesheet calculation and parent resolution by account ID
@suraj-yadav0 suraj-yadav0 linked an issue Sep 16, 2026 that may be closed by this pull request
@suraj-yadav0 suraj-yadav0 self-assigned this Sep 16, 2026
@suraj-yadav0 suraj-yadav0 linked an issue Sep 16, 2026 that may be closed by this pull request
@suraj-yadav0 suraj-yadav0 added bug Something isn't working documentation Improvements or additions to documentation enhancement New feature or request Refactor Refactoring Existing Code , no change of Functionality Localization Label Used for Adding Translations for the Application. labels Sep 16, 2026
@suraj-yadav0
suraj-yadav0 merged commit 2e3349e into main Sep 16, 2026
2 checks passed
@suraj-yadav0
suraj-yadav0 deleted the release/v1.3.3 branch September 16, 2026 05:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working documentation Improvements or additions to documentation enhancement New feature or request Localization Label Used for Adding Translations for the Application. Refactor Refactoring Existing Code , no change of Functionality

Projects

None yet

7 participants