Skip to content

v0.1.0

Latest

Choose a tag to compare

@github-actions github-actions released this 09 Jul 10:23
10881d3

mailtrap-local v0.1.0

Single-binary local email sandbox + catcher — SMTP + Web UI + JSON
API in one process. See README.md for install instructions.

Changelog

Features

  • 7b62d1a feat(api): AbortSignal threading + 30s timeout in axios client
  • 99a894a feat(cmd): refuse non-loopback bind without --unsafe-non-loopback
  • 02b1e85 feat(frontend): refetch message list on WebSocket reconnect
  • 2c72e3c feat(frontend): replace Linaria with Tailwind v4
  • 3ec6e13 feat(frontend): surface connection-load failures with a retry banner
  • f4b6d0e feat(frontend): vitest scaffold + first 28 tests; gofmt nit
  • d3af509 feat(jobs): graceful shutdown drains in-flight side-effect goroutines
  • bb8e5b3 feat(observability): structured logging via slog + request-ID middleware
  • 8a1a971 feat(secrets): encrypt cloud token / relay password / webhook secret at rest
  • 01244bb feat: expose build version in API and About dialog
  • 8972bb0 feat: wire YAML config pinning into connection API (#14)

Fixes

  • de666b1 fix(api): require explicit signal for DELETE /api/v1/messages
  • d155503 fix(frontend): show search results in an empty inbox; repair stale tests
  • 5e14f62 fix(frontend): stable cable subscription so favicon counter can't double-count
  • b8956cc fix(live): slow subscriber no longer stalls broadcast to others
  • 6c229c5 fix(security): sandbox HTML opened via "open in new tab"
  • 4b5ac92 fix(sidebar): selected-row subject readable when message is already read
  • 9e3daa1 fix: cap HTTP JSON request bodies at 25 MB
  • 1c08019 fix: resolve golangci-lint issues on connection handlers
  • 7f79084 fix: use maxSnippetLen constant for snippet truncation

Other

  • dd05768 Initial commit — single-binary local email catcher
  • caceb45 Merge branch 'main' into refactor/frontend-named-exports
  • 35d7a70 Merge branch 'test/improve-go-coverage-testify'
  • 09df0e2 Merge pull request #1 from mailtrap/fix/relay-rewrite-to-header
  • 4594bb0 Merge pull request #10 from mailtrap/ci/docker-image-smoke
  • cabe1a4 Merge pull request #11 from mailtrap/docs/oss-governance
  • 0242d61 Merge pull request #12 from mailtrap/test/improve-go-coverage-testify
  • 858e3f8 Merge pull request #13 from mailtrap/ci/golangci-lint
  • 49c6541 Merge pull request #15 from mailtrap/fix/http-body-limits
  • fdfae44 Merge pull request #2 from mailtrap/fix/cors-and-content-headers
  • a0bbc86 Merge pull request #23 from mailtrap/refactor/frontend-drop-unused-exports
  • 10881d3 Merge pull request #24 from mailtrap/refactor/frontend-named-exports
  • 4d7a74d Merge pull request #27 from mailtrap/feat/version-api-about-dialog
  • 6dd3079 Merge pull request #28 from mailtrap/chore/release-ops-public-launch
  • 4cab7f6 Merge pull request #3 from mailtrap/fix/persist-secret-key-in-container
  • 639aa26 Merge pull request #4 from mailtrap/fix/popout-html-sandbox
  • 4b4ebee Merge pull request #6 from mailtrap/refactor/relay-auth-plain-only
  • d24a54d Merge pull request #7 from mailtrap/chore/backend-cleanups
  • 56d5da6 Merge pull request #8 from mailtrap/fix/frontend-test-failures
  • 0870a9b Merge pull request #9 from mailtrap/fix/flaky-shutdown-test
  • 2c8ad8f api: scope CORS/WebSocket to loopback, harden content responses
  • 6e0e530 chore(frontend): enable TypeScript strict mode + no-explicit-any
  • b468770 chore(live): gofmt fix to unbreak CI
  • df9e275 chore(store): enforce singleton invariant on connection tables
  • 8acbc95 cloud partial-update, FTS prefix search, attachments UI
  • c41c85c cut up messageview
  • cf4002e docker: add --unsafe-non-loopback to default CMD
  • 2e186fd docker: persist the secret key on the data volume
  • c4dd07d docs(readme): clarify Mailtrap Sandbox positioning + cloud setup
  • e948960 fix setState, extract more css components
  • 105317f perf(jobs): retention runs on a 60s ticker, not per-ingest
  • d1a9b5d perf(store): FTS5-backed search
  • fee2547 refactor components, fix code smells, add skill
  • 81bde62 refactor into smaller components, css reuse
  • d5cb481 refactor(frontend): collapse the three connection providers and dialogs
  • 1c985d9 refactor(frontend): drop export from file-local symbols
  • 7f78592 refactor(frontend): extract shared HtmlCheckSuccess type
  • edfbcd3 refactor(frontend): remove dead code
  • a707b99 refactor(frontend): replace parent-side Tailwind descendant variants with per-element classes
  • bd407cf refactor(frontend): standardize props types on interface Props
  • 3cc8611 refactor(frontend): use named exports for all components
  • 8626b8d relay: rewrite To: header on manual release
  • 5c4367d relay: simplify auth to PLAIN/none, fail closed on tls=starttls
  • cd27f81 test(frontend): component-level tests for Sidebar / MessageView / dialogs
  • c3e4a6f test(internal): cover the five untested packages
  • a207323 test(jobs): replace flaky shutdown test with deterministic retry tests

Channels:

  • Homebrew: brew install mailtrap/local/mailtrap-local
  • Docker: docker run -p 3535:3535 -p 3550:3550 ghcr.io/mailtrap/mailtrap-local:v0.1.0
  • Binary: download the platform tarball above and tar xzf.

On macOS, an unsigned binary needs a one-time Gatekeeper bypass:
xattr -d com.apple.quarantine ./mailtrap-local