Releases: MAKS-IT-COM/maksit-postclient
Release list
Release 0.4.1
[0.4.1] - 2026-09-27
Create bundle asks for the passphrase once, then opens Save. About lists the company contacts. A Windows upgrade keeps the desktop shortcut that is already there.
Changed
- Help → About lists Info, Privacy, Security, and Support (
info@,privacy@,security@,support@maks-it.com) instead of one personal address. - The English, Italian, French, German, and Spanish READMEs describe folder stores, Easy Migration, background sync, spam marks, and the current menus.
Fixed
- File → Easy Migration → Create bundle… asks for the passphrase and the repeat in one window. The save dialog opens after that window closes.
- Windows setup keeps an existing desktop shortcut when the checkbox is off on upgrade. Installing the shortcut removes a second desktop icon, including the "(2)" copy.
Release 0.4.0
[0.4.0] - 2026-09-27
Background sync runs at boot with nobody signed in. Easy Migration packs this PC into a passphrase-locked bundle. Marked spam is remembered across mailboxes, and Gmail folder reads stay on the open mailbox.
Added
- File → Easy Migration writes a
.postbundlelocked with a passphrase (mail, accounts, secrets, and the shared model folder). Open bundle… restores it into this PC’s Postclient folders and rewrites store paths. The background sync service is not reinstalled. - The message search box has an × that clears the text.
- Settings → Background sync installs a boot-time service (Windows service as Local Service, Linux systemd system unit). It syncs every saved mailbox with nobody signed in. Passwords are copied into the machine store so the service can sign in to the mail servers. Share this account only lets other people on this PC open that mailbox.
- Mark as spam remembers that message on this PC and teaches every mailbox, even after the message or mailbox is gone. Similar mail is only a hint. Not spam drops that memory and returns the message to Inbox. Moving mail into Junk does not teach the filter. Settings → Indices… → Spam marks… lists what was learned.
- The meaning-search model lives in the same machine folder (
modelsunder ProgramData or/var/lib/maksit/postclient), so every account and the sync service share one download. An existing copy in the user profile is copied across on startup. - Layout upgrades live in
Upgrades(folders, models, archive files, PST stores). Each one recordsInstallsOver, the last release that still has the old layout, so it can be removed once that version is no longer supported. SQL schema stays with the archive store.
Fixed
- Gmail no longer fails with
UNSELECT not allowed now. Reading a mailbox that is already open stays on that selection, and folder changes switch by opening another mailbox instead of sendingUNSELECT. - Gmail OAuth no longer fails with
UID FETCH not allowed now. Gmail can leave the selected state while the client still treats the folder as open, so each read selects the mailbox again and retries the fetch once if Gmail has dropped it. - Sorting, keyword indexing, and meaning search take turns in small slices. A folder fetch still pauses them so they do not share the mailbox connection.
Release 0.3.8
[0.3.8] - 2026-09-21
HTML mail opens without a WebView2 crash dialog. The message list shows each item's size.
Added
- Message list Size column (sortable) so heavy mail is easy to find and delete. IMAP uses RFC822.SIZE, POP3 uses LIST sizes, and downloaded
.emlfiles fill in the rest.
Changed
- Client, Shared, UI, and Tests types live in feature folders with matching namespaces (
Mail,Auth,Archive, and the rest).
Fixed
- Opening HTML mail no longer crashes WebView2 with
NavigateToString(large inlined images, or the engine still starting). The reading pane loads from a local file, and WebView failures fall back to text without a crash window. - Message list paperclip shows for mail whose attachments are not
Content-Disposition: attachment(Outlook inline files, named parts, nested.eml). IMAP now reads BODYSTRUCTURE, opening or indexing a message keeps the flag, and a later folder refresh no longer clears it. - Body indexing no longer stalls on a few messages that fail or take too long: those are skipped (or dropped if they are gone from the server) so the rest of the archive can finish. Hung IMAP/POP3 downloads are aborted after 25 seconds and the socket is dropped so the next message can start. Messages larger than 8 MB wait until you open them. When every body is done, the indexing line hides like the meaning index.
- Search results keep Reply / Move / Delete on the context menu: right-click selects the mail under the pointer, and a folder refresh no longer treats hits from other folders as an empty selection. After delete, the next selection is tracked instead of a leftover or already-removed row.
Release 0.3.7
[0.3.7] - 2026-09-20
Selected mail keeps its preview while the folder list refreshes.
Fixed
- Selecting a message keeps that mail and its preview when the folder list refreshes; delete and move use the row's folder, and opening mail is not stuck behind a catalog scan.
Release 0.3.6
[0.3.6] - 2026-09-20
Folder unread and retention days sit in separate columns. Sign-in and Gmail trash retention survive a rebuild.
Changed
- Folder tree keeps unread count and retention days in two fixed columns on the right, instead of collapsing them next to the folder name.
Fixed
- Empty folder stays enabled on folders that have mail, including while Get Messages is still running.
- Installing a new build keeps Gmail and Outlook sign-in: leftover secrets and the Identity Hub profile are merged from the previous data folder, and a still-valid mailbox token is used if Hub refresh fails.
- Gmail [Gmail]/Trash retention days show on the nested folder and permanently delete mail by received date after Get Messages or Run now.
Release 0.3.5
[0.3.5] - 2026-09-20
Index status covers every mailbox, not one folder or one account.
Changed
- Status bar keyword and meaning index lines show one done / total across all mailboxes, not the folder or mailbox currently being scanned.
Release 0.3.3
[0.3.3] - 2026-09-20
First sync paints mail as it arrives, meaning search can use a discrete GPU, and trash, retention, and logs follow typical desktop mail apps.
Added
- Help → Logs opens a copyable window over the app log folder.
Changed
- First mailbox sync paints the message list as header batches arrive (newest first). Keyword and meaning indexes wait until the first full folder catalog finishes.
- Default user data is
%LocalAppData%\MaksIT\Postclient. Existing%AppData%\Postclient/%LocalAppData%\Postclienttrees are moved on first launch. - Status bar index lines show scanned / total and hide when idle. GPU init failures open the copyable error window and fall back to CPU in Auto.
- Meaning search DirectML prefers a discrete GPU (NVIDIA GTX 1660 Ti and similar) instead of always DXGI adapter 0, and uses sequential DirectML session options.
- Trash retention counts from the move-to-trash time. Folder tree shows retention days next to unread when days are greater than zero.
- Window titles drop menu mnemonics and trailing ellipses.
Fixed
- Select-all delete in Trash, folder context commands while a huge first sync is painting, and Empty on Trash labeled Delete all items.
- Retention list no longer keeps Gmail labels that were deleted on the server.
- FatturaPA toolbar kind button matches the View menu. Source view selection no longer wraps the full raw EML.
Release 0.3.2
[0.3.2] - 2026-09-19
Expired folder mail goes to Trash; Trash can be kept forever or purged after a number of days.
Changed
- Settings → Retention…: folder days (
0= keep forever) now move older messages to Trash after Get Messages, instead of deleting them permanently. The Trash row uses the same days field:0keeps Trash forever, a number of days permanently deletes old Trash. The grid shows the action per row. - Delete (toolbar, Del, empty folder, delete rules) moves messages to Trash. If Trash is missing, it is created. Deleting from Trash is still permanent. Local stores honor Trash when emptying a folder.
Fixed
- Local folder stores no longer skip Trash when emptying a folder (messages go to Deleted Items).
Release 0.3.1
[0.3.1] - 2026-09-19
Fixed
- Reinstalling 0.3.0 over 0.3.0 left the old exe in
C:\Program Files\MaksIT\Postclient(Windows setup skips same-version files). This build is 0.3.1 so the installer replaces it. Uninstall 0.3.0 first if a same-version repair still leaves the 16:08 exe. - The main window opens from the desktop shortcut. Closing it exits the app. The tray icon no longer hides the window on close. A worker process is not started until import or retention needs it.
Release 0.3.0
[0.3.0] - 2026-09-19
Folder stores replace attached Outlook data files, Gmail/Microsoft sign-in goes through Identity Hub, and folders can expire mail on a schedule.
Added
- Folder stores replace Outlook data files as mailboxes: File → New store…, Attach store…, Move store…, and Detach store. Import PST copies into a store under
%LocalAppData%\Postclient\stores\(or portabledata/stores/). Each IMAP/POP3 account and each store has its ownmail.db(FTS + meaning index). Search and move merge or copy across those databases without rebuilding embeddings. - Settings → Retention…: per-folder days (
0= keep forever). Older mail is deleted permanently (not Trash) after Get Messages. - IMAP/POP3 usage on the account node in the folder tree. Gmail and Microsoft sign-in go through Identity Hub (
https://identity.maks-it.com/desktop-login?provider=). Hub JWT is stored insecrets.bin; IMAP uses a short-lived mailbox token (XOAUTH2). Override the Hub origin withPOSTCLIENT_IDENTITY_HUB. - Folder tree expand/collapse for accounts and nested folders is stored in
settings.json. - Shift+click and Ctrl+click select several messages or folders. Delete (including the Del key) and drag-move apply to the whole selection.
- Unexpected errors open a dialog with the full stack trace and a Copy details button. The same report is written under the app log folder.
Changed
- Folder tree representation is per provider. Gmail keeps
[Gmail]labels (P.IVAis one folder), infers the[Gmail]mailbox, and hides All Mail / Starred / Important. PEC and classic IMAP liftINBOX.Drafts/ Sent / Trash next to Inbox and do not use Gmail label rules. - Status bar Index and Meaning lines are empty when idle (progress and errors only). Quota left the status bar. Help holds Check for updates and About; File keeps Exit.
- Attached
.pstaccounts migrate once to folder stores (same mailbox id). - Windows setup default install path is
C:\Program Files\MaksIT\Postclient(manufacturerMaksIT, product folderPostclient).
Fixed
- PEC/IMAP Drafts, Sent, Trash, and other standard folders named
INBOX.Drafts(and similar) show next to Inbox, not nested under it. User folders such asINBOX.Clientsstay under Inbox. - Gmail labels with a dot in the name (for example
P.IVA) stay a single folder. Hierarchy follows the IMAP delimiter (/on Gmail,.only underINBOX.on classic servers). - Hotmail / Outlook.com IMAP inboxes list messages again: FLAGS-only FETCH rows no longer replace envelopes, Outlook skips PEC extra-header FETCH, and Inbox opens via the special INBOX mailbox.
- Gmail and Hotmail/Outlook OAuth stay signed in after restart: Hub login waits for the refresh token (not a JWT-only snapshot), expiry is stored as UTC, connect refreshes the Hub session before requesting a mailbox token, and saving a Gmail/Outlook account no longer rewrites auth to password.
- Identity Hub Google/Microsoft sign-in now picks up the Hub session after the callback page finishes (the WebView no longer waits for you to close a tab). Save Account then stores the Hub tokens.
- Microsoft Identity Hub sign-in in the embedded WebView: Entra popups no longer replace the Hub page, script polling stays on
identity.maks-it.com, and login uses a separate WebView2 profile from HTML mail. Sign-in now checks that Hub can issue a mailbox token. - Identity Hub sign-in opens
identity.maks-it.comafter the WebView adapter is ready (the popup no longer stays onabout:blank). Google/Microsoft redirects stay in that view; Hub login uses its own WebView2 data folder so it does not clash with HTML mail. The sign-in dialog is owned by Account Settings when that window is open. - The main window shows on launch from the installed exe (and the desktop shortcut). A background worker is no longer started before the window is mapped, so the process is not left running with no UI.
- Connecting a large Outlook data file no longer freezes the UI: PST open/list/index work runs off the UI thread, catalog walks the store in short chunks, and folder switches show the local archive without waiting on indexing.
- Large Outlook data files keep readable subjects (MS-PST prefix bytes are stripped) and open by the store item id instead of a subject hash. ANSI
.pstfiles are copied once to a Unicode.postclient.pstbeside the original so encoding stays intact.