Releases: JacobHaig/zord
v0.3.0
Highlights
The shared FEATURES list grew GUI-only features (voiceprints, discord, and
the channel step's self-update append) that zord-app doesn't declare, so the
v0.3.0 Build CLI step failed on both runners. The GUI bundle keeps the full
list; the CLI now uses CLI_FEATURES with exactly the features it has.
Full Changelog: v0.2.18...v0.3.0
v0.2.18
Highlights
Session notes
Every session now has a free-form Notes drawer — for links, action items,
and reminders you want to carry into later meetings.
- Slides out from the right side, beside the transcript, so it's there
while you're recording and when you review afterward (notes you jot
mid-recording save immediately to that session). - Searchable alongside transcripts — find that link or note across every
meeting from the search view. - Seen by the AI: your notes are handed to the meeting summary, the dense
compression, and the "ask this meeting" chat as authoritative context — so an
action item you jot shows up in the summary, and the chat can answer about a
link you saved. Because compression feeds the cross-meeting Overview, the
rolling project ledger picks them up too.
Notes are per-session, plain text, and stay entirely on your device.
Full Changelog: v0.2.17...v0.2.18
v0.2.17
Highlights
This release puts you in control of long-running background work and makes its
status trustworthy.
Background jobs: visible, resilient, cancellable
- The background-jobs panel is now driven by a real job registry, so a running
job (speaker identification, summarize, compress, overview, re-transcribe)
no longer disappears when you switch sessions or start recording — its
indicator stays put until the work actually finishes. (Previously the
indicator could vanish on navigation even though the job kept running.) - Every running job now has a ✕ to cancel it right in the panel.
Cancellation is cooperative and honest about what it can stop:- Re-transcribe stops promptly and keeps whatever was transcribed so far.
- Speaker identification / summarize / compress / overview clear from the
panel immediately; the in-flight local model pass finishes in the
background and its result is discarded.
Nothing here changes your data — it only makes background work easy to see and
to stop.
Full Changelog: v0.2.16...v0.2.17
v0.2.16
Highlights
This release modernizes Zord's entire dependency stack with a deliberate focus
on security and performance, and ships the new rolling project Overview. Every
dependency was upgraded one at a time, rebuilt and tested at each step, with no
behavior changes.
Security & performance
- SQLite 3.45 → 3.51. The local database engine behind your transcripts,
full-text search, and the project ledger jumps six releases — query-planner
speedups plus the accumulated upstream bug and hardening fixes. - Hardened audio capture. The cross-platform microphone layer (cpal) picks
up macOS CoreAudio undefined-behavior fixes (null-pointer / unaligned-read
paths) and a Windows WASAPI memory-leak fix — on the exact code Zord records
through — plus faster sample-format conversion and fewer allocations on the
realtime audio path. - Safer system-audio capture. macOS ScreenCaptureKit moves to a release
that resolved FFI safety findings from a deep code review: panic-across-FFI
guards, null-checked constructors, and bounds-safe scratch buffers. - No C in the download decompressor. Model-archive extraction now uses a
pure-Rust bzip2 decoder instead of the C library. - Modernized network/TLS stack. Networking was rebuilt on ureq 3 with a
current TLS dependency chain; model downloads still validate against the OS
certificate store and verify SHA-256 content digests end-to-end.
New: rolling project Overview
The Overview is now a living, project-grouped ledger that updates meeting by
meeting — action items, decisions, and open questions tracked across calls,
each carrying the meeting that completed it, with full manual editing — rather
than a from-scratch summary regenerated on every refresh. Cross-meeting chat
and zord overview read from the same ledger.
Also
- Independent live mute for the microphone and for desktop/system audio while
recording. - A broader local summary-model picker (Qwen2.5 1.5B–32B, Qwen3 8B/14B, and
Gemma 2 2B / Gemma 3 4B), sorted by size and quality, with a fixed large-model
download.
Full Changelog: v0.2.15...v0.2.16
v0.2.15
Highlights
A cleaner interface: every UI icon is now a single, consistent line-art SVG
set drawn from one registry (replacing the platform-dependent emoji), so the
app looks identical on macOS, Windows, and Linux and any icon can be changed
in one place. A new Settings → Theme tab toggles the session badges between
monochrome (now the default) and color-coded-by-meaning. Plus small touches:
the Generate-menu actions are spaced from their labels, and the chat panels
start collapsed.
Full Changelog: v0.2.14...v0.2.15
v0.2.14
Highlights
A redesigned interface and finer audio control.
UI — the desktop app moves to an icon-rail shell: a thin left rail holds
global nav (Overview/Search) plus Settings and the background-jobs board;
Record is now a permanent primary at the sidebar foot that never shifts; the
8-button export bar becomes a stable contextual 'Generate' menu beside a
separate output cluster; Settings is a tabbed panel (Transcription / AI /
Speakers / Recording / Files / Security / About) instead of one long scroll.
Audio — per-channel capture level: Off, Auto-level (normalizes a varying
signal), or Manual gain, for mic and desktop independently, with a soft limiter
so boosts never clip. Fixes a quiet/loud microphone without touching frequency.
Docs — README rewritten as a product page (no emoji, clearer positioning);
CLAUDE.md refreshed; app-data paths and crate table corrected.
Full Changelog: v0.2.13...v0.2.14
v0.2.13
Highlights
Security hardening from the June 2026 review (no critical/high; cargo audit
0 vulns across 681 crates). Network-fetch integrity: Ollama blobs verified
against their sha256 digest, downloads capped (16 GiB) and decompression
bounded (anti-bomb), streaming-SSE reader/reply size-capped (anti-OOM).
Dashboard: all dynamic fields HTML-escaped + CSP/nosniff/referrer headers.
At-rest: config.json and SQLCipher backups written 0600 on Unix. Input:
WAV headers validated (reject sample_rate 0 / bad bit depth) so a crafted
file errors instead of panicking. See docs/SECURITY.md.
Full Changelog: v0.2.12...v0.2.13
v0.2.12
Highlights
Deferred & re-transcription (Phase 25): live transcription is now optional —
capture-only recording costs ~no CPU/RAM mid-meeting (for low-power machines
where whisper bursts stutter the webcam), with the transcript generated at
stop or on demand via the new 🔁 Re-transcribe button (own model choice,
confirm dialog, speaker labels re-derived). A 'Transcribe automatically
after recording' toggle composes with live mode to auto-upgrade transcripts
with a bigger model. Kept audio now stores ONE native-rate track per channel
(full-quality replay; models derive 16 kHz on the fly) with keep-audio on /
30-day retention defaults. Plus: holistic Transcription settings (one model
list with Live/Re role chips), stop now ends the Recording indicator
immediately with post-transcription as its own background job, and six new
meeting-type summary presets.
Full Changelog: v0.2.11...v0.2.12
v0.2.11
Highlights
External LLM support (Phase 24): point every AI feature — summaries,
compression, Overview, chat, auto-titles — at any OpenAI-compatible server
(LM Studio, Ollama, llama-server, vLLM) from Settings → AI, with model picker,
test-connection, and streamed chat replies on both backends (verified
end-to-end against LM Studio). Build flags split into composable
llm-local / llm-remote (replacing 'summaries'; llm-remote needs no llama.cpp
toolchain). Also: selectable diarization segmentation models (pyannote 3.0 /
Reverb v1 / v2), six meeting-type summary presets, settings-panel layout
polish, and the chat stuck-spinner fix.
Full Changelog: v0.2.10...v0.2.11
v0.2.10
Highlights
Polish release: per-line transcript audio replay (▶ on hover, exact span from the
wall-clock-aligned retained WAV), delete buttons for bad summaries/compressions,
per-session expected-speaker count next to Identify speakers (replaces the global
setting in the UI), and sidebar improvements — date + relative time in session
meta, drag-resizable divider with persisted width.
Full Changelog: v0.2.9...v0.2.10