Skip to content

v0.1.0-pre.2 — first green build

Pre-release
Pre-release

Choose a tag to compare

@Jah-yee Jah-yee released this 13 May 02:31
398715c

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 (TickResult Eq derive on f32, 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 warnings clean.
  • Cross-platform determinism — every transcendental (tanh / sin / cos / powf / sqrt / ln) now routes through the libm crate instead of f32 stdlib methods. Stdlib defers to platform libm, which gives different LSBs on Apple libm vs glibc; the "byte-identical WAV" contract in tests/golden was structurally unreachable until this fix. Both macos-latest and ubuntu-latest now 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_click rename, removed invalid bundle.infoPlist config. LSUIElement is already enforced at runtime by ActivationPolicy::Accessory, so the dock-icon hide still works.
  • CItarget/release/bundle/macos/ is the actual .app location (workspace root target dir, not per-crate). Empty APPLE_SIGNING_IDENTITY env removed so unsigned builds genuinely skip codesign.
  • Goldens — regenerated under libm; manifest SHA-256s repinned. Determinism test green on both platforms.
  • Bannerdocs/banner.svg redesigned 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-synth crate 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 biblical

Menubar app (unsigned — right-click → Open the first time):

cd apps/desktop
pnpm install
pnpm tauri build
open ../../target/release/bundle/macos/flatus.app

A 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 real IOHIDIdleTime polling.
  • Linux Tauri build in CI matrix.
  • apps/web Web 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).