Repository navigation
Releases: kostyk348/CapsuleCraft
Release list
CapsuleCraft v1.12.4
What's Changed
- OCR shows its work: live status card, persistent result, no more silent engine hang; v1.12.4 by @kostyk348 in #33
- ci(release): free runner disk before hdiutil — macOS dmg died on 'No space left on device' by @kostyk348 in #34
Full Changelog: v1.12.3...v1.12.4
CapsuleCraft v1.12.3
What's Changed
- fix: documents live on the page; AI entry points everywhere; v1.12.3 by @kostyk348 in #32
Full Changelog: v1.12.2...v1.12.3
CapsuleCraft v1.12.2
CapsuleCraft v1.12.2 — the Integrations button actually opens; installers
Fixed
- Clicking ⚙ Integrations did nothing at all. The v1.12.0 branch added the
open_integrationsflag and the title-bar chip, butShellAction::absorb—
the step that merges title-bar actions back into the app shell — never
copied the new field. The click was silently dropped, so the catalog never
opened (v1.12.1 fixed clicks inside the dialog; this fixes opening it).
A new headless end-to-end test now drives the real app frame with synthetic
mouse clicks and sweeps the title bar, so a dead chip can never ship again. - The catalog is also reachable from the command palette: ⌘K → "Интеграции /
Integrations".
Installers for every platform
Downloads are proper installers now — not bare archives:
| Platform | Installer | Also |
|---|---|---|
| Windows x64 | CapsuleCraft_1.12.2_x64-setup.exe — NSIS: Start-menu & desktop shortcuts, uninstaller, registry entry |
CapsuleCraft_native_1.12.2_x64.zip (portable, zero deps) |
| macOS (Apple Silicon + Intel) | CapsuleCraft_1.12.2_macos_universal.dmg — drag-to-Applications |
— |
| Linux amd64 | CapsuleCraft_1.12.2_amd64.deb — sudo apt install ./…, menu entry, icon |
CapsuleCraft_1.12.2_amd64.AppImage (zero-dependency) |
Every release still carries the mistral.rs OCR engines
(mistralrs-engine-*.tar.gz, used by the in-app Integrations catalog) and a
unified SHA256SUMS.txt.
Upgrade notes
- If you installed the v1.12.1 portable zip, just run the new setup.exe over
it — or keep using the zip; both ship the same binary. - The macOS
.dmgreplaces the previous.app.zipdownload.
CapsuleCraft v1.12.1
CapsuleCraft v1.12.1 — Native-only releases, Integrations fixes
The headline
Releases now carry native builds only. The Tauri/web installers (MSI,
NSIS, deb, rpm, dmg) are retired — the egui shell is the app, and every
artifact on the release page is exactly that:
- Windows x64 —
CapsuleCraft_native_1.12.1_x64.zip(portable, zero deps,
no WebView2, no installer) - Linux amd64 —
CapsuleCraft_1.12.1_amd64.AppImage(zero-dependency) - macOS —
CapsuleCraft_native_1.12.1_macos_universal.app.zip— new
universal binary: Apple Silicon and Intel in one.app
Every release also ships the mistral.rs OCR engines (mistralrs-engine-*.tar.gz,
used by the in-app Integrations catalog) and a unified SHA256SUMS.txt.
Fixed
- Integrations modal swallowed clicks. The dialog was only painted while
a full-screen click backdrop sat underneath: poking anywhere that missed a
button — status pills, progress bars, empty card space — closed the whole
modal mid-interaction. The panel now claims its own click area; dismissing
works by clicking the dimmed backdrop outside the dialog or pressing Escape. - TTS voices could install a broken runtime. The catalog downloaded
sherpa-onnx v2.0.1 while the FFI mirrorsc-api.hat v1.12.40 (v2.0.1
removed thedata_dirphonemization argument and shifts struct layouts).
The runtime component now downloads v1.12.40, and a regression test welds
the URL to the FFI tag so the two cannot drift again. - OCR engine downloads outlived releases.
mistralrs-engine-*.tar.gzis
now fetched through thereleases/latestredirect instead of a hard-coded
v1.12.0URL.
Upgrade notes
- Web/Tauri installers are no longer produced. If you previously installed
the web build (MSI/NSIS/deb/dmg), remove it and switch to the native
artifacts above — the Integrations catalog and the rest of the native
feature set live only in the egui shell. - The macOS artifact replaces the previous arm64-only zip with a universal
build; Intel Macs are supported again.
CapsuleCraft v1.12.0
CapsuleCraft v1.12.0 — Integrations
Local AI you download in the app, plus native PDF and image viewing.
The headline
The native shell now has an Integrations catalog (⚙ in the title bar):
offline engines that appear in the app only after you explicitly download
them. Nothing is bundled, the vault stays a plain folder of .eml files, and
every component installs into the app-data directory — never into the vault.
- OCR (Xiaomi-OCR-0) — Xiaomi's new OCR model (Qwen3.5-0.8B, Apache-2.0)
served by mistral.rs, a pure-Rust engine. No llama.cpp, no Python, no
cloud. Recognize text on any image attachment with one button; the result
becomes a paragraph on the page. The engine is built for all three desktop
platforms in this release's CI and attached asmistralrs-engine-*.tar.gz. - STT (whisper) — tiny/base/small run in-process on candle (pure Rust,
CPU). One button in the audio block transcribes a recording into its
transcript field; Russian is forced via the language token. - TTS (Русские голоса) — Ирина and Дмитрий (piper voices) through the
sherpa-onnx runtime; the 🔊 button in the document editor speaks the page
through the existing audio player. - PDF viewer — page navigation and zoom, rendered natively via pdfium.
- Image viewer — PNG/JPEG/GIF/WebP with zoom.
Notes
- The largest component is the OCR model (~1.75 GB); the rest is 4–70 MB each.
- pdfium and sherpa-onnx are renderer/codec runtimes loaded at runtime — the
only non-Rust pieces in the feature. Inference itself is Rust end to end. - Downloads do not resume; a failed download can simply be retried from the
catalog card.
CapsuleCraft v1.11.0 — Polish: blockers, undo, scrubbing
CapsuleCraft v1.11.0 — a polish release: three long-standing LIMITATIONS entries resolved across both surfaces. No new concepts, everything you already use just works better.
📊 Web
- Gantt: multiple blockers per task. The dates-and-dependencies editor no longer replaces the whole
blockedByarray with one choice — a checkbox panel now edits the full list. Cycle-creating candidates are shown but disabled (with the usualwouldCreateCycleguard), and unchecking an existing edge is always allowed. The chart has drawn every edge for a while; now the editor can express them.
🎨 Native (egui)
- Whiteboard: undo + multi-select. An undo stack (up to 40 steps — add, move, delete, reset) behind a new undo button; drag on empty canvas space to marquee-select several elements; drag any selected element to move the whole group; Delete clears every selected element. The old hint that promised pan/zoom (which the canvas never had) now describes what actually happens.
- Audio: seek + volume. A scrubbable progress bar with
m:ss / totallabels and a mini volume slider next to the transport buttons. The decoder is fed to rodio un-buffered soSink::try_seekworks, the playhead is mirrored on the audio thread's poll, and the session volume persists across tracks.
🔧 Housekeeping
- Native test suite: 151 (was 143) — new marquee-selection and player volume/progress tests. Web suite: 176 (was 175) — multi-blocker blocking semantics test.
- Version bump to 1.11.0 in all four manifests; CHANGELOG, LIMITATIONS and both READMEs updated.
Downloads: Linux (AppImage + deb/rpm), macOS (arm64 app.zip + dmg), Windows (msi + NSIS setup + native portable zip); SHA256SUMS.txt covers everything — verify before running.
MIT — your thoughts, stored as mail.
CapsuleCraft v1.10.0 — mic recording from the native audio block
CapsuleCraft v1.10.0 — the record half of the audio item: microphone capture straight from the native audio block, closing the gap with the web MediaRecorder flow.
🎙️ Added
- Record from mic button next to "Attach audio" in every audio block: a pulsing dot, an honest
m:ssclock and a live RMS level meter; Stop recording lands the take as a 16-bit mono PCM WAV attached to the capsule — and immediately playable, because the offline player decodes WAV natively. - Capture via
cpalat the device's native rate; f32/i16/u16 input layouts are downmixed to mono. A ten-minute cap keeps a forgotten stop from filling the disk. The meter reads real input — never a fake animation.
🛠 Fixed
- Audio file attachments from the block never actually reached the capsule: the file picker wrote a
__attachmarker into the block JSON that nothing ever read. Attachments now travel throughBlockOp::AttachAudio, applied by the document view — the same path recordings use. - Release pipeline: the native AppImage job installs
libasound2-dev+pkg-config(v1.9.0's AppImage build failed onalsa-sys).
🧹 Changed
- New
Icon::Record(filled dot); the whole native crate iscargo fmt-normalized (separate style commit).
🧪 Quality
- Native: 143 passed / 0 failed (
cargo test --release, up from 135 — 8 new recorder tests, including a WAV round-trip through rodio's own decoder) - CI green on the release commit: native shell, rust backend, frontend build
📦 Downloads
| File | Platform |
|---|---|
CapsuleCraft_native_1.10.0_x64.zip |
Windows 10/11 x64 — native egui shell (recommended, no WebView2) |
CapsuleCraft_native_1.10.0_arm64.app.zip |
macOS Apple Silicon — native egui shell |
CapsuleCraft_1.10.0_amd64.AppImage |
Linux — native zero-dependency build |
CapsuleCraft_1.10.0_x64-setup.exe / .msi |
Windows — Tauri shell |
CapsuleCraft_1.10.0_amd64.deb / .rpm |
Linux — Tauri shell |
CapsuleCraft_1.10.0_aarch64.dmg |
macOS — Tauri shell |
SHA256SUMS.txt |
checksums |
Full changelog: https://github.com/kostyk348/CapsuleCraft/blob/main/CHANGELOG.md
CapsuleCraft v1.9.0 — Full English UI + native roadmap trio
CapsuleCraft v1.9.0 — the English-language release with the three remaining offline roadmap items landing in the native egui shell.
✨ Added
- Native audio playback (roadmap ✅): audio notes stored as MIME attachments play inside the egui shell via
rodio— WAV/MP3/OGG/FLAC, Play/Pause/Stop, dedicated audio thread (cpal's output stream is!Send); MediaRecorder webm/opus gets an honest "not decodable offline" note. - OpenPGP capsule encryption (roadmap ✅): export any capsule as an armored, passphrase-encrypted
.eml.asc(AES-256, SEIPD v1, iterated+salted S2K viarPGP) and import it back through the same dialog; a wrong passphrase reopens the modal. - Offline code execution (roadmap ✅): JavaScript REPL blocks run in the native shell through the embedded
boaengine with a console shim; JSON blocks validate and pretty-print; TS/Python/Rust/SQL keep an honest "no interpreter in the zero-dependency build" note. - Data-grid formulas (roadmap ✅): cells starting with
=are evaluated by the same engine —=SUM(A1:A5),=AVG,=MIN,=MAX,=COUNT, arithmetic, nested cell refs,A1:B3ranges; the raw formula is stored, the computed value displayed. - Animated demo GIF in both READMEs, rendered from the real app via the
--snapshotCLI.
🌐 Changed — full English UI with enforced purism
- Every block component, the FAQ and the onboarding screen in the web build go through i18n; the command palette adds Russian search aliases only in the RU locale.
- Co-Thinker output, ICS export labels and numeric formatting follow the detected capsule/UI language.
- A native unit test asserts no EN string contains a single Cyrillic character; an engine test asserts Co-Thinker replies to an English capsule are Latin-only.
- CI: the native job installs
libasound2-dev+pkg-configfor rodio.
🧪 Quality
- Native: 135 passed / 0 failed (
cargo test --release, up from 98) - Web: 175 passed (vitest),
tsc --noEmitclean - CI green on the release commit: native shell, rust backend, frontend build
📦 Downloads
| File | Platform |
|---|---|
CapsuleCraft_native_1.9.0_x64.zip |
Windows 10/11 x64 — native egui shell (recommended, no WebView2) |
CapsuleCraft_native_1.9.0_arm64.app.zip |
macOS Apple Silicon — native egui shell |
CapsuleCraft_1.9.0_x64-setup.exe / .msi |
Windows — Tauri shell |
CapsuleCraft_1.9.1_amd64.AppImage / .deb / .rpm |
Linux — Tauri shell |
CapsuleCraft_1.9.0_aarch64.dmg |
macOS — Tauri shell |
SHA256SUMS.txt |
checksums |
Full changelog: https://github.com/kostyk348/CapsuleCraft/blob/main/CHANGELOG.md
CapsuleCraft v1.8.1
CapsuleCraft v1.8.1 — a release pipeline that does not lose artifacts
Released 2026-10-27.
This is a patch release of the build system, not of the app. No application
code changed between v1.8.0 and v1.8.1 — the binaries are v1.8.0 features, built
by a pipeline that now actually delivers all of them.
Why this release exists
v1.8.0 was published without its Linux AppImage and without the macOS .app.zip.
The cause was a race, not a code bug: the native jobs finish in 2–3 minutes, and
they called gh release upload before tauri-action had created the GitHub
Release (7–10 minutes). The uploads died with 404 release not found, and the
release was published anyway, minus those files. The published checksums were
also overwritten by each job in turn, so SHA256SUMS.txt covered only one
platform.
PR #13 by @kobaltgit rebuilt the pipeline. This
release is the first one to run it.
What changed in the pipeline
create-releaseruns first and guarantees the GitHub Release exists before
any builder starts — the race is structurally impossible now. Release notes are
taken from this file (docs/releases/<tag>.md).- Native Windows build (
native-windows): a zero-dependency portable
CapsuleCraft_native_<version>_x64.zipcontainingCapsuleCraft.exe,
README.mdandLICENSE. No WebView2, no installer. finalize-releasewaits for every builder, downloads all assets, writes a
single authoritativeSHA256SUMS.txt, uploads it, and only then clears the
draft flag.- CI now tests the native shell (
cargo check+cargo test -j 1) on every
pull request and push tomain, next to the existing frontend and Tauri jobs. if-no-files-found: warnplus a complete bundle-path list, so the macOS
Tauri job stops failing because a Windows-only mask matched nothing.
Fixed during this release
- The AppImage's
appdata.xmlhad<release version="1.8.0" date="2026-10-26"/>
hardcoded in the workflow; it is now generated from the tag and the build date. finalize-releasepublished the release unconditionally (if: always()), even
when a build had failed. It now refuses to publish an incomplete artifact set
and leaves the release as a draft.- Manifest drift:
src-tauri/Cargo.tomlwas at1.5.0andpackage-lock.jsonat
1.4.0; both now matchpackage.json,tauri.conf.jsonandnative/Cargo.toml.
Artifacts
| Platform | File |
|---|---|
| Linux x64 | CapsuleCraft_1.8.1_amd64.AppImage, CapsuleCraft_1.8.1_amd64.deb, CapsuleCraft-1.8.1-1.x86_64.rpm |
| macOS arm64 | CapsuleCraft_native_1.8.1_arm64.app.zip, CapsuleCraft_1.8.1_aarch64.dmg |
| Windows x64 | CapsuleCraft_native_1.8.1_x64.zip, CapsuleCraft_1.8.1_x64_en-US.msi, CapsuleCraft_1.8.1_x64-setup.exe |
SHA256SUMS.txt covers every artifact above in a single file.
Upgrading
Nothing on disk changes: the .eml vault format, X-Capsule-* headers and the
app-data folder are untouched. v1.8.1 opens any vault written by v1.8.0 or
earlier, and the other way round.
CapsuleCraft v1.8.0
CapsuleCraft v1.8.0
Zero-DB, pure-MIME workspace. Native egui desktop builds plus legacy web/Tauri installers.
Linux x64
CapsuleCraft_*_amd64.AppImage— native shell, no webview;chmod +xand runCapsuleCraft_*_amd64.deb,CapsuleCraft-*_x86_64.rpm— legacy Tauri packages (needlibwebkit2gtk-4.1-0)
Built on Ubuntu 22.04 (glibc 2.35+). The AppImage bundles the fonts/rendering and X11/xkbcommon libraries it needs.
macOS (arm64)
CapsuleCraft_native_*_arm64.app.zip— native shell, ad-hoc signed; unzip and dragCapsuleCraft.appto ApplicationsCapsuleCraft_*_aarch64.dmg— legacy Tauri package
Windows x64
CapsuleCraft_*_x64_en-US.msi— Windows Installer packageCapsuleCraft_*_x64-setup.exe— NSIS installer
Requires Microsoft Edge WebView2 Runtime (preinstalled on Windows 10/11).
Data location
- Windows:
%APPDATA%\com.capsuleos.app\vault\ - macOS:
~/Library/Application Support/com.capsuleos.app/vault/ - Linux:
~/.local/share/com.capsuleos.app/vault/
One .eml file per capsule.