Releases: xronocode/mark
Mark v2.1.0-beta
Manual test release
Mark v2.0.7-alpha
Automated release from ab7f5ba0d77c7f1af61197a7a6acb973f3060749.
Verification:
Build provenance (SLSA-3):
gh attestation verify Mark_2.0.7-alpha_aarch64.dmg --owner xronocode
Cosign keyless signature:
cosign verify-blob \
--bundle Mark_2.0.7-alpha_aarch64.dmg.bundle \
--certificate-identity-regexp 'https://github.com/xronocode/mark/.*' \
--certificate-oidc-issuer https://token.actions.githubusercontent.com \
Mark_2.0.7-alpha_aarch64.dmg
DMG SHA-256 sidecar published as Mark_2.0.7-alpha_aarch64.dmg.sha256.
CycloneDX SBOMs published for both Node renderer and Rust backend
dependency closures. NOTICES-{node,rust}.md attribution lists
shipped alongside.
Updater: ed25519-signed feed (latest.json + Mark_2.0.7-alpha_aarch64.app.tar.gz) shipped.
tauri-plugin-updater verifies against the embedded pubkey before applying. To upgrade
outside the in-app updater:
brew upgrade --cask mark
Mark v2.0.6-alpha
Automated release from 358988c82a733d8245c328c6c92b4af008916785.
Verification:
Build provenance (SLSA-3):
gh attestation verify Mark_2.0.6-alpha_aarch64.dmg --owner xronocode
Cosign keyless signature:
cosign verify-blob \
--bundle Mark_2.0.6-alpha_aarch64.dmg.bundle \
--certificate-identity-regexp 'https://github.com/xronocode/mark/.*' \
--certificate-oidc-issuer https://token.actions.githubusercontent.com \
Mark_2.0.6-alpha_aarch64.dmg
DMG SHA-256 sidecar published as Mark_2.0.6-alpha_aarch64.dmg.sha256.
CycloneDX SBOMs published for both Node renderer and Rust backend
dependency closures. NOTICES-{node,rust}.md attribution lists
shipped alongside.
Updater: ed25519-signed feed (latest.json + Mark_2.0.6-alpha_aarch64.app.tar.gz) shipped.
tauri-plugin-updater verifies against the embedded pubkey before applying. To upgrade
outside the in-app updater:
brew upgrade --cask mark
Mark v2.0.5-alpha
Automated release from d73e93ddb1ee5c20cb080e00af8f4aa9d905ffd2.
Verification:
Build provenance (SLSA-3):
gh attestation verify Mark_2.0.5-alpha_aarch64.dmg --owner xronocode
Cosign keyless signature:
cosign verify-blob \
--bundle Mark_2.0.5-alpha_aarch64.dmg.bundle \
--certificate-identity-regexp 'https://github.com/xronocode/mark/.*' \
--certificate-oidc-issuer https://token.actions.githubusercontent.com \
Mark_2.0.5-alpha_aarch64.dmg
DMG SHA-256 sidecar published as Mark_2.0.5-alpha_aarch64.dmg.sha256.
CycloneDX SBOMs published for both Node renderer and Rust backend
dependency closures. NOTICES-{node,rust}.md attribution lists
shipped alongside.
Updater: ed25519-signed feed (latest.json + Mark_2.0.5-alpha_aarch64.app.tar.gz) shipped.
tauri-plugin-updater verifies against the embedded pubkey before applying. To upgrade
outside the in-app updater:
brew upgrade --cask mark
Mark v2.0.4-alpha
Automated release from 216daf76d73b0c8eaeb6a64dbd4741f1d56136b9.
Verification:
Build provenance (SLSA-3):
gh attestation verify Mark_2.0.4-alpha_aarch64.dmg --owner xronocode
Cosign keyless signature:
cosign verify-blob \
--bundle Mark_2.0.4-alpha_aarch64.dmg.bundle \
--certificate-identity-regexp 'https://github.com/xronocode/mark/.*' \
--certificate-oidc-issuer https://token.actions.githubusercontent.com \
Mark_2.0.4-alpha_aarch64.dmg
DMG SHA-256 sidecar published as Mark_2.0.4-alpha_aarch64.dmg.sha256.
CycloneDX SBOMs published for both Node renderer and Rust backend
dependency closures. NOTICES-{node,rust}.md attribution lists
shipped alongside.
Updater: ed25519-signed feed (latest.json + Mark_2.0.4-alpha_aarch64.app.tar.gz) shipped.
tauri-plugin-updater verifies against the embedded pubkey before applying. To upgrade
outside the in-app updater:
brew upgrade --cask mark
Mark v2.0.3-alpha
Automated release from f280eebeb08dafad689461861c00f3140e8f0d81.
Verification:
Build provenance (SLSA-3):
gh attestation verify Mark_2.0.3-alpha_aarch64.dmg --owner xronocode
Cosign keyless signature:
cosign verify-blob \
--bundle Mark_2.0.3-alpha_aarch64.dmg.bundle \
--certificate-identity-regexp 'https://github.com/xronocode/mark/.*' \
--certificate-oidc-issuer https://token.actions.githubusercontent.com \
Mark_2.0.3-alpha_aarch64.dmg
DMG SHA-256 sidecar published as Mark_2.0.3-alpha_aarch64.dmg.sha256.
CycloneDX SBOMs published for both Node renderer and Rust backend
dependency closures. NOTICES-{node,rust}.md attribution lists
shipped alongside.
Updater: ed25519-signed feed (latest.json + Mark_2.0.3-alpha_aarch64.app.tar.gz) shipped.
tauri-plugin-updater verifies against the embedded pubkey before applying. To upgrade
outside the in-app updater:
brew upgrade --cask mark
Mark v2.0.2-alpha
Automated release from 53aa2a24cabb41661acd565ab5e661439bbccf7b.
Verification:
Build provenance (SLSA-3):
gh attestation verify Mark_2.0.2-alpha_aarch64.dmg --owner xronocode
Cosign keyless signature:
cosign verify-blob \
--bundle Mark_2.0.2-alpha_aarch64.dmg.bundle \
--certificate-identity-regexp 'https://github.com/xronocode/mark/.*' \
--certificate-oidc-issuer https://token.actions.githubusercontent.com \
Mark_2.0.2-alpha_aarch64.dmg
DMG SHA-256 sidecar published as Mark_2.0.2-alpha_aarch64.dmg.sha256.
CycloneDX SBOMs published for both Node renderer and Rust backend
dependency closures. NOTICES-{node,rust}.md attribution lists
shipped alongside.
Updater: ed25519-signed feed (latest.json + Mark_2.0.2-alpha_aarch64.app.tar.gz) shipped.
tauri-plugin-updater verifies against the embedded pubkey before applying. To upgrade
outside the in-app updater:
brew upgrade --cask mark
Mark v2.0.1-alpha.1
Automated release from ab51bd150c62ec992364df54a3733b775ea7471c.
Verification:
Build provenance (SLSA-3):
gh attestation verify Mark_2.0.1-alpha.1_aarch64.dmg --owner xronocode
Cosign keyless signature:
cosign verify-blob \
--bundle Mark_2.0.1-alpha.1_aarch64.dmg.bundle \
--certificate-identity-regexp 'https://github.com/xronocode/mark/.*' \
--certificate-oidc-issuer https://token.actions.githubusercontent.com \
Mark_2.0.1-alpha.1_aarch64.dmg
DMG SHA-256 sidecar published as Mark_2.0.1-alpha.1_aarch64.dmg.sha256.
CycloneDX SBOMs published for both Node renderer and Rust backend
dependency closures. NOTICES-{node,rust}.md attribution lists
shipped alongside.
Updater: ed25519-signed feed (latest.json + Mark_2.0.1-alpha.1_aarch64.app.tar.gz) shipped.
tauri-plugin-updater verifies against the embedded pubkey before applying. To upgrade
outside the in-app updater:
brew upgrade --cask mark
Mark v2.0.0-alpha.9
Mark v2.0.0-alpha.9
Changes since alpha.8
New features
- Print — Cmd+P opens the system print dialog via
window.print() - Export as HTML — styled HTML export with save dialog
- File rename — inline rename in titlebar, backed by
ipc.fs.move - File move — move to folder via folder picker
- Trackpad pinch-to-zoom — macOS trackpad pinch gestures step through 13 zoom levels (50%–200%)
- Window geometry persistence — window size/position saved and restored via
tauri-plugin-window-state - Inline diff view — CodeMirror MergeView for side-by-side diffs
- VS Code-style floating search — search panels float above the editor
- View → Theme submenu — all 33 themes accessible from native menu bar
Fixes
- Image pipeline + clipboard paste fully wired to Tauri IPC
- Zoom, shell menu, sidebar sync, spellchecker reconnected
- mkdir via proper Rust command (replaced fragile
.mt_keepworkaround) - Image path autocomplete via frontend
readdir+stat - Transparent titlebar overlay — icons aligned with macOS traffic lights
- SIGTERM window state save via
signal-hook - Panic-hook double-panic guard (
catch_unwind) safe_eprintln!prevents EPIPE double-panics
Testing
- 2700+ renderer tests (was 2620)
- 91%+ coverage with CI ratchet gate
- 14 new tests for pinch-zoom, drag-drop, error paths in
app.vue
Known issues
- Cold launch still ~1.5s (perf pass planned)
- PDF export not yet available (planned for pandoc M-015)
- Some i18n keys only in en.json (cosmetic, fallback works)
Mark v2.0.0-alpha.8
Mark v2.0.0-alpha.8
Changes since alpha.7
- Splash screen removed — no more white flash on launch; minimal index.html
- CSP hardened — removed inline script hashes (no inline scripts remain)
- Settings window dev-diag — console.log/warn/error piped to stderr in debug builds
- Per-file watcher — standalone files detect external modifications
- RendererPaths guard — settings window no longer crashes on missing userDataPath
- 2620 renderer tests — coverage 63% → 92%
- Coverage gate — CI fails if coverage drops below thresholds
- KaTeX lazy-load + Element Plus tree-shake — bundle reduction
- 34 themes — full theme showcase with animated demo
Known issues
- Cold launch still ~1.5s (perf pass planned for alpha.9+)
- Some i18n keys only in en.json (cosmetic, fallback works)