<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>ContinuMail updates</title><description>Substantive guide updates and releases from ContinuMail Converter.</description><link>https://www.continumail.com/</link><language>en</language><item><title>v0.3.3 — Thunderbird exports, folders and all</title><link>https://github.com/ContinuMail/continumail-converter/releases/tag/v0.3.3</link><guid isPermaLink="true">https://github.com/ContinuMail/continumail-converter/releases/tag/v0.3.3</guid><description>Reliability release for Thunderbird folder exports and difficult real-world data.

## Changed

- Thunderbird-starred messages now convert to a yellow **Star** category instead of Outlook follow-up flags, keeping duplicated IMAP labels out of the To-Do list.

## Fixed

- Folder exports now discover extensionless Thunderbird mbox files and nested `.sbd` hierarchies, preview the full folder tree, and preserve it in the PST.
- Malformed address books, pathologically large messages, duplicate or invalid folder names, contact-only configurations, and pathological recurrence data no longer abort otherwise valid conversions.
- Existing PST output is protected from accidental overwrite, and `maxSizeMB` is capped safely at 50 GB.
- Desktop scan and conversion processes now shut down cleanly with the app, and cancellation force-stops an unresponsive engine after a short grace period.

## Security

- Updated the bundled SQLite library to 2.1.12, outside the affected `&lt;= 2.1.11` advisory range, and synchronized the third-party attribution ledger.

Verified with the full Windows/Linux/macOS CI matrix, independent PST-reader validation, a clean public-clone build, and an install/scan/launch/uninstall test of the Windows installer.

ContinuMail Converter is free software provided **as is**. Keep backups of the source mail and validate the PST and conversion report before relying on the output. These early installer and CLI builds are not code-signed, so Windows SmartScreen or macOS Gatekeeper may show a warning.

**Full changelog:** https://github.com/ContinuMail/continumail-converter/blob/main/CHANGELOG.md</description><pubDate>Wed, 22 Jul 2026 18:11:51 GMT</pubDate><category>release</category></item><item><title>How to convert mbox to Outlook PST</title><link>https://www.continumail.com/how-to-convert-mbox-to-pst</link><guid isPermaLink="true">https://www.continumail.com/how-to-convert-mbox-to-pst</guid><description>A complete, local and free workflow for converting an mbox archive to Outlook PST.</description><pubDate>Wed, 22 Jul 2026 12:00:00 GMT</pubDate><category>guide</category><category>mbox</category></item><item><title>Convert Thunderbird to Outlook</title><link>https://www.continumail.com/how-to-convert-thunderbird-to-outlook</link><guid isPermaLink="true">https://www.continumail.com/how-to-convert-thunderbird-to-outlook</guid><description>Move a complete Thunderbird profile to Outlook while preserving folders, flags, tags, calendars, contacts and tasks.</description><pubDate>Wed, 22 Jul 2026 12:00:00 GMT</pubDate><category>guide</category><category>thunderbird</category></item><item><title>Convert Gmail Takeout to Outlook PST</title><link>https://www.continumail.com/gmail-takeout-to-pst</link><guid isPermaLink="true">https://www.continumail.com/gmail-takeout-to-pst</guid><description>Convert a Google Takeout mbox archive to PST while accounting for Gmail labels, status and large exports.</description><pubDate>Wed, 22 Jul 2026 12:00:00 GMT</pubDate><category>guide</category><category>gmail</category></item><item><title>What gets converted, field by field</title><link>https://www.continumail.com/what-gets-converted</link><guid isPermaLink="true">https://www.continumail.com/what-gets-converted</guid><description>The evidence-backed conversion fidelity matrix for mail, metadata, calendars, contacts and tasks.</description><pubDate>Wed, 22 Jul 2026 12:00:00 GMT</pubDate><category>evidence</category><category>trust</category></item><item><title>Free versus paid mbox-to-PST converters</title><link>https://www.continumail.com/free-mbox-to-pst-converter</link><guid isPermaLink="true">https://www.continumail.com/free-mbox-to-pst-converter</guid><description>An evidence-based comparison of ContinuMail and typical commercial conversion tools.</description><pubDate>Wed, 22 Jul 2026 12:00:00 GMT</pubDate><category>comparison</category><category>mbox</category></item><item><title>v0.3.2 — no folder left behind</title><link>https://github.com/ContinuMail/continumail-converter/releases/tag/v0.3.2</link><guid isPermaLink="true">https://github.com/ContinuMail/continumail-converter/releases/tag/v0.3.2</guid><description>Bug-fix release for large Thunderbird profiles.

