v0.1.0
Release v0.1.0
✨ New Features
- feat(cli): imapsync-style flags for dual-host sync (
--host1/2, SSL/TLS,--dry,--justfolders,--useheader,--logfile) - feat(imap): dual IMAP sessions with LIST, CREATE, FETCH and APPEND (flags + internal date) via emersion/go-imap/v2
- feat(identity): header-based duplicate detection (default Message-Id + Received)
- feat(security): redacted password type and optional env passwords (
GOIMAPSYNC_PASSWORD1/2) - feat(report): end-of-run summary with exit codes 0/1/2
🔧 Improvements
- refactor(errors): classify quota, closed connection, auth, TLS and timeouts with operator hints; abort on fatal faults instead of error spam
- chore(build): Makefile targets (
build,test,lint,release,docker-build,live-dry) and staticCGO_ENABLED=0binary - chore(ci): GitHub Actions CI + tag release workflow (linux/amd64 tarball)
🧪 Tests
- test: unit coverage for config, identity, secret and report
- test: dual-user TLS memserver integration for imapclient and sync
- test: binary e2e smoke (dry, real transfer, dedup, bad auth, exit codes)
📚 Documentation
- docs: README, CHANGELOG, OpenSpec change
go-imapsync-core - docs: Archify architecture diagrams under
docs/architecture/ - docs: create-release skill rewritten for GitHub +
gh
📦 Package
- linux/amd64:
go-imapsync_0.1.0_linux_amd64.tar.gz
Full Changelog: 54c943b...v0.1.0