v0.1.0-pre.2 — first green build
Pre-release
Pre-release
flatus v0.1.0-pre.2
A small apparatus for moving air.
Second pre-release. This is the first one that actually builds green on both macOS and Linux CI and produces a launchable unsigned .app. v0.1.0-pre.1 was the scaffold drop — comedy and architecture were in place, but the wiring needed work before anything compiled end-to-end.
Same shape as pre.1 (CLI + Tauri menubar shell + four personalities + determinism contract). Difference is: now you can clone, install Rust, run cargo install --path crates/fart-synth, and actually get a working binary.
What landed in this drop
Merged via #1:
- Synth (
crates/fart-synth) — compile and clippy fixes (TickResultEq derive onf32, decay rate that made pressure unreachable, Mulberry32 hex constant, SHA-256 separator grouping, struct-update syntax in tests). All 24 tests pass;cargo clippy --all-targets -- -D warningsclean. - Cross-platform determinism — every transcendental (
tanh/sin/cos/powf/sqrt/ln) now routes through thelibmcrate instead off32stdlib methods. Stdlib defers to platformlibm, which gives different LSBs on Applelibmvs glibc; the "byte-identical WAV" contract intests/goldenwas structurally unreachable until this fix. Bothmacos-latestandubuntu-latestnow agree on the goldens. - Desktop shell (
apps/desktop) — Tauri v2 API alignment:tauri::include_image!for the tray icon (lifetime fix),show_menu_on_left_clickrename, removed invalidbundle.infoPlistconfig.LSUIElementis already enforced at runtime byActivationPolicy::Accessory, so the dock-icon hide still works. - CI —
target/release/bundle/macos/is the actual.applocation (workspace root target dir, not per-crate). EmptyAPPLE_SIGNING_IDENTITYenv removed so unsigned builds genuinely skipcodesign. - Goldens — regenerated under
libm; manifest SHA-256s repinned. Determinism test green on both platforms. - Banner —
docs/banner.svgredesigned for depth: dark warm-cool canvas, radial bloom on each grain, integrated[p → q]motif, paper-noise overlay.
Status
- 🟡 Unsigned, ad-hoc. macOS Gatekeeper blocks the first launch — right-click → Open.
- 🟡 macOS Apple Silicon only. Intel + universal binary deferred to v0.2.
- 🟢 CLI works on Linux in principle (the
fart-synthcrate has no macOS-specific deps); the Tauri shell is macOS-first in v0.1. Linux CI builds the synth and runs the test suite. - ⏳ No signing / notarization. v0.2 work, gated on Apple Developer ID.
Install
git clone https://github.com/p-to-q/flatus
cd flatus
chmod +x scripts/*.sh
scripts/doctor.sh # verify prereqs
cargo install --path crates/fart-synth # gives you `fart` and `generate-goldens`
fart --personality biblicalMenubar app (unsigned — right-click → Open the first time):
cd apps/desktop
pnpm install
pnpm tauri build
open ../../target/release/bundle/macos/flatus.appA pre-built unsigned flatus.app is attached below as an artifact for the macOS-Apple-Silicon case where you'd rather not compile from source.
Roadmap into v0.2
- Replace the
business_hours()activity stub with realIOHIDIdleTimepolling. - Linux Tauri build in CI matrix.
apps/webWeb Audio re-implementation (honestly labelled as a reimpl, not wasm).- Universal
(arm64 + x86_64)macOS binary. - Real artwork icon, README screenshots / GIF.
- Apple Developer ID signing + notarization (gated on cert availability).