## Fixed

- **Scanning a large Thunderbird profile no longer fails with &quot;The filename or extension is too long. (os error 206)&quot;** (#66). The desktop app passed every discovered mail folder to the conversion engine as a command-line argument, so profiles with alot of mail folders could exceeded Windows&apos; 32,767-character command-line limit and the scan couldn&apos;t start, regardless of how short the profile path was. The app now hands the folder list to the engine through a temporary file, via a new additive `scan --input-list &lt;file&gt;` CLI flag (one path per line; combines with the existing repeatable `--input`).

Verified against a 400-folder reproduction that fails identically on 0.3.1 and scans/converts cleanly on this build.

**Full changelog:** https://github.com/ContinuMail/continumail-converter/blob/main/CHANGELOG.md</description><pubDate>Wed, 08 Jul 2026 08:13:16 GMT</pubDate><category>release</category></item><item><title>v0.3.1 — making scanpst stop yelling</title><link>https://github.com/ContinuMail/continumail-converter/releases/tag/v0.3.1</link><guid isPermaLink="true">https://github.com/ContinuMail/continumail-converter/releases/tag/v0.3.1</guid><description>Turns out when you write PST files from scratch, Microsoft&apos;s Inbox Repair Tool has *opinions*. This one&apos;s mostly me getting it to shut up — a bug-fix release, no new features.

**The big one:** PSTs larger than ~2 GB were failing `scanpst.exe` with hundreds of errors — a mangled allocation page (the FPMap, a deprecated structure nobody&apos;s supposed to care about, except scanpst apparently does) that only shows up once a file crosses ~2 GB. My earlier testing topped out at two-message stores, so this happily hid for weeks. A real 3.8 GB profile — mail, calendar, tasks, contacts — now scans with **zero findings**.

**Also fixed:**
- Converting an account whose folder is literally named &quot;Deleted Items&quot; no longer takes the whole run down with it. Your Gmail trash can finally come home.
- The desktop progress bar keeps up with the percentage now, instead of loitering 20% behind like it&apos;s got somewhere better to be.
- The Review screen shows your biggest folders first, so you&apos;re not scrolling past forty empty ones to find your inbox.

The full list is in the [CHANGELOG](https://github.com/ContinuMail/continumail-converter/blob/v0.3.1/CHANGELOG.md).

### Downloads
- **ContinuMail Converter_0.3.1_x64-setup.exe** — the Windows desktop app (installer; the GUI is Windows-only).
- **mail2pst-cli-0.3.1-win-x64.exe** — the command-line converter, Windows.
- **mail2pst-cli-0.3.1-linux-x64** — the command-line converter, Linux.
- **mail2pst-cli-0.3.1-osx-arm64** — the command-line converter, macOS (Apple Silicon).

The CLI binaries are single-file and self-contained — no .NET install needed.

### Unsigned binaries — first-run steps
- **Windows:** SmartScreen may pop up → *More info → Run anyway*.
- **Linux:** you&apos;ll need `libicu` (e.g. `sudo apt install libicu-dev`), then `chmod +x` the binary.
- **macOS:** `xattr -dr com.apple.quarantine ./mail2pst-cli-0.3.1-osx-arm64 &amp;&amp; chmod +x ./mail2pst-cli-0.3.1-osx-arm64`. Heads up: the osx-arm64 binary is built and tested in CI only — it hasn&apos;t been run on a physical Mac.

### SHA-256
```
9c0bd38bcbc7aefe7bd5b9ffd045183015f2e28ce618fd6899e431458758ae8b  ContinuMail.Converter_0.3.1_x64-setup.exe
0d506b2c72382e2ddf1ca60eed22959f530f793264cd4163d9900d0b5268e2f4  mail2pst-cli-0.3.1-win-x64.exe
9a9c4e1f0b7c323e5f476f7d2d45b7b39546bbf84abc0ea2863196ab71d6637d  mail2pst-cli-0.3.1-linux-x64
7402ab1cd1d2abb316a111095f3e05e1e375386e93e9420d4d6740009058c14c  mail2pst-cli-0.3.1-osx-arm64
```</description><pubDate>Tue, 07 Jul 2026 20:12:18 GMT</pubDate><category>release</category></item><item><title>How ContinuMail writes PST without Outlook</title><link>https://www.continumail.com/how-it-works</link><guid isPermaLink="true">https://www.continumail.com/how-it-works</guid><description>A technical explanation of how ContinuMail translates source metadata and writes PST files directly.</description><pubDate>Tue, 07 Jul 2026 12:00:00 GMT</pubDate><category>evidence</category><category>trust</category></item><item><title>v0.3.0 — Calendars, contacts, tasks &amp; baked-in category colours</title><link>https://github.com/ContinuMail/continumail-converter/releases/tag/v0.3.0</link><guid isPermaLink="true">https://github.com/ContinuMail/continumail-converter/releases/tag/v0.3.0</guid><description>This is a big one. ContinuMail started life mail-only — with 0.3.0 your Thunderbird **calendar, to-dos and contacts** come across too, at near-100% fidelity, at the click of a button. And your Outlook **category colours are now baked straight into the PST**.

### What&apos;s new
- **Contacts → PST.** Address books become real Outlook contact cards — names, company and title, every phone number, home/business addresses, birthdays, websites, notes, and **photos**. Modern Thunderbird (`abook*.sqlite`, read via vCard) and the legacy `.mab` books both work.
- **Calendar → PST.** Events convert with **timezone management**, all-day handling, reminders, busy/free, **attendees** as proper meeting recipients, and **recurring events** (daily/weekly/monthly/yearly) — plus attachments and online-meeting links. I did a chunk of the timezone work in UTC+7 with my PC set to CEST, which I regret deeply, because screw timezones but that forced me to sort that out early on.
- **Tasks (to-dos) → PST.** Due and start dates, **task completion** and % complete, priority, reminders, recurrence, attachments.
- **Custom tags &amp; categories keep their colours.** Mail tags and calendar/task categories are baked into every PST as your Outlook master category list, in the colours Thunderbird actually shows — no add-in, no COM, no separate step. One quirk worth knowing: Outlook only reads that list from your **primary/default** data store, so open the converted PST as your main store to see the colours. ([Here&apos;s how it works.](https://github.com/ContinuMail/continumail-converter/blob/v0.3.0/HOW-CATEGORY-COLOURS-WORK.md))
- **PIM now routes per-account, like mail (desktop).** Mail already split into one PST per account — now your **calendars, contacts and tasks do too**, landing in that account&apos;s own PST right alongside its mail instead of one undifferentiated lump.

### Smaller stuff
- **Fixed:** folders whose names start or end with a dot (like `.Trash`) used to get skipped — they convert now.
- **Removed:** the old `import-colours` / `outlook-profiles` commands and the one-click colour button. Colours live inside the PST now, so there&apos;s nothing extra to run.

The full, unabridged list is in the [CHANGELOG](https://github.com/ContinuMail/continumail-converter/blob/v0.3.0/CHANGELOG.md).

### Downloads
- **ContinuMail Converter_0.3.0_x64-setup.exe** — the Windows desktop app (installer; the GUI is Windows-only).
- **mail2pst-cli-0.3.0-win-x64.exe** — the command-line converter, Windows.
- **mail2pst-cli-0.3.0-linux-x64** — the command-line converter, Linux.
- **mail2pst-cli-0.3.0-osx-arm64** — the command-line converter, macOS (Apple Silicon).

The CLI binaries are single-file and self-contained — no .NET install needed.

### Unsigned binaries — first-run steps
- **Windows:** SmartScreen may pop up → *More info → Run anyway*.
- **Linux:** you&apos;ll need `libicu` (e.g. `sudo apt install libicu-dev`), then `chmod +x` the binary.
- **macOS:** `xattr -dr com.apple.quarantine ./mail2pst-cli-0.3.0-osx-arm64 &amp;&amp; chmod +x ./mail2pst-cli-0.3.0-osx-arm64`. Heads up: the osx-arm64 binary is built and tested in CI only — it hasn&apos;t been run on a physical Mac.

### SHA-256
```
976578f18af87ea004a0c37be161739b8162fc5119798e4dcab07a065105fc26  ContinuMail Converter_0.3.0_x64-setup.exe
3005f9bb56d09016b6bc46b64613d604a60658b6a51bafe90e54f9271a9cb2ec  mail2pst-cli-0.3.0-win-x64.exe
bd5a1a03d667ff0cc0b563dff1a7a1af994d90b7c462c5515dc24f814e21d808  mail2pst-cli-0.3.0-linux-x64
932390775e4cd2a7bf711aef00999588dc5e233834bd29c2d791c644c85d019b  mail2pst-cli-0.3.0-osx-arm64
```</description><pubDate>Mon, 06 Jul 2026 22:15:42 GMT</pubDate><category>release</category></item><item><title>v0.2.3 — cross-platform CLI</title><link>https://github.com/ContinuMail/continumail-converter/releases/tag/v0.2.3</link><guid isPermaLink="true">https://github.com/ContinuMail/continumail-converter/releases/tag/v0.2.3</guid><description>**The command-line converter now runs on Linux and macOS**, not just Windows — the engine is fully cross-platform, and prebuilt single-file CLI binaries ship for all three. The desktop app remains Windows-only for now.

## Added
- Prebuilt CLI for **Windows, Linux, and macOS** (single-file, self-contained — no .NET install needed).

## Changed
- The desktop app&apos;s conversion step starts faster: it reuses the message total from the scan it just ran instead of counting every mailbox a second time. (Direct CLI users: new `convert --expected-total &lt;n&gt;` flag.)

## Fixed
- **Inline images that are also real attachments stay visible** — a part referenced inline (CID) *and* present as an explicit attachment was being hidden and could go missing from the attachment list.
- **More accurate size/count estimates for forwarded-as-attachment (`message/rfc822`) messages** during `scan`.
- **Cancelling a conversion no longer leaves a stray temp file.**

## Downloads
- **Desktop app (Windows 10/11):** `ContinuMail Converter_0.2.3_x64-setup.exe` (includes the CLI).
- **Command-line:** `mail2pst-cli-0.2.3-win-x64.exe` · `-linux-x64` · `-osx-arm64`.

## Notes &amp; disclaimers
- Binaries are **not yet code-signed**. Windows: SmartScreen may warn (&quot;More info → Run anyway&quot;). **macOS:** unsigned, so clear Gatekeeper quarantine — `xattr -dr com.apple.quarantine ./mail2pst-cli-0.2.3-osx-arm64`. **Linux:** the self-contained runtime needs ICU (`sudo apt install -y libicu-dev` on Debian/Ubuntu).
- The `osx-arm64` binary is built and **CI-tested on macOS**, but not yet run on bare-metal Apple hardware.
- Free software, provided **as is** — please **keep a backup** of your originals and **validate** the output before relying on it.

### SHA-256
```
a723de557e9502d5360ef0fd3e0caeabf417d555f0fa61de6edf356a6c5e48ab  ContinuMail Converter_0.2.3_x64-setup.exe
36c46a30fe29a1f5ccf2715da346818da5bc5ba94e8af2075afeac9d90229904  mail2pst-cli-0.2.3-win-x64.exe
eff2990aa014c44f0c0e2d3eb13ed1a987ad17701db4c2fe1de63d0b7afcab1f  mail2pst-cli-0.2.3-linux-x64
9c9270c8cdbc3699991f2bed38b371ab558572060471cdff88110da2da93e803  mail2pst-cli-0.2.3-osx-arm64
```</description><pubDate>Sun, 28 Jun 2026 13:39:32 GMT</pubDate><category>release</category></item><item><title>v0.2.2 — parallel scan</title><link>https://github.com/ContinuMail/continumail-converter/releases/tag/v0.2.2</link><guid isPermaLink="true">https://github.com/ContinuMail/continumail-converter/releases/tag/v0.2.2</guid><description>## ContinuMail Converter 0.2.2

### Parallel byte-range scan
The dry-run scan (CLI `scan` and the desktop app&apos;s pre-conversion scan) now parses each mailbox as several message-aligned byte ranges across CPU cores instead of one sequential pass.

- **~3–4× faster** on large archives (a 4.5 GB Gmail export scans in ~13 s instead of ~47 s), with no slowdown on a single very large folder.
- **Bounded, size-independent memory** during a scan — large messages spill to a temp file rather than residing in memory, so scanning a multi-GB archive no longer grows memory with the file.
- **Identical results** — counts, size estimates, dates, and warnings are byte-for-byte unchanged from the previous scan.

### Fixed
- &quot;Import category colours&quot; no longer hangs when the colours already exist in Outlook.
- Thunderbird `.msf` reading no longer fails on a reparsed folder (the table-rebuild fragment is now folded into the real table, so flags/tags come across).

**Install (Windows):** download `ContinuMail.Converter_0.2.2_x64-setup.exe` below and run it.</description><pubDate>Sat, 27 Jun 2026 18:53:04 GMT</pubDate><category>release</category></item><item><title>v0.2.1</title><link>https://github.com/ContinuMail/continumail-converter/releases/tag/v0.2.1</link><guid isPermaLink="true">https://github.com/ContinuMail/continumail-converter/releases/tag/v0.2.1</guid><description>### Added
- Thunderbird `.msf` enrichment now preserves **message priority** set inside Thunderbird. A
  priority a user or filter applied in Thunderbird is stored only in the `.msf` (not in the mbox
  headers), so it was previously lost; it is now read and written to Outlook&apos;s importance. Priority
  that arrived on the message&apos;s own `X-Priority`/`Importance` header was already preserved.
- Thunderbird `.msf` enrichment now drops **uncompacted dead copies**. An un-compacted Thunderbird
  folder can still hold old physical copies of messages it no longer shows; the converter now reads
  each `.msf` row&apos;s live mbox byte offset (`storeToken`, falling back to `msgOffset`) and exports
  only the messages Thunderbird still lists, so the PST matches the folder you see. Filtering
  activates only when every live row maps to a real mbox message boundary — on any uncertainty it
  keeps every message, so unique mail is never dropped.

### Changed
- Writer: large attachments (≥ 16 MB) are now written by streaming. A single large attachment
  previously caused writer-side peak memory to spike to a multiple of its size — the vendored
  layer materialised the full payload in memory while building the data blocks. The attachment
  data is now fed through a batched, bounded-residency pipeline, so the **writer-side** contribution
  to peak memory stays bounded regardless of attachment size (verified end-to-end: resident block
  count stays flat from 9 MB to 512 MB attachments). Small and medium attachments (&lt; 16 MB) keep the
  existing `byte[]` path; output is byte-identical and is structure-validated by the independent
  MS-PST reader (`tools/pst-validate`). Note: the mbox parser still materialises one message at a
  time, so total process memory for a single multi-GB attachment remains parser-bound — removing
  that end-to-end ceiling is separate, future work.
- Writer: PST files are now built from scratch via `PSTFile.CreateEmptyStore()` instead of
  copying a pre-seeded blank seed file. The blank-seed asset, the seed-extraction helper,
  and the dev-only seed-regeneration tool have been retired; `PstWriter`, `PstPartManager`,
  and `ConversionRunner` no longer accept or require a seed file path.
- Writer: large folders convert dramatically faster. Adding a message was effectively
  O(n²) in the folder&apos;s message count — the vendored heap allocator located free space with
  a linear block scan that grew as a folder filled — so very large single folders slowed down
  progressively. The allocator now uses a maintained best-fit free-space index, keeping
  per-message cost flat. A ~16,000-message folder that took ~70 s now takes ~40 s; output
  validity is unchanged (verified against an independent MS-PST reader).
- Thunderbird enrichment is far quieter on real profiles. Two harmless internal conditions no
  longer raise per-folder warnings: (1) an **empty folder** (whose `.msf` has no message table) is
  now treated as &quot;no messages&quot; instead of an unreadable-`.msf` warning; (2) the dead-copy
  **live-offset filter declining to run** — the common, expected case for IMAP accounts, whose `.msf`
  rows usually carry no usable byte offset — is now silent. In both cases behaviour is unchanged
  (every message is still exported and flags/tags still applied); only the noise is gone. A genuinely
  corrupt `.msf`, and an ambiguous multi-table `.msf`, still warn. The aggregate filter-disabled count
  remains in the conversion report for diagnostics.

### Fixed
- Writer: a failed split (e.g. the next part can&apos;t be created mid-conversion) no longer
  deletes the already-completed previous part or leaves a stray blank part behind; the
  failure still surfaces as fatal, but completed output is preserved.
- Writer: a message carrying an attachment larger than a PST attachment can store
  (PidTagAttachSize is a 32-bit value) is now skipped and reported instead of writing a
  wrapped size or risking an out-of-memory load of the whole attachment.
- Desktop: the per-run temp config file is now removed if the conversion engine fails to
  launch (sidecar missing or spawn error), instead of being left behind in the temp directory.</description><pubDate>Sat, 27 Jun 2026 12:14:14 GMT</pubDate><category>release</category></item><item><title>ContinuMail Converter v0.2.0 — Thunderbird profile conversion</title><link>https://github.com/ContinuMail/continumail-converter/releases/tag/v0.2.0</link><guid isPermaLink="true">https://github.com/ContinuMail/continumail-converter/releases/tag/v0.2.0</guid><description>**Major feature enrichments — and a hard-won grudge against Mozilla Mork — ship with 0.2.0. The
headline is Thunderbird profile conversion.**

ContinuMail Converter now reads Thunderbird&apos;s `.msf` / **Mork** metadata. Point it at a profile and
your full folder and subfolder tree comes across — and the per-message state the mbox alone throws
away (**read/unread, stars, replied/forwarded flags, junk, and tags**) is translated into native
**MAPI properties (PID tags)** and shows up natively in Outlook. Tags become Outlook **categories**
under your real Thunderbird tag names. It&apos;s paired with a **scan-for-profiles** step that
automatically matches every mail account and local archive with its `.msf` sidecar — no hunting for
files. This resolves the v0.1.2 &quot;Thunderbird flags/starred not preserved&quot; and &quot;tags unsupported&quot;
limitations for live-profile conversions.

### New in 0.2.0 (CLI + GUI)
- **Thunderbird `.msf` / Mork enrichment** — read/unread, replied, forwarded, starred (→ follow-up
  flag), junk, and tags, recovered from a live profile and written as native MAPI properties.
  Degrades gracefully: an unreadable or mismatched `.msf` is skipped per-source and reported, never
  fatal.
- **Tags → Outlook categories** using your real tag display-names from `prefs.js` (non-ASCII included).
- **Scan for profiles** — auto-discovers Thunderbird profiles and pairs every mail account and local
  archive with its `.msf` sidecar; per-account detection (email / host) included.
- **Multi-account → one PST per account** by default (each account a top-level folder), with a
  &quot;Combine into a single PST&quot; toggle.
- **Junk handling** — leave / tag as a &quot;Junk&quot; category / move to a Junk Email folder.
- **Drop expunged messages** — optionally skip mail Thunderbird marked deleted but hasn&apos;t compacted
  out yet.
- **Outlook category colours** — `import-colours` (CLI) and a one-click card on the Done screen (GUI)
  push your Thunderbird tag colours into Outlook so the categories match.

**On category colours and COM:** category *assignments* live in the PST as MAPI properties (PID tags)
and need no Outlook. The **Master Category List** — the names-and-colours registry Outlook draws from
— does **not** live in the PST and can&apos;t be written from PID tags, so colour import drives Outlook
over COM to edit the CategoryList FAI message atomically (Windows only; Outlook installed and
**closed**). A `--plan-file` mode applies a previewed plan without re-scanning.

### Hardening, security &amp; other changes
- **Mork reader — nested folders no longer read as empty.** Real `.msf` files reuse a small numeric
  table id across scopes; tables are now keyed by the composite (scope, id), so enrichment no longer
  silently finds zero messages on real profiles.
- **Mork reader — wider charset support** (windows-1252, Shift-JIS, Big5, EUC-JP, via the runtime
  code-page provider) and more robust column-dictionary detection.
- **`import-colours` fixes** — correct bytes for non-ASCII categories (e.g. &quot;ÆØÅ&quot;); only shuts down an
  Outlook instance it actually started; excludes the `NonJunk` pseudo-tag from candidates.
- **More mbox `X-Mozilla-Status` flags even without a profile** — replied / forwarded / starred added
  to read/unread (POP / older Local Folders stores; no effect on flag-less IMAP/EWS exports) (#7).
- **Faster large-folder writes** — per-folder `SaveChanges` is batched at checkpoints instead of after
  every message. No behaviour change.
- **GUI polish** — real source count on the Scanning screen (was &quot;0 files&quot;); one box per account on
  the Source step (was &quot;first@x +N more&quot;); full-height rail with no sideways scroll; multi-account
  defaults to split; stepper Back-navigation reaches the Accounts step.
- **Security** — the vendored multi-string deserializer validates its item count with unsigned
  arithmetic against the buffer length before casting, turning a malformed/oversized count into a
  clean `InvalidDataException` instead of `OverflowException`/`OutOfMemoryException`.

### Known limitations
- **`.msf` enrichment needs a live profile** (the mbox plus its sibling `.msf`). A bare exported
  `.mbox` still imports as before — only inline `X-Mozilla-Status` flags are recoverable, not
  tags / junk / expunged state.
- **`import-colours` is Windows-only and needs Outlook installed and closed.** Conversion itself still
  requires no Outlook — only tag *colours* do.

### Internal
- New from-scratch, read-only **Mork (`.msf`) reader** (`src/Mail2Pst.Core/Mork/`) with enrichment
  built on top (`src/Mail2Pst.Core/Msf/`); extensive unit + env-gated real-corpus tests.
- Pure, COM-free, unit-tested category-colour XML/stream helpers extracted from the colour-import path.
- Desktop helper extractions (account grouping, PST-name sanitization/de-dup, output-path join,
  discovery parsing) and the single public-primary repo migration with a `leak-check` safety net.</description><pubDate>Mon, 22 Jun 2026 19:31:55 GMT</pubDate><category>release</category></item><item><title>v0.1.2</title><link>https://github.com/ContinuMail/continumail-converter/releases/tag/v0.1.2</link><guid isPermaLink="true">https://github.com/ContinuMail/continumail-converter/releases/tag/v0.1.2</guid><description>## [0.1.2] — 2026-06-18

A feature + hardening release. The headline is **Thunderbird subfolder (`.sbd`) support** — a new
CLI `discover` command that reconstructs a nested folder tree from a Thunderbird mail directory and
converts it to nested PST folders. **This is currently CLI-only; the desktop app does not yet expose
it.** The rest of the release is correctness, security, and robustness work that benefits everyone,
desktop users included.

### Added
- **Thunderbird `.sbd` nested-folder support (CLI).** A new `discover` command walks a mail-files
  directory (e.g. a Thunderbird &quot;Local Folders&quot; or account directory), reconstructs the nested tree
  from Thunderbird&apos;s `&lt;name&gt;` + sibling `&lt;name&gt;.sbd/` layout, and emits a JSON source list with an
  explicit nested `targetFolderPath` per source. Feeding that into `convert` produces a PST with the
  folder hierarchy preserved. A plain directory of `.mbox` files still works as before.
- **Nested folder paths in config.** `convert` sources accept a `targetFolderPath` array (e.g.
  `[&quot;Inbox&quot;,&quot;Archive&quot;,&quot;2026&quot;]`) to place mail into nested PST folders; the engine creates the full
  path on demand. The existing `targetFolder` string remains single-segment shorthand.
- **`schemaVersion` on every CLI JSON event** so consumers can detect contract changes; the desktop
  app checks it permissively.

### Changed
- **CLI project/binary renamed `mbox2pst` → `mail2pst`** (sidecar `mail2pst-cli`). The product name
  (ContinuMail Converter) is unchanged; this only affects anyone invoking the CLI by its old name.
- **PST size-splitting is now predictive** — a part splits *before* a message would cross the cap,
  rather than only at a periodic checkpoint (which could overshoot a small custom cap).
- **Desktop app now uses a restrictive, local-only Content-Security-Policy** (previously unset).

### Fixed
- **NDR/bounce phantom attachment (KB-001).** Bounce notifications no longer surface a phantom
  embedded-message attachment in Outlook, regardless of how deeply the `multipart/report` is nested.
- **Stricter, cross-platform output-name validation** — reserved names, trailing space/period, and
  platform-invalid characters are rejected up front (#17).
- **Envelope-postmark validation** — the `From ` boundary validates the day-of-week and month, so a
  body line that merely looks like a postmark can&apos;t cause a mis-split (#2).
- **More accurate (component-aware) split-cap size estimate**, so very large messages split correctly (#4).
- A permission-denied source is **skipped and reported** instead of crashing the run; an empty sender
  address no longer fails a write; a config/output-dir setup failure emits a fatal JSON error instead
  of a bare crash; the mbox parse enumerator is disposed promptly on early exit.

### Known limitations
- **Thunderbird read/unread &amp; starred state is not preserved.** Thunderbird stores per-message flag
  state in its `.msf` index, not the mbox, so an mbox-based conversion cannot recover it (messages
  generally import as read &amp; unflagged). Read/unread *is* preserved for archives whose mbox carries
  real `X-Mozilla-Status` flags. (KB-002.)

### Internal
- New format-agnostic **round-trip integration test harness** (parse → write → PST read-back →
  compare), **CI** on every push/PR, and **Dependabot**. The PST writer and MIME mapping were
  decomposed for maintainability. No behaviour change.</description><pubDate>Wed, 17 Jun 2026 21:48:02 GMT</pubDate><category>release</category></item><item><title>v0.1.1</title><link>https://github.com/ContinuMail/continumail-converter/releases/tag/v0.1.1</link><guid isPermaLink="true">https://github.com/ContinuMail/continumail-converter/releases/tag/v0.1.1</guid><description>A post-launch correctness and robustness release. The headline is a **data-loss fix**:
some mbox files could silently merge messages. Upgrading is recommended.

### Fixed
- **Silent message loss on mbox files without blank separators.** A message boundary was
  previously only detected after a blank line, so two messages joined without one were merged
  into a single message — losing the second. Boundary detection now also recognizes the
  envelope (&quot;From &quot;) postmark line by its asctime shape. Validated against a real corpus of
  45,000+ messages with zero over-splitting.
- **Body corruption on mboxrd archives (e.g. Gmail Takeout).** Body lines beginning with
  `From ` are stored escaped as `&gt;From `; these are now un-escaped so message text round-trips
  exactly.
- **Desktop app could hang at the end of a conversion.** The terminal `done` event could be
  dropped when the engine exited quickly; the convert output is now buffered with an exit
  fallback so the UI always finishes.

### Changed
- **Write failures are no longer silently skipped.** A PST write error — an engine bug, a
  vendored-library failure, or invalid internal state — is now **fatal**: the converter stops
  and reports it instead of producing a quietly-incomplete PST. A failed run deletes its
  in-progress PST part rather than leaving a half-written file that looks usable. (Malformed
  *input* is still skipped/warned, as before.)
- **Folder names are now validated by the engine,** not only the desktop UI — a hand-written
  config or direct CLI use can no longer place an unsafe folder name into the PST.
- **PST size-splitting no longer overshoots the cap.** When an output PST is split by size, the
  writer now splits *predictively* — before a message would cross the configured maximum — rather
  than only checking at a periodic interval (which could overshoot a small custom split size by up
  to ~500 messages).
- **Review screen:** sort the folder list by clicking column headers (▲/▼ for direction); a note
  on the Options screen clarifies that renaming sets a folder&apos;s name, not Outlook&apos;s display order.
- Documentation now describes large-attachment spill-to-disk accurately as bounding *queued*
  memory rather than implying full end-to-end streaming.

### Security
- **Upgraded MimeKit 4.9.0 → 4.17.0,** clearing the moderate `GHSA-g7hc-96xr-gvvx` (`NU1902`)
  advisory.
- **Added a restrictive Content-Security-Policy to the desktop app** (previously unset): it is
  limited to its own bundled assets and local IPC — no external network origins.

### Unchanged
- The CLI JSON Lines event contract (`scan` / `convert` / `version`) is unchanged.</description><pubDate>Tue, 16 Jun 2026 13:07:18 GMT</pubDate><category>release</category></item></channel></rss>