• v2026.9.30
    github/ci (tag) GitHub Actions
    ci / github (push) Successful in 6m11s
    ci / announce (push) Successful in 11s
    github/ci (branch) GitHub Actions
    ci / test (push) Skipped
    Stable

    jcoffey-dev released this 2026-09-30 23:55:18 +00:00 | 2 commits to main since this release

    The first release of inbuxa-migrate.

    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.
    • A second export brings matched items up to date instead of skipping them:
      flags and folders on mail, changed contacts and events, and edited Sieve
      scripts.
    • A message filed in several folders is written once, in every one of them,
      and a resumed export adds any folder it was still missing.
    • Sieve scripts from a Stalwart server keep working on inbuxa: their
      vnd.stalwart.* extension names are renamed to inbuxa's, each rename is
      logged, and a script that can't be activated fails the export instead of
      leaving filtering quietly off.
    • --allow-invalid-certs covers only the server named with --url. Microsoft
      and Google sign-in are always verified.
    • Export imports mail in batches, uploads in parallel within the target's
      limits, and prints progress: count, rate and time left.
    • export --dry-run predicts what would fail -- messages over the target's
      upload limit, objects over its request limit, Sieve scripts it would reject
      -- lists what would be created, updated and skipped, and exits as the real
      run would.

    Fixed

    • Every connection times out instead of waiting forever on a dropped link,
      and a timeout is retried like any other transient error.
    • An interrupted IMAP or Maildir import keeps what it wrote, and a message
      that can't be read is recorded and skipped rather than ending the folder.
    • IMAP and EWS imports hold a bounded amount in memory, in batches capped by
      size as well as count.
    • The archive is created readable by its owner only, and an existing archive
      others can read is reported.
    • A dry run no longer writes to the target's address books.

    Binaries for linux/amd64 and linux/arm64. Verify with SHA256SUMS.

    Downloads