Release Notes
Maekon follows SemVer at the tag/Cargo level + CalVer in user-facing surfaces — same pattern as NousResearch/hermes-agent. Build date and short commit SHA appear on every release page, in maekon --version, and via the get_app_build_info IPC.
| Surface | Format |
|---|---|
| Git tag / Cargo.toml | SemVer only — v0.0.1-rc.3 |
| GitHub Release title | Maekon v0.0.1-rc.3 |
| Release notes line 1 | ## Maekon v0.0.1-rc.3 — Released May 06, 2026 |
| Release notes line 2 | **Built**: 2026-05-06 UTC · **Commit**: 628908505 |
maekon --version | maekon 0.0.1-rc.3 (build: 2026-05-06 | commit: 628908505) |
Latest release
See github.com/pseudotop/maekon-client/releases/latest for the full asset list, or maekon.dev/download for direct platform-specific download buttons (auto-fetched at landing build time).
Cadence
- RC iteration — as needed within a release cycle (typically 1-3 RCs per stable cut)
- RC soak window — ~4 weeks between final RC and stable promotion
- Stable promotion — via
promote-stable.yml(workflow_dispatch, GitHub App authenticated) - No fixed weekly/monthly cadence — driven by feature/fix readiness
Pre-1.0 contract
Until v1.0, the public API surface (Tauri IPC, server gRPC contract, config schema) may break across minor versions per SemVer §4. The CHANGELOG.md flags every breaking change with BREAKING CHANGE: per Conventional Commits.
Changelog
The authoritative changelog is generated by git-cliff and lives at CHANGELOG.md in the public repo. Each release page mirrors the relevant section.
Verifying a release
Every asset ships .sha256 + .sig (ed25519). Verification example:
PUB=fPiU9KchUIXZ7qOcjJIVp+W8rsO/WI7yStD+AiNuYvw=
ARTIFACT=maekon-linux-x64.tar.gz
curl -fLO "https://github.com/pseudotop/maekon-client/releases/latest/download/$ARTIFACT"
curl -fLO "https://github.com/pseudotop/maekon-client/releases/latest/download/$ARTIFACT.sig"
python3 -c "
import base64, sys
from nacl.signing import VerifyKey
data = open(sys.argv[1], 'rb').read()
sig = base64.b64decode(open(sys.argv[1] + '.sig').read().strip())
VerifyKey(base64.b64decode('$PUB')).verify(data, sig)
print('OK')
" "$ARTIFACT"
The same check runs in CI as the Release Reliability Smoke job.
Versioning policy reference
For the rationale behind the SemVer + CalVer hybrid, see docs/RELEASE-POLICY.md in the public repo.