• v0.1.3 5f06121933

    v0.1.3
    All checks were successful
    Release / build-and-release (push) Successful in 2m8s
    CI / backend-test (push) Successful in 6m12s
    Stable

    Ghost released this 2026-10-10 10:31:42 +02:00 | 161 commits to main since this release

    Signed by ozzt
    GPG key ID: 35441C4ED2E53204

    v0.1.3

    This release adds built-in read-only access, user API-key rotation, and system
    shell completions for the AUR package.

    Highlights

    • First davarctl init creates full-access and read-only users atomically,
      displays both keys once, and saves the full-access key in the client config.
    • Read-only access covers all existing and future accounts without granting
      mail mutations or administrative access.
    • Full-access can rotate either key with
      davarctl config user rotate_password <full-access|read-only> using
      /api/v1/config/user/<user>/rotate_password. Read-only cannot rotate keys.
    • Full-access rotation updates the active CLI config. The replacement key is
      displayed even if saving fails, and read-only rotation preserves the saved
      full-access key. Rotation creates the read-only user if it is missing on an
      older installation. The existing /api/v1/auth/rotate endpoint is retained.
    • README, CLI skill, help, and REST/OpenAPI documentation describe rotation
      and offline full-access key recovery.
    • Bash and Zsh completions include service and user rotation commands.
    • davarctl service systemd enable now installs, enables, and starts the user
      service, then directs the user to initialize access with davarctl init.

    Packaging

    • davar-bin installs system-wide Bash and Zsh completions for davarctl.
    • Installation prints the command to install and enable the user service.
    • Static Linux binaries are provided for amd64 and arm64 with SHA256SUMS.

    Existing installations

    After updating the daemon, obtain a read-only key using
    davarctl config user rotate_password read-only with full-access credentials.
    Repeated initialization continues to reject key retrieval or replacement.

    Downloads
  • v0.1.2 8190a96632

    v0.1.2
    All checks were successful
    Release / build-and-release (push) Successful in 2m20s
    CI / backend-test (push) Successful in 6m43s
    Stable

    Ghost released this 2026-10-10 08:51:23 +02:00 | 162 commits to main since this release

    Signed by ozzt
    GPG key ID: 35441C4ED2E53204

    v0.1.2

    This release renames Gomail to Davar and adds a read-only browser interface.

    Highlights

    • Rename the module, commands, configuration defaults, service unit, and release
      artifacts to Davar (davard and davarctl). Existing gomail and
      gomaild client and daemon configuration files migrate on first use when
      their permissions are safe. Explicit database and blob paths remain in use.
    • Add an embedded, read-only htmx interface for cached accounts, folders,
      messages, search, attachments, and raw-message downloads. Browser sessions
      use expiring server-side state and follow the API key's permissions.
    • Negotiate HTML, JSON, and text representations with Accept, retaining the
      existing REST and CLI formats for API clients.
    • Enforce API-key scopes for read and administrative operations, including
      invalid-key rejection and read-only access scenarios.
    • Improve Outbox retry delays and cool down accounts after SMTP connectivity
      failures. Avoid processing deleted folders during synchronization.

    Packaging

    • Linux release assets are davard-linux-amd64, davarctl-linux-amd64,
      davard-linux-arm64, and davarctl-linux-arm64, with SHA256SUMS.
    • davar-bin installs the prebuilt davard and davarctl executables.
    Downloads
  • v0.1.1 06c0be5063

    v0.1.1
    All checks were successful
    Release / build-and-release (push) Successful in 2m13s
    Stable

    ozzt released this 2026-10-10 08:42:34 +02:00 | 166 commits to main since this release

    Signed by ozzt
    GPG key ID: 35441C4ED2E53204

    v0.1.1

    Patch release that clears standard-library vulnerabilities reported by
    govulncheck on the v0.1.0 build toolchain.

    Fixed

    • Build and scan with Go 1.27.2. Go 1.27.1's standard library has nine
      vulnerabilities reachable from Gomail (net/http HTTP/2 framing and trailer
      handling, mime/multipart and net/textproto header parsing, and crypto/tls
      ECH handling), all fixed in Go 1.27.2. gomaild and gomailctl are now built
      with the patched toolchain, and the CI govulncheck step passes.

    Deployment Notes

    • Replace both executables with the v0.1.1 linux/amd64 or linux/arm64
      assets. gomaild --version and gomailctl --version print v0.1.1.
    • No configuration, database, or data migration is required; v0.1.0 state is
      used as-is.

    Verification

    • make ci with Go 1.27.2: formatting, OpenAPI spec check, golangci-lint
      v2.14.0, race-enabled unit and integration tests with coverage, static build,
      gosec v2.29.0, and govulncheck v1.8.0 (No vulnerabilities found).
    Downloads
  • v0.1.0 8e80f5fb80

    v0.1.0
    All checks were successful
    Release / build-and-release (push) Successful in 2m27s
    Stable

    ozzt released this 2026-10-10 08:42:34 +02:00 | 168 commits to main since this release

    Signed by ozzt
    GPG key ID: 35441C4ED2E53204

    v0.1.0

    First release of Gomail, a local authenticated mail daemon (gomaild) and CLI
    (gomailctl) for IMAP and SMTP accounts.

    Highlights

    • Add IMAP/SMTP accounts with encrypted credentials, connectivity tests, and
      incremental background synchronization after an initial full-history
      download.
    • List folders and cached messages with read, unread, flagged, answered,
      draft, and has_attachment filters, date or unread sorting, and cursor
      pagination.
    • Read cached messages as preferred text/plain with a readable HTML fallback,
      inspect decoded headers and attachment metadata, and list or download MIME
      file parts offline.
    • Search cached mail by subject, sender, folder, and received date, with the
      same pagination and limits as message lists.
    • Send UTF-8 text mail through SMTP, with optional attachments, and keep a copy
      in the first folder marked \Sent with --sent-copy.
    • Save drafts through IMAP, list and read them, then send or delete them.
    • Deliver mail through a durable outbox. A send returns a submission ID before
      SMTP runs; unknown SMTP outcomes retry automatically, recorded acceptance
      retries only the remaining draft-cleanup and Sent-copy work, and completed
      submissions stay available by ID with their acceptance and cleanup status.
    • Report daemon, provider, and local storage health with gomailctl doctor, and
      export the OpenAPI 3.1 document with gomailctl spec.

    Deployment Notes

    • This is the first release, so there is no earlier version to migrate from.
    • Release assets are static linux/amd64 and linux/arm64 executables for
      gomaild and gomailctl, plus SHA256SUMS. No container image is built.
    • Put the executables on PATH. The daemon and CLI use the XDG configuration,
      state, and data roots described in the README; the CLI stores its API key in
      ~/.config/gomail/client.json after gomailctl init.
    • gomaild --version and gomailctl --version print the release tag stamped
      into the binary.

    Verification

    • make ci on the release commit: make fmt-check, make spec-check,
      golangci-lint v2.14.0, race-enabled unit and integration tests with coverage,
      the static build, gosec v2.29.0, and govulncheck v1.8.0.
    Downloads