Files
inbuxa-migrate/CHANGELOG.md
T
jcoffey-dev bfea4a5467 Rewrite the README for inbuxa-migrate
The README now says what the tool is in the suite's plain voice: the
archive in the middle, convergent reruns, --dry-run, the archive as a
backup, the sources it reads (Stalwart among the JMAP ones), the
INBUXA_MIGRATE_* credential variables, installing from the Gitea release
with SHA256SUMS, building and testing, and the license with the lineage
line. Upstream's logo, badges and install channels are gone.

The full command and flag reference moves to docs/usage.md, with the
renamed binary and variables. The CHANGELOG gains a section for this first
release, above upstream's history.
2026-09-30 10:15:07 -07:00

5.3 KiB

Change Log

All notable changes to this project are recorded here. Versions are dates: release v2026.9.30 is version 2026.9.30.

[Unreleased] -- 2026.9.30

Changed

  • Renamed to inbuxa-migrate: the binary, the crate, and the credential variables, now INBUXA_MIGRATE_PASSWORD, INBUXA_MIGRATE_TOKEN, INBUXA_MIGRATE_EWS_CLIENT_SECRET and INBUXA_MIGRATE_GRAPH_TOKEN. The old names are not read. Archives written by Vandelay are not read either.
  • Registry calls (x:Account, x:Domain and the other x: types) use the capability the server advertises: urn:inbuxa:jmap:registry on inbuxa, urn:stalwart:jmap on a Stalwart source. A server that advertises neither gets a clear error instead of a request it never offered to accept.
  • Released as Linux archives for amd64 and arm64 on the Gitea release page, with SHA256SUMS. The npm, Homebrew, shell and PowerShell installers and the MSI are gone.

Earlier releases (upstream Vandelay)

[1.0.11] - 2026-09-28

Added

Changed

  • Replaced base64 with encodify.

Fixed

  • IMAP: import failed after authenticating to Dovecot when a capability contained :, such as IMAPSIEVE=sieve://... (fixes #43)

[1.0.10] - 2026-08-27

Added

  • MS Exchange Graph:
    • OneDrive files import.
    • Graph contact photos, categories and IM addresses.
    • Graph event file attachments.

Changed

Fixed

  • MS Exchange Graph:
    • Import the default Contacts folder, recover series exceptions (fixes #39)
    • Graph deleted recurrence occurrences were not excluded.
    • bySetPosition was emitted on every Graph recurrence rule.
    • Graph read, flagged and category state was dropped.
    • A contact folder reachable by two paths aborted the run.
    • IM addresses were dropped on export for lacking a uri.
    • A redirect warning logged a OneDrive download credential.

[1.0.9] - 2026-08-22

Added

Changed

Fixed

  • IMAP mailbox names were decoded as Latin-1 instead of UTF-8, so non-ASCII folders failed to SELECT (#32 #37).
  • CalDAV discovery aborted when the given URL answered PROPFIND with 501 instead of trying the next discovery step (#35).
  • An unparsable receivedAt dropped the whole email, and a FileNode without nodeType was skipped (#36).
  • Maildir import took received_at from the file mtime, which does not survive a copy or restore (#38).
  • An EWS recurrence EndDate carrying a UTC offset produced a malformed until and an unbounded series (#33).
  • Export took the default calendar or address book away from a target account that already had one, and an archive could hold more than one default per type.
  • Exchange participant addresses were replaced by a synthetic URN whenever RoutingType was not SMTP, and a Graph X500 reference was emitted as a malformed mailto: (#33).

[1.0.8] - 2026-08-15

Added

  • A warning when the session advertises apiUrl, uploadUrl or downloadUrl on a different origin than the one connected to, naming both origins (#29).
  • The per-type report is printed when a run aborts.

Changed

Fixed

  • A transient serverUnavailable from Email/import permanently dropped that message from the migration instead of retrying it.
  • The Exchange Graph importer stored a whole converted event as a recurrenceOverrides value (#31).
  • Exporting a ContactCard carrying a photo blob failed against Stalwart, and a CalendarEvent enclosure sent as a blobId was silently dropped by the server; the bytes of both are now inlined as a base64 data: URI (#30).
  • A connection failure against the session-advertised apiUrl was reported as a per-type partial failure (exit 5, "consistent and resumable") instead of aborting (#29).
  • Session apiUrl, uploadUrl and downloadUrl given as relative references were used unresolved (#29).

[1.0.7] - 2026-07-26

Added

Changed

Fixed

  • Improve verbosity (#4 #19).
  • WebDAV import materialised the account root collection as a directory named after the account displayname (#18).
  • Report user friendly error message when urn:ietf:params:jmap:principals is not supported and no accountId is provided (#21).
  • Report which email failed to import when the blob is too large (#22).
  • IMAP import failed with "LIST mailbox name missing" when a mailbox name is a purely numeric unquoted atom (#26).

[1.0.6] - 2026-07-12

Added

Changed

Fixed

  • Self heal on blobNotFound errors when exporting data (#13).
  • Mapping existing special mailbox fails after alreadyExists response (#17).

[1.0.5] - 2026-06-27

Added

Changed

Fixed

  • Strict RFC822.SIZE == BODY[] length check discards good mail.

[1.0.4] - 2026-06-21

Added

Changed

Fixed

  • Include correct JMAP capabilities in using.
  • Failures are double-counted.

[1.0.3] - 2026-06-15

Added

Changed

Fixed

  • Mailbox roles must be unique per archive (#8).
  • Google takeout: Decode MIME-encoded values in X-Gmail-Labels (#7).

[1.0.2] - 2026-06-11

Added

Changed

Fixed

  • IMAP: Import fails with BAD on servers that advertise LIST-EXTENDED without SPECIAL-USE.
  • MS Exchange EWS: add support for version negotiation and other fixes (#6).

[1.0.1] - 2026-06-04

Added

Changed

Fixed

  • MS Exchange Graph: duplicate ids and incorrect JSCalendar mapping issues.

[1.0.0] - 2026-05-29

Added

  • Initial release.

Changed

Fixed