LibreFang 2026.4.27 Released LibreFang v2026.4.27 ships the changes below. See the full changelog for the complete list. TUI setup wizard now offers microsoft, zai, zai_coding, volcengine, volcengine_coding, byteplus, byteplus_coding alongside the existing first-run options. The wizard's PROVIDERS list had drifted from PROVIDER_REGISTRY and silently hid these from new installs; a unit test now p
If this is useful, a ❤️ helps others find it. Everything I keep looking up when building Tauri v2 apps — in one place. // Define #[tauri::command] fn greet(name: String) -> String { format!("Hello, {}!", name) } // With error handling #[tauri::command] fn read_file(path: String) -> Result { std::fs::read_to_string(path).map_err(|e| e.to_string()) } // Async #[tauri::command] async fn fet
Repo: https://github.com/richer-richard/socratic-council Stack: Tauri 2 (Rust + React/TypeScript), pnpm monorepo, Apache-2.0 Latest release: v2.0.0 If you ask one frontier model a hard question, you get a confident answer. If you ask sixteen, you get an argument. Socratic Council is a desktop app that runs a structured seminar between sixteen LLM agents drawn from eight providers — OpenAI, Anthr
If you find this helpful, please like, bookmark, and follow. To keep learning along, follow this series. In Rust, a test is a function used to verify whether non-test code behaves as expected. A test function usually performs three actions: Arrange data/state Act on the code under test Assert the result In some languages, these three actions are called the 3A steps. A test function is still just a
Have you ever started coding a feature, only to realize halfway through that your architecture is hopelessly tangled? We’ve all been there. You start writing a service, and before you know it, your business logic is heavily bleeding into your database queries and third-party APIs. To prevent this architectural chaos, modern engineering teams are increasingly turning to Spec-Driven Development (SDD
I shipped gni-compression to npm two days ago. One of the first questions I got (from myself, running benchmarks at midnight): does it work on anything other than chat data? Short answer: not yet. Long answer: I found out exactly why, and it led me somewhere more interesting than I expected. After the npm launch I ran GN against Silesia — the standard general text compression benchmark suite. Dick
Debugging memory leaks has always been one of those tasks developers dread. Tools like Valgrind or WinDbg are powerful, but they’re either platform‑specific or too complex for quick diagnostics. I wanted something different: a tool that gives developers answers fast. That’s the philosophy behind Mvis — a Rust‑based memory visualizer and leak detector. Mvis is built around three guiding principles
All tests run on an 8-year-old MacBook Air. The default: Tauri commands When commands aren't enough: events Targeting specific windows The channel API for streaming data async fn stream_data(on_event: Channel) -> Result<(), AppError> { What I don't use The pattern I follow User action → invoke command → return result Three patterns. That's the whole IPC layer. If this was useful, a ❤️ helps more t