Commit Graph

1009 Commits

Author SHA1 Message Date
Burak Kaan Köse 7f0b671b62 Settings shell. 2026-03-12 19:04:47 +01:00
Burak Kaan Köse de5309ea56 Finalized new shell experience. 2026-03-12 14:55:07 +01:00
Burak Kaan Köse fd13f2eba5 Calendar crashes fix. 2026-03-12 12:10:23 +01:00
Burak Kaan Köse 861b991eee Shell improvements. 2026-03-12 11:28:41 +01:00
Burak Kaan Köse 9dd68fd62e Improved shell experience. 2026-03-11 19:26:37 +01:00
Burak Kaan Köse 2b523d64e8 New shell experience. 2026-03-11 01:39:32 +01:00
Burak Kaan Köse bf331dfeb3 Better shell 2026-03-10 16:50:16 +01:00
Burak Kaan Köse 9b567c4bac Go back to welcome page when the last account is removed. 2026-03-09 14:18:13 +01:00
Burak Kaan Köse 859a5bb117 Revise README with new logo and updated text
Updated logo and description in README.md, removed unused images.
2026-03-09 13:19:12 +01:00
Burak Kaan Köse 0d898d3de0 Remove website visual assets section from README (#830) 2026-03-09 13:15:42 +01:00
Burak Kaan Köse 44be3eb4f7 Some UI changes on settings. 2026-03-09 00:28:10 +01:00
Burak Kaan Köse 3e731967cd Remove edit account details page. 2026-03-08 21:21:34 +01:00
Burak Kaan Köse 8548257878 Fix udate update notes. 2026-03-08 18:40:43 +01:00
Burak Kaan Köse d9da326f0a Rename database. 2026-03-08 16:28:41 +01:00
Burak Kaan Köse d43e2b269a Fix tailored notification images issue. 2026-03-08 16:26:06 +01:00
Burak Kaan Köse 9d94badb95 Fix storage page navigation issue. 2026-03-08 16:25:53 +01:00
Burak Kaan Köse e4a224bd68 Emaıl templates. 2026-03-08 15:48:11 +01:00
Burak Kaan Köse 15400d4096 Improved keyboad shortcuts. 2026-03-08 13:21:42 +01:00
Burak Kaan Köse c1568d33e6 Live store update notifications. 2026-03-08 11:22:41 +01:00
Burak Kaan Köse a8f9b2d126 Calendar improvements. 2026-03-08 01:33:47 +01:00
Burak Kaan Köse 1da34080d1 Refactoring the html editor toolbar. 2026-03-07 23:33:25 +01:00
Burak Kaan Köse ebc35c3de8 Event creation. 2026-03-07 17:13:48 +01:00
Burak Kaan Köse d1f8163d72 Web editor refactoring and some calendar occurrence summary stuff. 2026-03-07 15:37:02 +01:00
Burak Kaan Köse 09f1cee3a5 Remove sqlite base64 contact store from AccountContact. 2026-03-07 11:43:56 +01:00
Burak Kaan Köse 8e8b123aa6 Updating some nugets. 2026-03-07 01:52:23 +01:00
Burak Kaan Köse 9ec7b32762 Merge branch 'feature/EventCompose' into feature/vNext 2026-03-07 01:46:21 +01:00
Burak Kaan Köse e94cce451f Event compose implementation. 2026-03-07 01:46:07 +01:00
Burak Kaan Köse 6608baed69 Initial event composing. 2026-03-06 17:46:38 +01:00
Burak Kaan Köse 59042729c1 "Outlook error" handling for 429 status code. 2026-03-06 13:43:16 +01:00
Burak Kaan Köse e1be644631 Contact and settings updates. 2026-03-06 12:31:37 +01:00
Burak Kaan Köse 51f64466c2 Updating core title bar for menu item changes. 2026-03-06 11:22:19 +01:00
Burak Kaan Köse 24f7c26d60 Visual refresh of dialogs. 2026-03-06 11:22:12 +01:00
Burak Kaan Köse 1aaf4e8a7e Settings UI 2026-03-06 04:04:14 +01:00
Burak Kaan Köse 3d6763770e merged 2026-03-06 03:43:06 +01:00
Burak Kaan Köse aaa6e8a2c9 Removed migrations. New onboarding screen and wizard like steps. 2026-03-06 03:42:08 +01:00
Burak Kaan Köse db5ecd60e4 New startup window. 2026-03-05 10:12:03 +01:00
Burak Kaan Köse 5b3739c6cf Add snooze support for calendar reminders (toast UI, service, DB) (#825)
* Filter reminder snooze options by default reminder

* Some updates.

* Fixing empty welcome page issue and attendee loading.

* Icon system for notifications and snooze options etc.
2026-03-04 00:12:52 +01:00
Burak Kaan Köse d45d3faa89 Whats new implementation. 2026-03-02 00:44:29 +01:00
Burak Kaan Köse e816e87f61 Contacts management. 2026-03-01 21:07:10 +01:00
Burak Kaan Köse bdd32786d6 folder structure fixes 2026-03-01 16:23:28 +01:00
Burak Kaan Köse f35a4333f9 Fix initials showing in the background when the profile picture has transparent background. 2026-03-01 13:48:40 +01:00
Burak Kaan Köse 2c9351f551 Fixing some IsBusy corner cases. 2026-03-01 12:40:12 +01:00
Burak Kaan Köse 211faff750 Property change based updates on the mails for fast bulk operations. 2026-03-01 12:07:15 +01:00
Burak Kaan Köse 11158fe737 Remove redundant notification target. 2026-03-01 09:50:05 +01:00
Burak Kaan Köse 76e3b7289e Some issues with changing the app mode and notifications have been fixed. 2026-03-01 09:47:05 +01:00
Burak Kaan Köse 2040d4abce Optimize mail fetching with batch DB queries and in-memory caching (#827)
* perf: batch-load folders, accounts, and contacts in FetchMailsAsync

Replace the sequential per-mail property-loading loop with a three-step
batch pre-load strategy, eliminating the N+1 DB call pattern that was
the main bottleneck when building the mail list with threading enabled.

Changes:
- Pre-seed the folder cache from MailListInitializationOptions.Folders
  so that the most common folders (inbox, sent, etc.) never trigger a DB
  lookup at all.
- Load all accounts in a single GetAccountsAsync() call instead of one
  GetAccountAsync() call per mail (typically 1–5 accounts total).
- Fetch all sender contacts in a single SQL IN(...) query via the new
  GetContactsByAddressesAsync() method instead of one query per address.
- Property assignment is now fully synchronous (no awaits in the loop)
  since all data is pre-loaded into plain Dictionary<K,V>.
- Thread-expansion follows the same pattern: new folder IDs are loaded
  in parallel via Task.WhenAll; new contact addresses are batch-fetched
  with a second IN(...) query.
- Also apply batch pre-loading to GetMailItemsAsync (used by merge-inbox
  sync path) which had the same sequential issue.
- Remove the now-unused LoadAssignedPropertiesWithCacheAsync helper and
  the ConcurrentDictionary dependency it required.
- Tighten GetMailsByThreadIdsAsync to skip the Id NOT IN clause entirely
  when the exclusion set is empty.

https://claude.ai/code/session_018bqahGc6zi95JJhc2aARKS

* test: add MailFetchingTests with correctness and performance coverage

Adds integration tests for MailService.FetchMailsAsync that exercise the
full real-service stack (MailService → FolderService / AccountService /
ContactService) backed by the shared in-memory SQLite helper.

Four tests are included:

• ExpandsSiblingsOutsidePage – proves thread expansion fetches mails that
  fall beyond the initial SQL page (6 mails, page=4, expects 6 returned).

• NeverExpandsSiblings – proves threading is truly opt-in; with
  CreateThreads=false the result exactly matches the raw page size.

• ResolvesFromAllThreeSources – verifies contact resolution for a known
  contact (from the AccountContact table), an unknown sender (ad-hoc
  fallback), and a self-sent mail (built from account metadata).

• 1000Mails_70Threads_CompletesWithinBudget – the performance scenario:
  1 000 mails (70 threads × 7 + 510 standalone), 40 rotating sender
  addresses (20 with DB contacts). Times and reports two scenarios:
    - Default first-page fetch (100 mails) + expansion of one partial
      thread (expects > 100 mails returned).
    - Full load of all 1 000 mails with threading enabled (expects
      exactly 1 000 mails returned, all 70 threads intact, < 5 s).

  Elapsed times for both scenarios are written to xUnit test output so
  they appear in CI logs and can be tracked across builds.

https://claude.ai/code/session_018bqahGc6zi95JJhc2aARKS

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-03-01 09:14:02 +01:00
Burak Kaan Köse 0e742c7a8f Resolving warnings and treating warnings as errors in WinUI project. (#824) 2026-02-27 20:12:43 +01:00
Burak Kaan Köse d2fce5eee1 Add PR GitHub Actions workflow to build WinUI and run Core tests on Windows (#823) 2026-02-27 14:16:31 +01:00
Burak Kaan Köse 5c510fd7b0 Remove single entry and mode launch on ctrl press. 2026-02-27 11:00:25 +01:00
Burak Kaan Köse e1ce85698c Fix couple issues with starting mode. 2026-02-27 10:22:52 +01:00